diff --git a/templates/usr/local/bin/authentik-backup.sh.j2 b/templates/usr/local/bin/authentik-backup.sh.j2 new file mode 100644 index 0000000..2773659 --- /dev/null +++ b/templates/usr/local/bin/authentik-backup.sh.j2 @@ -0,0 +1,31 @@ +#!/bin/bash + +BORGUSER="{{ backup_owner }}"; +RUNFOLDER="{{ backup_run_folder }}"; +TARGETFOLDER="{{ backup_storage }}"; +REPOLOCATION="{{ backup_location }}"; +ARCHIVENAME="authentik-$(date '+%s')"; + +cd $RUNFOLDER; +POSTGRES_DOCKER_ID=$(docker ps --format '{{.ID}} {{.Names}}' | grep postgres | cut -f 1 -d ' '); + +mkdir $TARGETFOLDER/$ARCHIVENAME; +docker exec -i $POSTGRES_DOCKER_ID /usr/local/bin/pg_dump --username {{ authentik_db.user }} {{ authentik_db.name }} > $TARGETFOLDER/authentik-postgres-backup.sql + +sudo -H -u $BORGUSER bash -c ' +TARGETFOLDER='$TARGETFOLDER'; +REPOLOCATION='$REPOLOCATION'; +ARCHIVENAME='$ARCHIVENAME'; +export BORG_PASSPHRASE=$(cat {{ backup_home }}/.borg.key); +borg create -C lzma $REPOLOCATION::$ARCHIVENAME $TARGETFOLDER/$ARCHIVENAME'; +rm -rf $TARGETFOLDER/$ARCHIVENAME; + + +### RESTORE!!! ### +SHUTDOWN_CONTAINER_IDS=$(docker ps --format '{{.ID}} {{.Names}}' | cut -f 1 -d ' ' | grep -v $POSTGRES_DOCKER_ID | tr '\n' ' '); +docker stop $SHUTDOWN_CONTAINER_IDS +docker exec -i $POSTGRES_DOCKER_ID /usr/local/bin/dropdb --username {{ authentik_db.user }} '{{ authentik_db.name }}' +docker exec -i $POSTGRES_DOCKER_ID /usr/local/bin/createdb --username {{ authentik_db.user }} '{{ authentik_db.name }}' +docker exec -i $POSTGRES_DOCKER_ID /usr/local/bin/psql --username {{ authentik_db.user }} -d {{ authentik_db.name }} < $TARGETFOLDER/authentik-postgres-backup.sql +docker-compose down +docker-compose up -d \ No newline at end of file diff --git a/templates/usr/local/bin/idp-backup.sh.j2 b/templates/usr/local/bin/idp-backup.sh.j2 deleted file mode 100644 index cc1f786..0000000 --- a/templates/usr/local/bin/idp-backup.sh.j2 +++ /dev/null @@ -1 +0,0 @@ -#!/bin/bash \ No newline at end of file diff --git a/templates/usr/local/bin/email-backup.sh.j2 b/templates/usr/local/bin/mailcow-backup.sh.j2 similarity index 100% rename from templates/usr/local/bin/email-backup.sh.j2 rename to templates/usr/local/bin/mailcow-backup.sh.j2