systemd/backup.service

; systemd/backup.service
; Oneshot unit that runs backup/backup-all.sh. If it fails, email the
; journal snippet via systemd's OnFailure= hook (systemd-email.sh is
; shipped separately on the host).

[Unit]
Description=Homelab backup orchestrator
Documentation=https://mercemay.top/src/homelab-compose/
Wants=network-online.target
After=network-online.target docker.service
ConditionPathExists=/srv/homelab/backup/backup-all.sh
OnFailure=status-email-admin@%n.service

[Service]
Type=oneshot
User=root
Group=root
Nice=10
IOSchedulingClass=best-effort
IOSchedulingPriority=7
TimeoutStartSec=6h
Environment=LOG_JSON=1
Environment=SECRETS_DIR=/srv/homelab/secrets
ExecStart=/srv/homelab/backup/backup-all.sh
StandardOutput=journal
StandardError=journal
ProtectSystem=full
ProtectHome=read-only
NoNewPrivileges=no