diff --git a/infrastrucure/docker/image/resources/backup.sh b/infrastrucure/docker/image/resources/backup.sh new file mode 100644 index 0000000..9f5d1b2 --- /dev/null +++ b/infrastrucure/docker/image/resources/backup.sh @@ -0,0 +1,6 @@ +set -o pipefail +# backup database dump +pg_dump -d $(cat ${POSTGRES_DB_FILE}) -h $POSTGRES_SERVICE -p $POSTGRES_PORT -U $(cat ${POSTGRES_USER_FILE}) --no-password --serializable-deferrable --clean --no-privileges | \ +restic -r $RESTIC_REPOSITORY --verbose backup --stdin --tag DB_Backup +# backup nextcloud filesystem +restic -r $RESTIC_REPOSITORY backup /var/backups/ --tag Nextcloud_Filesystem diff --git a/infrastrucure/docker/image/resources/restore.sh b/infrastrucure/docker/image/resources/restore.sh new file mode 100644 index 0000000..6aa09ed --- /dev/null +++ b/infrastrucure/docker/image/resources/restore.sh @@ -0,0 +1,12 @@ +# Restore Nextcloud Filesystem +# Reads restore snapshot_ID from first CLI Argument +restic -r $RESTIC_REPOSITORY restore $1 --target / + +# Delete DB +psql -d template1 -h $POSTGRES_SERVICE -p $POSTGRES_PORT -U $(cat ${POSTGRES_USER_FILE}) --no-password -c "DROP DATABASE \"cloud\";" +# Create DB again +psql -d template1 -h $POSTGRES_SERVICE -p $POSTGRES_PORT -U $(cat ${POSTGRES_USER_FILE}) --no-password -c "CREATE DATABASE \"cloud\";" +# create folder from db backup +restic -r $RESTIC_REPOSITORY restore $2 --target test-stdin-$2 +# read folder and restore db entries +psql -d $(cat ${POSTGRES_DB_FILE}) -h $POSTGRES_SERVICE -p $POSTGRES_PORT -U $(cat ${POSTGRES_USER_FILE}) --no-password < test-stdin-$2 \ No newline at end of file