1
0

Backup: Add optional MariaDB (#706)

This commit is contained in:
d11n
2022-10-18 20:33:15 +02:00
committed by GitHub
parent b944945fb2
commit 592210e941
2 changed files with 93 additions and 26 deletions

View File

@@ -28,10 +28,10 @@ fi
. "$BASH_PROFILE_SCRIPT"
docker_dir=$(docker volume inspect generated_btcpay_datadir --format="{{.Mountpoint}}" | sed -e "s%/volumes/.*%%g")
dbdump_name=postgres.sql.gz
postgres_dump_name=postgres.sql.gz
btcpay_dir="$BTCPAY_BASE_DIRECTORY/btcpayserver-docker"
backup_dir="$docker_dir/volumes/backup_datadir/_data"
dbdump_path="$docker_dir/$dbdump_name"
postgres_dump_path="$docker_dir/$postgres_dump_name"
backup_path="$backup_dir/backup.tar.gz"
# ensure backup dir exists
@@ -42,31 +42,50 @@ fi
cd $btcpay_dir
. helpers.sh
dbcontainer=$(docker ps -a -q -f "name=postgres_1")
if [ -z "$dbcontainer" ]; then
# Postgres database
postgres_container=$(docker ps -a -q -f "name=postgres_1")
if [ -z "$postgres_container" ]; then
printf "\n"
echo " Database container is not up and running. Starting BTCPay Server …"
echo " Postgres container is not up and running. Starting BTCPay Server …"
docker volume create generated_postgres_datadir
docker-compose -f $BTCPAY_DOCKER_COMPOSE up -d postgres
printf "\n"
dbcontainer=$(docker ps -a -q -f "name=postgres_1")
if [ -z "$dbcontainer" ]; then
echo "🚨 Database container could not be started or found."
postgres_container=$(docker ps -a -q -f "name=postgres_1")
if [ -z "$postgres_container" ]; then
echo "🚨 Postgres container could not be started or found."
exit 1
fi
fi
printf "\n"
echo " Dumping database …"
echo " Dumping Postgres database …"
{
docker exec $dbcontainer pg_dumpall -c -U postgres | gzip > $dbdump_path
echo "✅ Database dump done."
docker exec $postgres_container pg_dumpall -c -U postgres | gzip > $postgres_dump_path
echo "✅ Postgres database dump done."
} || {
echo "🚨 Dumping failed. Please check the error message above."
echo "🚨 Dumping Postgres database failed. Please check the error message above."
exit 1
}
# Optional: MariaDB database
mariadb_container=$(docker ps -a -q -f "name=mariadb_1")
if [ ! -z "$mariadb_container" ]; then
mariadb_dump_name=mariadb.sql.gz
mariadb_dump_path="$docker_dir/$mariadb_dump_name"
# MariaDB container exists and is running - dump it
printf "\n"
echo " Dumping MariaDB database …"
{
docker exec $mariadb_container mysqldump -u root -pwordpressdb -A --add-drop-database | gzip > $mariadb_dump_path
echo "✅ MariaDB database dump done."
} || {
echo "🚨 Dumping MariaDB database failed. Please check the error message above."
exit 1
}
fi
# BTCPay Server backup
printf "\n Stopping BTCPay Server …\n\n"
btcpay_down
@@ -85,12 +104,13 @@ echo " Archiving files in $(pwd)…"
--exclude="volumes/generated_litecoin_datadir/_data/chainstate" \
--exclude="volumes/generated_litecoin_datadir/_data/indexes" \
--exclude="volumes/generated_litecoin_datadir/_data/debug.log" \
--exclude="volumes/generated_mariadb_datadir" \
--exclude="volumes/generated_postgres_datadir" \
--exclude="volumes/generated_electrumx_datadir" \
--exclude="volumes/generated_lnd_bitcoin_datadir/_data/data/graph" \
--exclude="volumes/generated_clightning_bitcoin_datadir/_data/lightning-rpc" \
--exclude="**/logs/*" \
-cvzf $backup_path $dbdump_name volumes/generated_*
-cvzf $backup_path $postgres_dump_name $mariadb_dump_name volumes/generated_*
echo "✅ Archive done."
if [ ! -z "$BTCPAY_BACKUP_PASSPHRASE" ]; then
@@ -122,6 +142,6 @@ cd $btcpay_dir
btcpay_up
printf "\n Cleaning up …\n\n"
rm $dbdump_path
rm $postgres_dump_path
printf "✅ Backup done => $backup_path\n\n"