forked from STI/Astroport.ONE
226 lines
14 KiB
Bash
Executable File
226 lines
14 KiB
Bash
Executable File
#!/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 Astronaiuts Team. Learn and share how to live together on 'One Planet'
|
|
|
|
ASTROPORT est un jeu d'amis entre amis basé sur IPFS.
|
|
Rejoignez l'équipe des astronautes. Apprenez et partagez comment vivre ensemble sur 'une seule planète'.
|
|
|
|
NOW INSTALLING REQUIRED TOOLS & CRYPTO STUFF
|
|
MAINTENANT INSTALLATION DES OUTILS NÉCESSAIRES ET DU MATÉRIEL CRYPTOGRAPHIQUE
|
|
"
|
|
## VERIFY SOFTWARE DEPENDENCIES
|
|
[[ ! $(which ipfs) ]] && echo "EXIT. Vous devez avoir installé ipfs CLI sur votre ordinateur" && echo "https://dist.ipfs.io/#go-ipfs" && exit 1
|
|
|
|
[ $(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 figlet apt-transport-https ca-certificates protobuf-compiler; 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 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
|
|
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
|
|
|
|
# GAME FILES DATA STRUCTURE
|
|
mkdir -p ~/.zen/tmp
|
|
mkdir -p ~/.zen/game/players
|
|
mkdir -p ~/.zen/game/worlds
|
|
|
|
########################################################################
|
|
echo "INITIALISATION STATION OASIS ASTROPORT"
|
|
########################################################################
|
|
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)
|
|
|
|
echo "Conservez ou modifiez ce identifiant (passphrase 1)? $salt" && read salty && [[ $salty ]] && salt="$salty"
|
|
echo "Conservez ou modifiez ce mot de passe (passphrase 2)? $pepper" && read peppery && [[ $peppery ]] && pepper="$peppery"
|
|
[[ "$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 "CREATION CLEF 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 "PREPARATION 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 "STATION CRYPTO ID ~/.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 "Activation Identité $XZUID + Optimisations IPFS"
|
|
########################################################################
|
|
# 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"
|
|
|
|
# REMOVE 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/.12D3KooWSQYTxeoZZ39SNosEKxi7RUdGTtAQAqpKeZJxjzqqrZTx/bootstrap)
|
|
do
|
|
## ADD $bootnode TO BOOTSTRAP
|
|
ipfs bootstrap add $bootnode
|
|
done
|
|
|
|
########################################################################
|
|
echo "Installation de youtube-dl - Copions le Web avant qu'il ne ferme" # Avoid provider restrictions
|
|
########################################################################
|
|
${MY_PATH}/tools/install.youtube-dl.sh
|
|
#TODO# SWITCH TO yt-dlp
|
|
sudo curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /usr/local/bin/yt-dlp
|
|
sudo chmod a+rx /usr/local/bin/yt-dlp
|
|
|
|
|
|
exit 0
|