2022-03-02 18:37:42 +01:00
#!/bin/bash
################################################################################
# Author: Fred (support@qo-op.com)
# Version: 0.1
# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/)
################################################################################
MY_PATH = " `dirname \" $0 \"` " # relative
MY_PATH = " `( cd \" $MY_PATH \" && pwd )` " # absolutized and normalized
ME = " ${ 0 ##*/ } "
TS = $( date -u +%s%N | cut -b1-13)
echo "
oMMWMMMMMMMMMMMMMMMMoccdocc::xMMMMMMMMMMMMMMWMW00MMx ' .o0XNXx: ...' ',.. .,lxKNMN0d'
,:::; cxNMMMMMMMMMMMMMMMMMMM. ,. cMMMMMMMMMMMMMMMMMMMMMXd; .' oKMMMMMMMMWMMMMMMMMXNMMMMMMMMMMMNkc; .
,oOKWMMMMMMMMMMMMMMMMMMNXXXNMMMMM; ., .c, cMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMKd,
' xWMMMMMMMMMMMMMMMMMMMMMMXl:::oKWMMM. cMMMMMMMMMMdccXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNkKMMMMNWMMMMMMMMMX:
xMMMMMMMMMMMMMMMMMMMMMMMMWx::::::0MMM; .,'..:' cMMMMMMMMMMd::KMMMMMMMMMMMMMMMMWk:.'x:,KMMMMNo. ... ' lo' ,0KMMMMMMMMMO
0MMMMMMMMMMM0.,,' lMMMMMWlc::::::::0MMM. .. . .,WMMMMMMMMMd::KMMMMMMMMMMMMMMWo; . :MXldd : ,kMMMMMMMM0
xMMMMMMMX0KKKx.cc::NNNWNW::::::::::0MMM,.. ,.'' KMMMMMWWMMd::KMx...0MMMMMMMWc. ,dc . .lWMMMMMMMM:
.MMMMMkdc .... .cc: ,.. :...; ; ,'' ',0MWW' ... ..'' 0XMkc; ::c0o::k:. XWkkXKM0. ,XMMMMMMMMXoc; ; .
cWMMMMM' ;ll: .llc l. cll, .,,.0X .,. ..,,' k' .,,,,,,;. .. . :c ' ,; ,. c; ,c:..; NMMMMMMMN:
'NMNXMMMxccl. ;ll: .llc l. cll, ' ll.O; ... ,..' ' '.' '' '. .XkoM0;W0XNk' k,X0. ' WMMMMMMMMo
NMMMMWNl ; ll: .llc l. :ll, 'll ... . ....... lxcd' .OXl'' .cXk.; . .clxWMMMMMMMN
MMMMM' ;ll: .llc o. :ll, ' cc '' ' ,. ,' .,,,, . :. ' o cWMMMMMM
MMMMW. .,,' ::; ;. ' ,,. .; , ... .. ....... .; ' ,WMMMMMM
MMMMX .dOK00OkxN
MMMMK :oooo; ; looooooooo. .ooooooooooo' ' oooooooooooc 'loooooooc. cooooooooool' .loooooool. ' ooooooooooo: ; oooooooooo.0
MMMM0..0MMMMMX 'NMMMMMMMMMMX ' NMMMMMMMMMMM',WMMMMMMMMMMMMx OMMMMMMMMMMN dMMMMMMMMMMMMW. xMMMMMMMMMMW.,WMMMMMMMMMMMMx cWMMMMMMMMMM' X
:XM0 :lllllll :lllllllllll' :lllllllllll: :lllllllllllll; ' oooooooooooo .llllllllllllll..oooooooooooo.:lllllllllllll; .llllllllllll.N
'; oOOOOOOOOc ' OOOOOOOOko. k000: ; OOOOOOOOOOOOO,.OOOO; d000l xOOOOOOOOOOOOo kOOOc c000x ; OOOOOOOOOOOOO' .0000. 0WXM
0MMMMMMMMX .WMMMMMMMMMW; ; MMMW. KMMMMMMMMMMMNl lMMMW. 'MMMM' ; MMMMMMMMMMMM0.; MMMM' NMMMc KMMMMMMMMMMMNl oMMMK ; MMMM
,::::XMMMM' .; ; ; ; :XMMMMx OMMMk ,MMMMxlllkMMMx XMMMx xMMM0 0MMMKlllllc; . 0MMMO lMMMN.; MMMMxlllkMMMd NMMMl xMMMM
lMMMMdclllllloNMMMMo .WMMM; OMMMK xMMMk .MMMM:..; WMMW, 'MMMM; .MMMMo..' NMMMc 0MMMK OMMMx cMMMW. XMMMM
.WMMMWMMMMMMMMMMMMO xMMMX .WMMM; .WMMM; .XMMMMMMMMMX, xMMMK KMMMMMMMMMWc ,MMMM; 'MMMM' XMMMx .WNOo.
o00000000000000x, O000: l000x c000x .lk0000Od; O000; ck0000Ox: o000x l000d .0000.
ASTROPORT is a peer to peer friends of friends real life game based on IPFS.
Join the OASIS so we fix the world together.
Oasis is a collective shared place where
Players are dreamers wanting to enhance their relation to the world
@@@@@@@@@@@@@@
INSTALL DEPENDENCIES
@@@@@@@@@@@@@@
"
[ $( id -u) -eq 0 ] && echo "LANCEMENT root INTERDIT. Utilisez un simple utilisateur du groupe \"sudo\" SVP" && exit 1
sudo apt-get update
for i in git fail2ban inotify-tools curl net-tools libsodium* python3-dev python3-pip python3-setuptools python3-wheel python3-dotenv mpack libssl-dev libffi-dev printer-driver-all cups; do
if [ $( dpkg-query -W -f= '${Status}' $i 2>/dev/null | grep -c "ok installed" ) -eq 0 ] ; then
sudo apt install -y $i
fi
done
2022-03-05 02:16:41 +01:00
for i in build-essential parallel tree fim qrencode jq bc gawk ffmpeg sqlite dnsutils v4l-utils vlc mp3info musl-dev openssl* cargo detox nmap httrack html2text ssmtp imagemagick ttf-mscorefonts-installer libcurl4-openssl-dev; do
2022-03-02 18:37:42 +01:00
if [ $( dpkg-query -W -f= '${Status}' $i 2>/dev/null | grep -c "ok installed" ) -eq 0 ] ; then
sudo apt install -y $i
fi
done
## INSTALL PYTHON CRYPTO LAYER
echo 'export PATH=$PATH:$HOME/.local/bin' >> ~/.bashrc && source ~/.bashrc
python3 -m pip install -U pip
python3 -m pip install -U setuptools wheel
python3 -m pip install -U cryptography Ed25519 base58 google protobuf duniterpy
## INSTALL QR CODE PRINTER
sudo pip3 install brother_ql
sudo cupsctl --remote-admin
sudo usermod -aG lpadmin pi
## CREATE GAME DIRECTORIES
mkdir -p ~/.zen/tmp
mkdir -p ~/.zen/game/players
########################################################################
echo "CREATING OASIS ASTROPORT STATION IPFSNODEID"
########################################################################
salt = " $( ${ MY_PATH } /tools/diceware.sh 3 | xargs) "
salto = " $salt "
[ [ $salt = = "" ] ] && echo "ERROR" && exit 1
pepper = " $( ${ MY_PATH } /tools/diceware.sh 3 | xargs) "
XZUID = $( ${ MY_PATH } /tools/diceware.sh 1 | xargs) ${ RANDOM : 0 : 2 } $( ${ MY_PATH } /tools/diceware.sh 1 | xargs)
[ [ " $USER " != "xbian" ] ] && echo " Gardez ou modifiez cet identifiant (passphrase 1)? $salt " && read salty && [ [ $salty ] ] && salt = " $salty "
[ [ " $USER " != "xbian" ] ] && echo " Gardez ou modifiez cet mot de passe (passphrase 2)? $pepper " && read peppery && [ [ $peppery ] ] && pepper = " $peppery "
[ [ " $USER " != "xbian" && " $salt " != " $salto " ] ] && echo " Gardez ou modifiez ce Pseudo? $XZUID " && read XZUIDy && [ [ $XZUIDy ] ] && XZUID = " $XZUIDy "
g1_salt = " $salt "
g1_pepper = " $pepper "
echo " Creation secret.june avec ( $g1_salt ) ( $g1_pepper ) "
echo " $g1_salt " > /tmp/secret.june
echo " $g1_pepper " >> /tmp/secret.june
########################################################################
########################################################################
echo "CREATING /tmp/secret.dunikey (https://cesium.app WALLET)"
########################################################################
python3 ${ MY_PATH } /tools/key_create_dunikey.py " $g1_salt " " $g1_pepper "
g1pub = $( cat /tmp/secret.dunikey | grep "pub" | cut -d ' ' -f 2)
g1sec = $( cat /tmp/secret.dunikey | grep "sec" | cut -d ' ' -f 2)
########################################################################
########################################################################
echo "CREATING /tmp/config.ipfs"
########################################################################
ipfs_ID = $( python3 ${ MY_PATH } /tools/create_ipfsnodeid_from_tmp_secret.dunikey.py)
echo $ipfs_ID > /tmp/secret.ipfs && source /tmp/secret.ipfs
[ [ $PrivKEY = = "" ] ] && echo "ERROR CREATING IPFS IDENTITY" && exit 1
jq -r --arg PeerID " $PeerID " '.Identity.PeerID=$PeerID' ~/.ipfs/config > /tmp/config.tmp
jq -r --arg PrivKEY " $PrivKEY " '.Identity.PrivKey=$PrivKEY' /tmp/config.tmp > /tmp/config.ipfs
rm /tmp/config.tmp
# IPFSNODEID
IPFSNODEID = $PeerID
echo " IPFSNODEID= $IPFSNODEID "
## Declare directory transfered in IPFS
IPFS_sync_directory = " $HOME /astroport "
mkdir -p $IPFS_sync_directory
########################################################################
# INSTALL KEYS
########################################################################
echo "INSTALL OASIS crypto identity in ~/.zen"
[ [ -f ~/.zen/secret.june ] ] && mv ~/.zen/secret.june ~/.zen/secret.june.old.$TS
mv /tmp/secret.june ~/.zen/secret.june
chmod 640 ~/.zen/secret.june
[ [ -f ~/.zen/secret.dunikey ] ] && mv ~/.zen/secret.dunikey ~/.zen/secret.dunikey.old.$TS
mv /tmp/secret.dunikey ~/.zen/secret.dunikey
chmod 640 ~/.zen/secret.dunikey
[ [ -f ~/.zen/secret.ipfs ] ] && mv ~/.zen/secret.ipfs ~/.zen/secret.ipfs.old.$TS
mv /tmp/secret.ipfs ~/.zen/secret.ipfs
chmod 640 ~/.zen/secret.ipfs
#[[ -f ~/.ipfs/config ]] && mv ~/.ipfs/config ~/.ipfs/config.old.$TS
mv /tmp/config.ipfs ~/.ipfs/config
########################################################################
echo " INIT ~/.zen/ipfs/. ${ IPFSNODEID } INDEX "
########################################################################
rm -Rf ~/.zen/ipfs
mkdir -p ~/.zen/ipfs/.${ IPFSNODEID } /G1SSB
########################################################################
# Give $XZUID to your (gchange friends)
########################################################################
echo " SETTING ASTRXBIAN PROFILE NAME = $XZUID "
echo " $XZUID " > ~/.zen/ipfs/.${ IPFSNODEID } /_xbian.zuid
## AJOUTER COORD GPS :!!!!!
echo "
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNKkxllllllldk0NWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXx:..';lokkxkkol;' ..; d0WMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXo' ' dKWMMMMMX.; WMMMMMXk; ..c0WMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMKc .xNMMMMMMMMN. :MMMMMMMMWO, ,OWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWl .kMMMMMMMMMMN. :MMMMMMMMMMK; :XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMX, lWMMMMMMMMMMW. cMMMMMMMMMMMk .OMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMX' OMMMMMMMMMMMW, lMMMMMMMMMMMX..OMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMW: xMMMMMMMMMMMM; dMMMMMMMMMMMK .XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMO ' MMMMMMMMMMMMc xMMMMMMMMMMMl oMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWl xMMMMMMMMMMMl kMMMMMMMMMMX ' WMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWc OMMMMMMMMMMl kMMMMMMMMMM.' WMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWc xMMMMMMMMMd . OMMMMMMMMN ' WMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMk ,MMMMMMMMx :WMMWWN; 0MMMMMMMo lWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMN; kMMMMMMO ,WW, KMMMMMX..KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMK. KMMMM0 .NW, .KMMMN. kMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMK. xMM0 XW, .KM0..kMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNc ,O; ' ,,,,,0MK:::::::::ccclooodxl ; KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMW0; ,OWMMMMMMMMMMMMMMMMMMMMMMK: ' kWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMKc..:kNMMMMMMMMMMMMMMMWOc..:kWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWKo,..,:odO0000xdc; ..' lOWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWXOdo:::::::ldkKNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
ASTROPORT ONE.
"
########################################################################
echo "Activating ipfs DHT optimisations"
########################################################################
# DHT gossip PUBSUB mode
ipfs config Pubsub.Router gossipsub
# MAXSTORAGE = 1/2 available
availableDiskSize = $( df -P ~/ | awk 'NR>1{sum+=$4}END{print sum}' )
diskSize = " $(( availableDiskSize / 2 )) "
ipfs config Datastore.StorageMax $diskSize
# Activate Rapid "ipfs p2p"
ipfs config --json Experimental.Libp2pStreamMounting true
ipfs config --json Experimental.P2pHttpProxy true
ipfs config Addresses.Gateway "/ip4/0.0.0.0/tcp/8080"
# CREATE IPFS BOOTSTRAP ###########
ipfs bootstrap rm --all
## ARIES COLLECT REGULARLY OASIS ADDRESS
# ARIES IPNS KEY /ip4/37.187.127.175/tcp/4001/p2p/12D3KooWSQYTxeoZZ39SNosEKxi7RUdGTtAQAqpKeZJxjzqqrZTx
for bootnode in $( ipfs cat /ipns/12D3KooWSQYTxeoZZ39SNosEKxi7RUdGTtAQAqpKeZJxjzqqrZTx/bootstrap)
do
## ADD $bootnode TO BOOTSTRAP
ipfs bootstrap add $bootnode
done
########################################################################
echo "Install youtube-dl" # Avoid provider restrictions
########################################################################
${ MY_PATH } /tools/install.youtube-dl.sh
exit 0