#!/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 for i in build-essential 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 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