2019-11-30 03:29:55 +00:00
|
|
|
#!/bin/bash
|
|
|
|
|
2021-01-25 04:46:22 +00:00
|
|
|
# set -e # Stop on error (skip for now with new logic to allow an attempt to install each container)
|
2020-04-08 04:31:06 +00:00
|
|
|
set -x
|
2019-11-30 03:29:55 +00:00
|
|
|
|
|
|
|
source /usr/share/mynode/mynode_config.sh
|
|
|
|
|
2020-01-07 05:18:00 +00:00
|
|
|
echo "Starting mynode_docker_images.sh ..."
|
2020-03-01 20:53:50 +00:00
|
|
|
touch /tmp/installing_docker_images
|
2020-01-07 05:18:00 +00:00
|
|
|
|
2019-11-30 03:29:55 +00:00
|
|
|
# Drive should be mounted, let's still wait a bit
|
2020-03-01 18:40:59 +00:00
|
|
|
sleep 10s
|
2019-11-30 03:29:55 +00:00
|
|
|
|
2020-01-15 04:38:03 +00:00
|
|
|
echo "Waiting on bitcoin to sync so drive usage is lower..."
|
|
|
|
/usr/bin/wait_on_bitcoin.sh
|
|
|
|
|
2020-02-23 21:55:37 +00:00
|
|
|
while true; do
|
|
|
|
echo "Checking for building new docker images..."
|
|
|
|
touch /tmp/installing_docker_images
|
|
|
|
|
|
|
|
# Pull images that don't need to be built
|
2020-03-21 02:53:38 +00:00
|
|
|
# ???
|
2020-02-23 21:55:37 +00:00
|
|
|
|
|
|
|
# Upgrade WebSSH2
|
|
|
|
echo "Checking for new webssh2..."
|
2020-09-03 02:24:40 +00:00
|
|
|
WEBSSH2_UPGRADE_VERSION=v0.2.10-0
|
|
|
|
WEBSSH2_UPGRADE_URL=https://github.com/billchurch/webssh2/archive/${WEBSSH2_UPGRADE_VERSION}.tar.gz
|
2020-02-23 21:55:37 +00:00
|
|
|
WEBSSH2_UPGRADE_URL_FILE=/mnt/hdd/mynode/settings/webssh2_url
|
|
|
|
CURRENT=""
|
|
|
|
if [ -f $WEBSSH2_UPGRADE_URL_FILE ]; then
|
|
|
|
CURRENT=$(cat $WEBSSH2_UPGRADE_URL_FILE)
|
|
|
|
fi
|
|
|
|
if [ "$CURRENT" != "$WEBSSH2_UPGRADE_URL" ]; then
|
|
|
|
docker rmi webssh2 || true
|
|
|
|
|
|
|
|
cd /tmp/
|
|
|
|
rm -rf webssh2
|
|
|
|
wget $WEBSSH2_UPGRADE_URL -O webssh2.tar.gz
|
|
|
|
tar -xvf webssh2.tar.gz
|
|
|
|
rm webssh2.tar.gz
|
|
|
|
mv webssh2-* webssh2
|
|
|
|
cd webssh2
|
|
|
|
docker build -t webssh2 .
|
2021-01-25 04:46:22 +00:00
|
|
|
if [ $? == 0 ]; then
|
|
|
|
echo $WEBSSH2_UPGRADE_URL > $WEBSSH2_UPGRADE_URL_FILE
|
|
|
|
fi
|
2020-02-23 21:55:37 +00:00
|
|
|
fi
|
|
|
|
|
2020-03-21 02:56:53 +00:00
|
|
|
# Upgrade mempool
|
|
|
|
echo "Checking for new mempool..."
|
2020-10-20 02:09:47 +00:00
|
|
|
MEMPOOLSPACE_UPGRADE_VERSION=v1.0.1
|
|
|
|
MEMPOOLSPACE_UPGRADE_URL=https://github.com/mempool/mempool/archive/${MEMPOOLSPACE_UPGRADE_VERSION}.zip
|
2020-02-23 21:55:37 +00:00
|
|
|
MEMPOOLSPACE_UPGRADE_URL_FILE=/mnt/hdd/mynode/settings/mempoolspace_url
|
|
|
|
CURRENT=""
|
|
|
|
if [ -f $MEMPOOLSPACE_UPGRADE_URL_FILE ]; then
|
|
|
|
CURRENT=$(cat $MEMPOOLSPACE_UPGRADE_URL_FILE)
|
|
|
|
fi
|
|
|
|
if [ "$CURRENT" != "$MEMPOOLSPACE_UPGRADE_URL" ]; then
|
|
|
|
docker rmi mempoolspace || true
|
|
|
|
|
|
|
|
cd /opt/mynode
|
|
|
|
rm -rf mempoolspace
|
|
|
|
wget $MEMPOOLSPACE_UPGRADE_URL -O mempool.zip
|
|
|
|
unzip -o mempool.zip
|
|
|
|
rm mempool.zip
|
|
|
|
mv mempool* mempoolspace
|
|
|
|
cd mempoolspace
|
|
|
|
sync
|
2021-01-25 04:46:22 +00:00
|
|
|
|
|
|
|
# myNode Hack - Force use of specific alpine image source
|
|
|
|
sed -i "s/alpine:latest/alpine:3.12.3/g" Dockerfile
|
|
|
|
|
2020-02-23 21:55:37 +00:00
|
|
|
sleep 3s
|
|
|
|
docker build -t mempoolspace .
|
2021-01-25 04:46:22 +00:00
|
|
|
if [ $? == 0 ]; then
|
|
|
|
echo $MEMPOOLSPACE_UPGRADE_URL > $MEMPOOLSPACE_UPGRADE_URL_FILE
|
|
|
|
fi
|
2020-02-23 21:55:37 +00:00
|
|
|
fi
|
|
|
|
|
2020-03-01 18:40:59 +00:00
|
|
|
# Install Dojo
|
2020-09-26 01:28:16 +00:00
|
|
|
DOJO_VERSION="v1.8.0"
|
|
|
|
DOJO_TAR_HASH="4c1e41790b6839f26ec947e96b3dc4c94e0218f0003e292a2c3808b0a1182fe6"
|
2020-09-25 17:20:35 +00:00
|
|
|
DOJO_UPGRADE_URL=https://code.samourai.io/dojo/samourai-dojo/-/archive/$DOJO_VERSION/samourai-dojo-$DOJO_VERSION.tar.gz
|
2020-03-01 18:40:59 +00:00
|
|
|
DOJO_UPGRADE_URL_FILE=/mnt/hdd/mynode/settings/dojo_url
|
|
|
|
CURRENT=""
|
|
|
|
INSTALL=true
|
2020-05-13 01:54:17 +00:00
|
|
|
# If Upgrade file existed, mark "install" choice for legacy devices
|
2020-03-01 18:40:59 +00:00
|
|
|
if [ -f $DOJO_UPGRADE_URL_FILE ]; then
|
2020-05-13 01:54:17 +00:00
|
|
|
touch /mnt/hdd/mynode/settings/mynode_dojo_install
|
|
|
|
sync
|
|
|
|
sleep 3s
|
2020-03-01 18:40:59 +00:00
|
|
|
fi
|
2020-05-13 01:54:17 +00:00
|
|
|
# Only install Dojo if marked for installation
|
|
|
|
if [ -f /mnt/hdd/mynode/settings/mynode_dojo_install ]; then
|
|
|
|
if [ -f $DOJO_UPGRADE_URL_FILE ]; then
|
|
|
|
INSTALL=false
|
|
|
|
CURRENT=$(cat $DOJO_UPGRADE_URL_FILE)
|
|
|
|
fi
|
|
|
|
if [ "$CURRENT" != "$DOJO_UPGRADE_URL" ]; then
|
2021-01-25 04:46:22 +00:00
|
|
|
MARK_DOJO_COMPLETE=1
|
2021-01-23 04:55:44 +00:00
|
|
|
sudo mkdir -p /opt/download/dojo
|
|
|
|
sudo mkdir -p /mnt/hdd/mynode/dojo
|
|
|
|
sudo rm -rf /opt/download/dojo/*
|
|
|
|
cd /opt/download/dojo
|
2020-05-13 01:54:17 +00:00
|
|
|
sudo wget -O dojo.tar.gz $DOJO_UPGRADE_URL
|
2020-09-25 17:20:35 +00:00
|
|
|
|
|
|
|
# verify tar file
|
|
|
|
echo "$DOJO_TAR_HASH dojo.tar.gz" > /tmp/dojo_hash
|
|
|
|
sha256sum --check /tmp/dojo_hash
|
|
|
|
|
2020-05-13 01:54:17 +00:00
|
|
|
sudo tar -zxvf dojo.tar.gz
|
2021-01-23 04:55:44 +00:00
|
|
|
sudo cp -r samourai-dojo*/* /mnt/hdd/mynode/dojo
|
|
|
|
sudo rm -rf /opt/download/dojo/*
|
2020-05-13 01:54:17 +00:00
|
|
|
|
|
|
|
# Configure Dojo for MyNode
|
2021-01-25 04:46:22 +00:00
|
|
|
sudo /usr/bin/mynode_gen_dojo_config.sh || MARK_DOJO_COMPLETE=0
|
2020-05-13 01:54:17 +00:00
|
|
|
|
|
|
|
# Run Dojo Install or Upgrade
|
2021-01-23 04:55:44 +00:00
|
|
|
cd /mnt/hdd/mynode/dojo/docker/my-dojo
|
2020-09-26 01:28:16 +00:00
|
|
|
INSTALL_PID=0
|
2020-05-13 01:54:17 +00:00
|
|
|
if [ "$INSTALL" = "true" ]; then
|
|
|
|
yes | sudo ./dojo.sh install &
|
2020-09-26 01:28:16 +00:00
|
|
|
INSTALL_PID=$!
|
2020-05-13 01:54:17 +00:00
|
|
|
else
|
|
|
|
yes | sudo ./dojo.sh upgrade &
|
2020-09-26 01:28:16 +00:00
|
|
|
INSTALL_PID=$!
|
2020-05-13 01:54:17 +00:00
|
|
|
fi
|
|
|
|
|
|
|
|
#Check for install/upgrade to finish to initialize Dojo mysql db
|
2021-01-25 04:46:22 +00:00
|
|
|
sudo /usr/bin/mynode_post_dojo.sh
|
2020-05-13 01:54:17 +00:00
|
|
|
|
2020-09-26 01:28:16 +00:00
|
|
|
# Wait for install script to finish
|
2021-01-25 04:46:22 +00:00
|
|
|
wait $INSTALL_PID || MARK_DOJO_COMPLETE=0
|
|
|
|
|
2020-09-26 01:28:16 +00:00
|
|
|
|
|
|
|
# Try and start dojo (if upgraded and already enabled)
|
2021-02-05 01:40:05 +00:00
|
|
|
systemctl enable dojo &
|
2021-01-25 04:46:22 +00:00
|
|
|
systemctl restart dojo &
|
2020-09-26 01:28:16 +00:00
|
|
|
|
2021-01-25 04:46:22 +00:00
|
|
|
# Mark dojo install complete
|
|
|
|
if [ $MARK_DOJO_COMPLETE = 1 ]; then
|
|
|
|
echo $DOJO_UPGRADE_URL > $DOJO_UPGRADE_URL_FILE
|
|
|
|
fi
|
2020-03-01 18:40:59 +00:00
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
2020-02-23 21:55:37 +00:00
|
|
|
rm -f /tmp/installing_docker_images
|
|
|
|
|
|
|
|
# Wait a day
|
|
|
|
sleep 1d
|
|
|
|
done
|
|
|
|
|
|
|
|
# We should not exit
|
|
|
|
exit 1
|