astroport/.install/scuttlebutt.sh

129 lines
3.0 KiB
Bash
Raw Normal View History

2020-03-19 21:25:39 +01:00
#!/bin/bash
scuttlebutt() {
2020-03-23 19:07:37 +01:00
echo -e "${c_yellow}Onboarding SCUTTLEBUTT...$c_"
where_is_ssb_installed=$(which ssb-server)
BASE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
2020-03-23 19:31:54 +01:00
if [[ ! $where_is_ssb_installed ]]; then
2020-03-23 19:07:37 +01:00
# Install dependencies
sudo apt-get install -y socat python3-dev libtool python3-setuptools autoconf automake
# Install nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.2/install.sh | bash
source ~/.bashrc
nvm install --lts
2020-03-23 20:52:51 +01:00
# Install ssb-server and config in ~/.ssb_astroport
2020-03-23 21:38:52 +01:00
[[ ! -d ~/.ssb_astroport ]] && mkdir -p ~/.ssb_astroport
cd ~/.ssb_astroport
2020-03-23 21:42:55 +01:00
2020-03-23 19:07:37 +01:00
npm install sodium-native ssb-backlinks ssb-ws ssb-links ssb-query
npm install -g ssb-server
fi
2020-03-23 21:38:52 +01:00
# TEST ssb-server Install
2020-03-23 19:07:37 +01:00
ssbSERVER=$(which ssb-server)
[[ $ssbSERVER == "" ]] && echo "Check your ssb-server install... Cannot find it !!" && exit 1
2020-03-23 21:38:52 +01:00
# If exists backup ~/.ssb to ~/.ssb_$USER SSB (one time only !)
[[ -d ~/.ssb ]] && [[ ! -d ~/.ssb_$USER ]] && mv ~/.ssb ~/.ssb_$USER
# CREATE ~/.ssb_astroport
[[ ! -d ~/.ssb_astroport ]] && mkdir -p ~/.ssb_astroport && cd ~/.ssb_astroport
# if exists, keep ~/.ssb_$USER/secret*
[[ ! -f ~/.ssb_astroport/secret ]] && [[ -f ~/.ssb_$USER/secret ]] && cp -f ~/.ssb_$USER/secret* ~/.ssb_astroport/
2020-03-23 19:07:37 +01:00
2020-03-23 21:38:52 +01:00
# Symlink ~/.ssb -> ~/.ssb_astroport
[[ -L ~/.ssb ]] && rm ~/.ssb
[[ -d ~/.ssb_astroport ]] && ln -s ~/.ssb_astroport ~/.ssb
2020-03-23 19:07:37 +01:00
# Create config (TODO: adapt if public Pub or Local Node)
2020-03-24 01:20:10 +01:00
# TODO: Create unique hostname in swarm !! uidna
2020-03-23 19:07:37 +01:00
nodename=$(cat /etc/hostname)
2020-03-23 20:38:06 +01:00
extension=$(echo $nodename | cut -d '.' -f 2)
2020-03-23 19:07:37 +01:00
2020-03-24 01:20:10 +01:00
echo "
_ __ __ _
_ _ .__|_o _ (_ (_ |_)
(_(_)| || |(_| __)__)|_)
_|
$nodename
"
if [[ $extension == "" ]]; then
# LOCAL
cat > ~/.ssb/config <<EOF
{
"connections": {
"incoming": {
"net": [
{ "scope": "public", "host": "0.0.0.0", "external": ["$nodename"], "transform": "shs", "port": 8008 }
]
},
"outgoing": {
"net": [{ "transform": "shs" }]
}
}
}
EOF
cat > ~/.zen/run-ssb_$nodename.sh <<EOF
#!/bin/bash
echo _$ > ~/.zen/ssb.pid.bash
while true; do
ssb-server start 2>dev/null
echo _! > ~/.zen/ssb.pid
done
EOF
else
2020-03-23 22:32:30 +01:00
2020-03-23 19:07:37 +01:00
# PUB
cat > ~/.ssb/config <<EOF
{
"connections": {
"incoming": {
"net": [
{
"scope": "public", "external": ["$nodename"], "transform": "shs", "port": 8008
},
{ "scope": "private", "host": "127.0.0.1", "transform": "shs", "port": 8008 }
]
},
"outgoing": {
"net": [
{
"transform": "shs"
}
]
}
}
}
EOF
2020-03-24 01:20:10 +01:00
cat > ~/.zen/run-ssb_$nodename.sh <<EOF
#!/bin/bash
echo _$ > ~/.zen/ssb.pid.bash
while true; do
ssb-server start --host $nodename 2>dev/null
echo _! > ~/.zen/ssb.pid
done
EOF
2020-03-23 19:07:37 +01:00
fi
2020-03-24 01:20:10 +01:00
sed -i s/_/\$/g ~/.zen/run-ssb_$nodename.sh
chmod 755 ~/.zen/run-ssb_$nodename.sh
~/.zen/run-ssb_$nodename.sh &
echo '
__ _ _ _ _
(_ |_|_)\ /|_|_) o._ o_|_
__)|_| \ \/ |_| \ || || |_ ... SCUTTLEBUTT ... OK
'
2020-03-23 19:07:37 +01:00
2020-03-19 21:25:39 +01:00
}
2020-03-19 22:21:19 +01:00
$@