diff --git a/.env b/.env new file mode 100644 index 0000000..ee4043a --- /dev/null +++ b/.env @@ -0,0 +1,14 @@ +WORDPRESS_VERSION=5.9.3 + +MYSQL_ROOT_PASSWORD="" +MYSQL_PASSWORD="" +MYSQL_PORT=13306 + +NGINX_PORT=1312 + +export BORG_PASSPHRASE='' +export BORG_REPO='cyberbackup:repositories-borg/synthikat' +export BORG_RSH='ssh -F /home/synthikat/.ssh/config -o "StrictHostKeyChecking=no"' +export POD_NAMES='wordpress_wordpress_1 wordpress_db_1' +export FOLDERS_TO_BACKUP='/home/synthikat/wp-content /home/synthikat/db_data /home/synthikat/wordpress' + diff --git a/backup.sh b/backup.sh index 315abcb..8bb6a6a 100755 --- a/backup.sh +++ b/backup.sh @@ -1,20 +1,26 @@ #!/bin/bash +set -xeou pipefail +# setup env DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" cd $DIR . ./.env -# stop the containers to make sure the data doesn't change during backup. -podman stop wordpress_wordpress_1 wordpress_db_1 -# Example backup command: -# backup: is the remote backup server, defined in ~/.ssh/config - ends with a : -# repositories-borg/synthikat is the path on the remote server - ends with a :: -# 'backup{now:%Y%m%d}' is the backup name, this includes today's date in the name -# the rest are the file paths. You can append as many as you want. -podman unshare borg create --stats --progress cyberbackup:repositories-borg/synthikat::'backup{now:%Y%m%d-%M}' ../wp-content ../db_data +# check if these variables have been set +echo "$BORG_REPO" > /dev/null +echo "$BORG_PASSPHRASE" > /dev/null +echo "$FOLDERS_TO_BACKUP" > /dev/null +echo "$POD_NAMES" > /dev/null -# restart the containers -podman start wordpress_wordpress_1 wordpress_db_1 +borg check -# Delete all the backups which are too old, to save space in the long term. -borg prune --keep-daily=7 --keep-weekly=4 cyberbackup:repositories-borg/synthikat +# don't fail just because the pod is not running +set +e +podman stop ${POD_NAMES} +set -e + +podman unshare borg create --stats ::'backup{now:%Y%m%d-%M}' ${FOLDERS_TO_BACKUP} + +borg list + +podman start ${POD_NAMES} diff --git a/run-wordpress.sh b/run-wordpress.sh index 223669f..d60310c 100755 --- a/run-wordpress.sh +++ b/run-wordpress.sh @@ -6,7 +6,7 @@ podman rm -f wordpress_db_1 wordpress_wordpress_1 # run db container -podman run --name=wordpress_db_1 --detach \ +podman run --name=wordpress_db_1 --detach --pull always \ -e MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} \ -e MYSQL_DATABASE=wordpress \ -e MYSQL_USER=wordpress \ @@ -16,7 +16,7 @@ podman run --name=wordpress_db_1 --detach \ mysql:5.7 # run wordpress container -podman run --name=wordpress_wordpress_1 --detach \ +podman run --name=wordpress_wordpress_1 --detach --pull always \ -e WORDPRESS_DB_HOST=78.46.128.202:${MYSQL_PORT} \ -e WORDPRESS_DB_USER=wordpress \ -e WORDPRESS_DB_PASSWORD=${MYSQL_PASSWORD} \