From 96ddf75d24cd99a2756c3cec9d16fad03c29272a Mon Sep 17 00:00:00 2001 From: lhahn Date: Tue, 23 Jul 2024 21:07:37 +0200 Subject: [PATCH] Save Authentik Backup and Restore Sketch --- .../usr/local/bin/authentik-backup.sh.j2 | 31 +++++++++++++++++++ templates/usr/local/bin/idp-backup.sh.j2 | 1 - ...mail-backup.sh.j2 => mailcow-backup.sh.j2} | 0 3 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 templates/usr/local/bin/authentik-backup.sh.j2 delete mode 100644 templates/usr/local/bin/idp-backup.sh.j2 rename templates/usr/local/bin/{email-backup.sh.j2 => mailcow-backup.sh.j2} (100%) 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..10202ca --- /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; +POSTGRRES_DOCKER_ID=$(docker ps --format '{{.ID}} {{.Names}}' | grep postgres | cut -f 1 -d ' '); + +mkdir $TARGETFOLDER/$ARCHIVENAME; +docker exec -i $POSTGRRES_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 939 /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