Backup jobs (ops view) and restore expectations

SSH backup ops view: schedule, preflight, history. No in-app restore. Uploads are not in website backups.

Backup jobs (ops view) and restore expectations

Operate scheduled and manual backups. Restore is a manual ops step from the remote copies.

Where to find it

Admin → Backup (/admin/backup). Settings also under Settings → Mods → Backup mod (toggle.backup_mod).

How it works

Piece Detail
Schedule backup_period: off / hourly (:15 UTC) / daily (03:30 UTC) / monthly (day 1 04:45 UTC)
Targets Database (toggle.backup_database, default on) and/or website (toggle.backup_website, default off)
SSH host, port (default 22), user, path, private key or password
Retention keep N stamps (default 5, 1-100) or overwrite current/

Database uses pg_dump to the remote path. Website rsyncs the app tree excluding node_modules, .next, .git, .env*, the upload dir, and backup work dirs.

There is no in-app Restore. Recover with psql / file copy from the remote folders. Member uploads are not in website backups - back up local/remote/CDN storage separately.

Clear history deletes BackupRun rows only - not remote files. Schedule runs only when Backup mod is on, period ≠ off, and SSH host/user/path + auth are set.

Common problems

Schedule never runs

Backup mod off, period off, missing SSH auth, or SITE_BACKUP_DISABLED set.

Run now fails immediately

UI posts /api/admin/settings/backup/run - if that route is missing on your build, use the schedule (pg-boss worker) or fix the API. Save settings before retrying.

Clearing history deleted backups

It did not - only the in-app run log was cleared.

Related