diff --git a/id.tjo.space/root/usr/local/bin/postgresql-backup-restore.sh b/id.tjo.space/root/usr/local/bin/postgresql-backup-restore.sh
new file mode 100755
index 0000000..81a4c5f
--- /dev/null
+++ b/id.tjo.space/root/usr/local/bin/postgresql-backup-restore.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+set -euo pipefail
+
+echo "=== Reading Configuration"
+set -a && source /etc/postgresql/postgresql.env && set +a
+
+echo "== Stopping Authentik..."
+systemctl stop authentik-server authentik-worker
+
+echo "== Dropping and Recreating Database..."
+podman exec systemd-postgresql dropdb --username="${POSTGRES_USER}" --force --if-exists "${POSTGRES_DB}"
+podman exec systemd-postgresql createdb --username="${POSTGRES_USER}" "${POSTGRES_DB}"
+
+echo "== Restoring Database..."
+cat /dev/stdin | podman exec -i systemd-postgresql pg_restore \
+  --username="${POSTGRES_USER}" \
+  --dbname="${POSTGRES_DB}"
+
+echo "== Starting Authentik..."
+systemctl start authentik-server authentik-worker