This includes a new paradigm for using a pgpass file, which is great, as well as sorting out how to properly do a bash script shebang in a service file.
43 lines
1.3 KiB
Bash
43 lines
1.3 KiB
Bash
#!/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."
|