nixos-systems/scripts/backup-authentik-db.sh

44 lines
1.3 KiB
Bash
Raw Permalink Normal View History

#!/usr/bin/env bash
set -euo pipefail
set -o xtrace
service_redis="podman-authentik-redis"
service_server="podman-authentik-server"
service_worker="podman-authentik-worker"
backup_dir="/var/backups/authentik-db"
backup_file="$backup_dir/authentik-db-$(date +%Y-%m-%d_%H-%M-%S).dump"
# Stop the services
echo "Stopping $service_redis..."
systemctl stop "$service_redis"
echo "Stopping $service_server..."
systemctl stop "$service_server"
#echo "Stopping $service_worker..."
#systemctl stop "$service_worker"
# Ensure backup directory exists
echo "Creating backup directory"
mkdir -p "$backup_dir"
# Perform the database backup (requires appropriate pg_dump credentials)
echo "Backing up database..."
pg_dump -U "$AUTHENTIK_POSTGRESQL__USER" -d "$AUTHENTIK_POSTGRESQL__NAME" -h "$AUTHENTIK_POSTGRESQL__HOST" -p "$AUTHENTIK_POSTGRESQL__PORT" -f "$backup_file"
# Check if the backup was successful
if [ -s "$backup_file" ]; then
echo "Backup successful: $backup_file"
else
echo "Backup failed!"
exit 1 # Indicate an error
fi
# Restart the service
echo "Restarting $service_redis..."
systemctl start "$service_redis"
echo "Restarting $service_server..."
systemctl start "$service_server"
echo "Restarting $service_worker..."
systemctl start "$service_worker"
echo "Backup complete."