32 lines
1.2 KiB
SYSTEMD
32 lines
1.2 KiB
SYSTEMD
|
[Unit]
|
||
|
Description=Backup PostgreSQL databases
|
||
|
Requires=main-network.service
|
||
|
Requires=postgresql.service
|
||
|
After=main-network.service
|
||
|
After=postgresql.service
|
||
|
RequiresMountsFor=/srv/postgresql/backup
|
||
|
RequiresMountsFor=%t/containers
|
||
|
|
||
|
[Service]
|
||
|
Delegate=yes
|
||
|
Type=notify
|
||
|
NotifyAccess=all
|
||
|
SyslogIdentifier=%N
|
||
|
Environment=PODMAN_SYSTEMD_UNIT=%n
|
||
|
KillMode=mixed
|
||
|
|
||
|
EnvironmentFile=/etc/postgresql/secrets.env
|
||
|
EnvironmentFile=/etc/postgresql/postgresql.env
|
||
|
Environment=BACKUP_DIR=/srv/postgresql/backups
|
||
|
Environment=POSTGRES_HOST=systemd-postgresql
|
||
|
|
||
|
ExecStartPre=/usr/bin/systemctl stop authentik-server authentik-worker
|
||
|
ExecStartPre=/usr/bin/mkdir -p $BACKUP_DIR
|
||
|
|
||
|
ExecStart=/usr/bin/podman run --name=systemd-%N --cidfile=%t/%N.cid --cgroups=split --sdnotify=conmon --detach --replace --rm --network systemd-main -v ${BACKUP_DIR}:/backups -e PGPASSWORD=${POSTGRES_PASSWORD} docker.io/library/postgres:17.4 pg_dump --username=${POSTGRES_USER} --host=${POSTGRES_HOST} --format=custom --file=/backups/${CURRENT_DATETIME}.sql ${POSTGRES_DB}
|
||
|
|
||
|
ExecStop=/usr/bin/podman rm -v -f -i --cidfile=%t/%N.cid
|
||
|
|
||
|
ExecStopPost=-/usr/bin/podman rm -v -f -i --cidfile=%t/%N.cid
|
||
|
ExecStopPost=/usr/bin/systemctl start authentik-server authentik-worker
|