Database Backups
What this covers
This page is about database backups:
- automatic backup schedule
- manual backup creation/deletion
- retention behavior
- restore workflow
- backup troubleshooting
Backup behavior
JobOps stores backups in the same data directory as jobs.db.
Two backup types exist:
- Automatic backups
- Manual backups
Automatic backups
- Scheduled daily.
- Filename format:
jobs_YYYY_MM_DD.db - Schedule hour is configured in Settings (UTC hour).
- Automatic retention is capped by
backupMaxCount. - If today’s automatic backup already exists, JobOps skips creating a duplicate.
Manual backups
- Triggered from Settings or
POST /api/backups. - Filename format:
jobs_manual_YYYY_MM_DD_HH_MM_SS.db - If a filename collision occurs, JobOps appends
_1,_2, etc. - Manual backups are not auto-deleted by automatic retention cleanup.
Configure backups
In Settings → Backup:
- Enable automatic backups.
- Set backup hour (
0-23, UTC). - Set max automatic backups to keep (
1-5). - Save settings.
API reference
# List backups + next scheduled run time
curl "http://localhost:3001/api/backups"
# Create a manual backup
curl -X POST "http://localhost:3001/api/backups"
# Delete a specific backup
curl -X DELETE "http://localhost:3001/api/backups/jobs_manual_2026_02_15_10_20_30.db"
# Update backup settings via Settings API
curl -X PATCH "http://localhost:3001/api/settings" \
-H "content-type: application/json" \
-d '{
"backupEnabled": true,
"backupHour": 2,
"backupMaxCount": 5
}'
Restore workflow
To restore from a backup:
- Stop JobOps.
- Locate backup files in your data directory.
- Copy the chosen backup over the main DB file (
jobs.db). - Start JobOps.
- Verify jobs/runs in the UI.
Example shell flow:
# Example only: adjust paths for your setup
cp /path/to/data/jobs_manual_2026_02_15_10_20_30.db /path/to/data/jobs.db
Troubleshooting
Backups are not running automatically
- Confirm
backupEnabledis true. - Confirm backup hour is set as intended (UTC, not local time).
- Verify the app process is running at scheduled time.
POST /api/backups fails
- Confirm the data directory and
jobs.dbare writable/readable. - Confirm
jobs.dbexists. - In demo mode, manual backup creation is blocked.
Cannot delete a backup
- Filename must match valid backup patterns.
- Invalid names and missing files return errors.
Next scheduled time is null
- Automatic backups are currently disabled.
Notes
- Backup cleanup applies only to automatic backups.
- Manual backups stay until you delete them.