From 0e76a649bca4f91cc3bb8616f9665c5e76134031 Mon Sep 17 00:00:00 2001 From: qo-op Date: Mon, 30 Mar 2020 03:33:30 +0200 Subject: [PATCH] backup .ssb --- install.sh | 249 +++++++++++++++++++++++++++++++++-------------------- 1 file changed, 154 insertions(+), 95 deletions(-) diff --git a/install.sh b/install.sh index 9fb611e..0d435c9 100755 --- a/install.sh +++ b/install.sh @@ -1,5 +1,5 @@ #!/bin/bash -################################################################################ +######################################################################## # Authors: # [@cel](@f/6sQ6d2CMxRUhLpspgGIulDxDCwYD7DzFzPNr7u5AU=.ed25519) # [@Fred](@9BbJwPDjcyIqrOUPNn0nJZBduWdIrpMk3Cjz5MP361s=.ed25519) @@ -7,92 +7,142 @@ # [@poka]() # Version: 1.0.1 # License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/) -########################################################################################### -# ADD G1 Layer 10 LOVE to message writer you like ! -# INSTALL silkaj sbotc -# PREVENT DOUBLE PAYEMENT -############################################################################################ - -# INSTALL requirements -[[ ! $(which base58) ]] && sudo apt install build-essential base58 -y +######################################################################## +######################################################################## +MY_PATH="`dirname \"$0\"`" # relative +MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized +ME="${0##*/}" +echo ' +######################################################################## +# \\/// +# qo-op +############# '$MY_PATH/$ME' +######################################################################## +# SSB-G1-TX :: INSTALL G1 + SSB for sending G1 Tip on SSB likes +######################################################################## +' # INSTALL Silkaj, CLI for Duniter if [[ ! $(which silkaj) ]]; then - echo "INSTALL silkaj" + echo '************************************************************** + __ ___ +(_ | | |/ /\ | +__) _|_ |_ |\ /--\ \_| + +#Libre Money Layer +' + mkdir -p ~/.zen sudo apt update || true - sudo apt install python3-pip python3-setuptools python3-wheel -y && pip3 install silkaj --user + sudo apt install build-essential -y + sudo pip3 install base58 + sudo apt install python3-pip python3-setuptools python3-wheel -y + pip3 install silkaj --user echo 'PATH=$PATH:.local/bin' >> ~/.bashrc && source ~/.bashrc fi -# Install ScuttleButt -if [[ ! $(which sbot) ]]; then +# Install ScuttleButt +echo '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ + __ _ ___ ___ _ _ ___ ___ +(_ / | | | | | |_ |_) | | | | +__) \_ |_| | | |_ |_ |_) |_| | | + +#Libre Social Layer + +Is it a 24/24 Pub? +Yes/No: y? (Default No)' +read ssb_yes + +nodename=$(cat /etc/hostname) +extension=$(echo $nodename | cut -d '.' -f 2) +[[ $extension == $nodename ]] && nodename=$nodename.local + +if [[ ! $(which sbot) && "$ssb_yes" == "y" ]]; then curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.2/install.sh | bash source ~/.bashrc - export NVM_DIR="$HOME/.nvm" - [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm - [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion - nvm install --lts - sudo apt install libtool autoconf -y - npm install sodium-native ssb-backlinks - npm install -g ssb-server - - nodename=$(cat /etc/hostname).local - echo "SSB Node Hostname (default $nodename)?" - read EXTERNAL - [[ $EXTERNAL == "" ]] && EXTERNAL=$nodename - mkdir -p ~/.ssb + nvm install --lts + + sudo apt install libtool autoconf -y + npm install sodium-native ssb-backlinks ssb-ws ssb-links ssb-query ssb-secret-blob ssb-private + npm install -g ssb-server + + # LOCAL + ####### BACKUP .ssb to ~/.ssb_$USER && CREATE ~/.ssb_astroport + # If exists backup ~/.ssb to ~/.ssb_$USER SSB (one time only !) + [[ -d ~/.ssb_$USER ]] && echo "BACKUP already existing... ~/.ssb_$USER !!! Manual check please..." && exit 1 + [[ -d ~/.ssb ]] && [[ ! -d ~/.ssb_$USER ]] && mv ~/.ssb ~/.ssb_$USER + # CREATE ~/.ssb_astroport + [[ ! -d ~/.ssb_astroport ]] && mkdir -p ~/.ssb_astroport + # if exists, keep ~/.ssb_$USER/secret* + [[ ! -f ~/.ssb_astroport/secret ]] && [[ -f ~/.ssb_$USER/secret ]] && cp -f ~/.ssb_$USER/secret* ~/.ssb_astroport/ + + # Symlink ~/.ssb -> ~/.ssb_astroport + [[ -L ~/.ssb ]] && rm ~/.ssb + [[ -d ~/.ssb_astroport ]] && ln -s ~/.ssb_astroport ~/.ssb + cat > ~/.ssb/config < ~/run-ssb-PUB_$EXTERNAL.sh < ~/.zen/run-ssb_server.sh < ~/.zen/ssb.pid.bash while true; do - ssb-server start --host $EXTERNAL + ssb-server start + echo _! > ~/.zen/ssb.pid done EOF - chmod 755 ~/run-ssb-PUB_$EXTERNAL.sh - ~/run-ssb-PUB_$EXTERNAL.sh & + # REPLACE _ with $ + sed -i s/_/\$/g ~/.zen/run-ssb_server.sh + chmod 755 ~/.zen/run-ssb_server.sh + + # INSTALL sbotc for CLI API + if [[ ! $(which sbotc) ]]; then + sudo apt install libsodium-dev jq -y + git clone https://git.scuttlebot.io/%25133ulDgs%2FoC1DXjoK04vDFy6DgVBB%2FZok15YJmuhD5Q%3D.sha256 sbotc + cd sbotc + make + sudo make install + fi + fi -# INSTALL sbotc -if [[ ! $(which sbotc) ]]; then -sudo apt install libsodium-dev jq -y -git clone https://git.scuttlebot.io/%25133ulDgs%2FoC1DXjoK04vDFy6DgVBB%2FZok15YJmuhD5Q%3D.sha256 sbotc -cd sbotc -make -sudo make install -fi +# LOCAL NODE +if [[ $extension == $nodename ]] ; then + echo ' + _ ___ _ _ _ +|_) /\ | / |_| \ / / \ |_) |/ +| /--\ | \_ | | \/\/ \_/ | \ |\ + +Install Patchwork... +' + + wget -s https://github.com/ssbc/patchwork/releases/download/v3.17.6/ssb-patchwork_3.17.6_amd64.deb > /tmp/ + sudo dpkg -i /tmp/ssb-patchwork_3.17.6_amd64.deb + +fi ########################################################################################### ####################### G1 SSB ACCOUNT MANAGER ############################################ ########################################################################################### - - # If user already has an SSB account, we generate Duniter secret key from SSB secret key if [[ -f ~/.ssb/secret ]]; then @@ -115,54 +165,68 @@ else mkdir -p ~/.ssb echo "WELCOME CREATING YOUR G1 SSB ACCOUNT !!!" -echo "CHOOSE YOU LOGIN or LEAVE BLANK & HIT ENTER FOR AUTO GENERATION" +echo " + __ __ __ _ +/__ /| (_ (_ |_) +\_| | __) __) |_) + +CHOOSE YOU LOGIN or LEAVE BLANK & HIT ENTER FOR AUTO GENERATION" read salt -[[ $salt != "" ]] && echo "PASSWORD?" && read pepper && [[ $pepper == "" ]] && exit +[[ $salt != "" ]] && echo "PASSWORD?" && read pepper && [[ $pepper == "" ]] && exit 1 -# INSTALL Cargo -if [[ ! $(which cargo) ]]; then - curl https://sh.rustup.rs -sSf | sh - PATH=$PATH:~/.cargo/env - source $HOME/.cargo/env +if [[ "$salt" == "" && "$pepper" == "" ]]; then + echo ' +._ _ ._ _ ._ _ _ ._ o _ +| | | | | (/_ | | | (_) | | | (_ + +passphrase generator...' + + # INSTALL Cargo + if [[ ! $(which cargo) ]]; then + curl https://sh.rustup.rs -sSf | sh + PATH=$PATH:~/.cargo/env + source $HOME/.cargo/env + fi + + # Install DUP-Mnemonic + + if [[ ! $(which dup-mnemonic) ]]; then + cd /tmp + git clone https://git.duniter.org/tools/dup-mnemonic-rs + cd dup-mnemonic-rs + cargo build --release + sudo cp target/release/dup-mnemonic /usr/local/bin + fi + + # GENERATE MNEMONIC KEY: 9 MOTS + if [[ $salt == "" ]]; then + declare -a makeyarray + makeyarray=($(dup-mnemonic -l $lang)) + # LOGIN (=SALT) 6 WORDS + salt="${makeyarray[0]} ${makeyarray[1]} ${makeyarray[2]} ${makeyarray[3]} ${makeyarray[4]} ${makeyarray[5]}" + # PASS (=PEPPER) 3 WORDS + pepper="${makeyarray[6]} ${makeyarray[7]} ${makeyarray[8]}" + fi + echo "........." + echo "REMEMBER YOUR CREDENTIALS: $salt / $pepper" fi -# Install DUP-Mnemonic - -if [[ ! $(which dup-mnemonic) ]]; then - cd /tmp - git clone https://git.duniter.org/tools/dup-mnemonic-rs - cd dup-mnemonic-rs - cargo build --release - sudo cp target/release/dup-mnemonic /usr/local/bin -fi - -# GENERATE MNEMONIC KEY: 9 MOTS -if [[ $salt == "" ]]; then - declare -a makeyarray - makeyarray=($(dup-mnemonic -l $lang)) - # LOGIN (=SALT) 6 MOTS - salt="${makeyarray[0]} ${makeyarray[1]} ${makeyarray[2]} ${makeyarray[3]} ${makeyarray[4]} ${makeyarray[5]}" - # PASS (=PEPPER) 3 MOTS - pepper="${makeyarray[6]} ${makeyarray[7]} ${makeyarray[8]}" -fi -echo "........." -echo "REMEMBER YOUR CREDENTIALS: $salt / $pepper" - # CREATE ~/.ssb/secret.dunikey -python3 ./key_create_dunikey.py "$salt" "$pepper" -mv ./.secret.dunikey ~/.ssb/secret.dunikey +python3 $MY_PATH/key_create_dunikey.py "$salt" "$pepper" +mv $MY_PATH/.secret.dunikey ~/.ssb/secret.dunikey # CREATE SSB secret -g1pub=$(cat ~/.ssb/secret.dunikey | grep "pub" | cut -d ' ' -f 2) -g1priv=$(cat ~/.ssb/secret.dunikey | grep "sec" | cut -d ' ' -f 2) -ssbpub=$(echo $g1pub | base58 -d | base64) -ssbpriv=$(echo $g1priv | base58 -d | base64) +pub=$(cat ~/.ssb/secret.dunikey | grep "pub" | cut -d ' ' -f 2) +priv=$(cat ~/.ssb/secret.dunikey | grep "sec" | cut -d ' ' -f 2) +ssbpub=$(echo $pub | base58 -d | base64) +ssbpriv=$(echo $priv | base58 -d | base64) + cat > ~/.ssb/secret < ~/.ssb/secret <