#!/bin/bash ######################################################################## # Authors: # [@cel](@f/6sQ6d2CMxRUhLpspgGIulDxDCwYD7DzFzPNr7u5AU=.ed25519) # [@Fred](@9BbJwPDjcyIqrOUPNn0nJZBduWdIrpMk3Cjz5MP361s=.ed25519) # [@Boris](@l5nYExWYIgDLV6BYHOJPoI97jIUyTdSm8CTLpQ0XeOg=.ed25519) # [@poka]() # Version: 1.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##*/}" 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 '************************************************************** __ ___ (_ | | |/ /\ | __) _|_ |_ |\ /--\ \_| #Libre Money Layer ' mkdir -p ~/.zen sudo apt update || true 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 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 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 < ~/.zen/run-ssb_server.sh < ~/.zen/ssb.pid.bash while true; do ssb-server start echo _! > ~/.zen/ssb.pid done EOF # 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 # 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 ssbpub=$(cat ~/.ssb/secret | grep public\" | cut -d ' ' -f 4 | cut -d '.' -f 1 | sed s/\"//g) ssbpriv=$(cat ~/.ssb/secret | grep private\" | cut -d ' ' -f 4 | cut -d '.' -f 1 | sed s/\"//g) g1pub=$(echo $ssbpub | base64 -d | base58) g1priv=$(echo $ssbpriv | base64 -d | base58) cat > ~/.ssb/secret.dunikey < ~/.ssb/secret <