2023-02-01 19:44:05 +00:00
|
|
|
#!/bin/bash
|
|
|
|
|
2023-04-07 18:04:43 +00:00
|
|
|
set -eu
|
2023-02-01 19:44:05 +00:00
|
|
|
|
2023-03-09 14:55:40 +00:00
|
|
|
CURRENT_REMOTE="$(lxc remote get-default)"
|
2023-02-01 19:44:05 +00:00
|
|
|
|
2023-03-09 14:55:40 +00:00
|
|
|
if echo "$CURRENT_REMOTE" | grep -q "production"; then
|
2023-02-01 19:44:05 +00:00
|
|
|
echo "WARNING: You are running a migration procedure on a production system."
|
|
|
|
echo ""
|
|
|
|
|
|
|
|
|
|
|
|
RESPONSE=
|
|
|
|
read -r -p " Are you sure you want to continue (y) ": RESPONSE
|
|
|
|
if [ "$RESPONSE" != "y" ]; then
|
|
|
|
echo "STOPPING."
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
# check if there are any uncommited changes. It's dangerous to
|
|
|
|
# alter production systems when you have commits to make or changes to stash.
|
|
|
|
if git update-index --refresh | grep -q "needs update"; then
|
|
|
|
echo "ERROR: You have uncommited changes! Better stash your work with 'git stash'."
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
fi
|
|
|
|
|
2023-04-07 14:23:04 +00:00
|
|
|
. ./deployment_defaults.sh
|
|
|
|
|
2023-04-04 15:30:07 +00:00
|
|
|
export REMOTE_PATH="$REMOTES_PATH/$CURRENT_REMOTE"
|
2023-03-13 17:40:47 +00:00
|
|
|
REMOTE_DEFINITION="$REMOTE_PATH/remote.conf"
|
2023-03-09 14:55:40 +00:00
|
|
|
export REMOTE_DEFINITION="$REMOTE_DEFINITION"
|
2023-02-01 19:44:05 +00:00
|
|
|
|
2023-03-09 14:55:40 +00:00
|
|
|
# ensure the remote definition exists.
|
|
|
|
if [ ! -f "$REMOTE_DEFINITION" ]; then
|
|
|
|
echo "ERROR: The remote definition could not be found. You may need to run 'ss-remote'."
|
2023-03-13 17:40:47 +00:00
|
|
|
echo "INFO: Consult https://www.sovereign-stack.org/ss-remote for more information."
|
2023-02-01 19:44:05 +00:00
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
2023-03-09 14:55:40 +00:00
|
|
|
source "$REMOTE_DEFINITION"
|
2023-04-04 15:32:54 +00:00
|
|
|
|
|
|
|
# ensure our projects are provisioned according to DEPLOYMENT_STRING
|
|
|
|
for PROJECT_CHAIN in ${DEPLOYMENT_STRING//,/ }; do
|
|
|
|
NO_PARENS="${PROJECT_CHAIN:1:${#PROJECT_CHAIN}-2}"
|
|
|
|
PROJECT_PREFIX=$(echo "$NO_PARENS" | cut -d'|' -f1)
|
|
|
|
BITCOIN_CHAIN=$(echo "$NO_PARENS" | cut -d'|' -f2)
|
|
|
|
PROJECT_NAME="$PROJECT_PREFIX-$BITCOIN_CHAIN"
|
|
|
|
|
|
|
|
# create the lxc project as specified by PROJECT_NAME
|
|
|
|
if ! lxc project list | grep -q "$PROJECT_NAME"; then
|
|
|
|
lxc project create "$PROJECT_NAME"
|
2023-04-04 20:24:39 +00:00
|
|
|
lxc project set "$PROJECT_NAME" features.networks=true features.images=false features.storage.volumes=true
|
|
|
|
lxc project switch "$PROJECT_NAME"
|
2023-04-04 15:32:54 +00:00
|
|
|
fi
|
|
|
|
|
|
|
|
# default values are already at regtest mode.
|
|
|
|
if [ "$BITCOIN_CHAIN" = testnet ]; then
|
|
|
|
|
|
|
|
WWW_SSDATA_DISK_SIZE_GB=30
|
2023-04-04 20:25:58 +00:00
|
|
|
WWW_BACKUP_DISK_SIZE_GB=30
|
2023-04-04 15:32:54 +00:00
|
|
|
WWW_DOCKER_DISK_SIZE_GB=50
|
|
|
|
|
|
|
|
BTCPAYSERVER_SSDATA_DISK_SIZE_GB=30
|
2023-04-04 20:25:58 +00:00
|
|
|
BTCPAYSERVER_BACKUP_DISK_SIZE_GB=30
|
|
|
|
BTCPAYSERVER_DOCKER_DISK_SIZE_GB=100
|
2023-04-04 15:32:54 +00:00
|
|
|
|
|
|
|
elif [ "$BITCOIN_CHAIN" = mainnet ]; then
|
|
|
|
|
|
|
|
WWW_SSDATA_DISK_SIZE_GB=40
|
2023-04-04 20:25:58 +00:00
|
|
|
WWW_BACKUP_DISK_SIZE_GB=40
|
|
|
|
WWW_DOCKER_DISK_SIZE_GB=1000
|
2023-04-04 15:32:54 +00:00
|
|
|
|
|
|
|
BTCPAYSERVER_SSDATA_DISK_SIZE_GB=30
|
2023-04-04 20:25:58 +00:00
|
|
|
BTCPAYSERVER_BACKUP_DISK_SIZE_GB=30
|
|
|
|
BTCPAYSERVER_DOCKER_DISK_SIZE_GB=500
|
2023-04-04 15:32:54 +00:00
|
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
export WWW_SSDATA_DISK_SIZE_GB="$WWW_SSDATA_DISK_SIZE_GB"
|
|
|
|
export WWW_BACKUP_DISK_SIZE_GB="$WWW_BACKUP_DISK_SIZE_GB"
|
|
|
|
export WWW_DOCKER_DISK_SIZE_GB="$WWW_DOCKER_DISK_SIZE_GB"
|
|
|
|
|
|
|
|
export BTCPAYSERVER_SSDATA_DISK_SIZE_GB="$BTCPAYSERVER_SSDATA_DISK_SIZE_GB"
|
|
|
|
export BTCPAYSERVER_BACKUP_DISK_SIZE_GB="$BTCPAYSERVER_BACKUP_DISK_SIZE_GB"
|
|
|
|
export BTCPAYSERVER_DOCKER_DISK_SIZE_GB="$BTCPAYSERVER_DOCKER_DISK_SIZE_GB"
|
|
|
|
|
|
|
|
done
|