Jobber/docs-site/docs/getting-started/database-backups.md
Shaheer Sarfaraz 390d03625e
Add documentation for undocumented features (#172)
* documentation writing skill

* visa sponsors page

* overview

* in progress board

* settings

* reactive resume section

* database backups

* workflows

* post application tracking flow

* manual tracking caveats

* pricing section

* pipeline run detalis

* job search bar

* keyboard shortcuts

* bulk actions

* no informal phrasing

* formatting

* build fix?

* Update docs-site/docs/features/overview.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update docs-site/versioned_docs/version-0.1.20/features/orchestrator.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update docs-site/docs/features/visa-sponsors.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update docs-site/docs/features/in-progress-board.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* remove link to page that don't exist

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-16 00:33:35 +00:00

2.9 KiB
Raw Blame History

id, title, description, sidebar_position
id title description sidebar_position
database-backups Database Backups Configure, run, and restore JobOps database backups. 2

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 todays 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:

  1. Enable automatic backups.
  2. Set backup hour (0-23, UTC).
  3. Set max automatic backups to keep (1-5).
  4. 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:

  1. Stop JobOps.
  2. Locate backup files in your data directory.
  3. Copy the chosen backup over the main DB file (jobs.db).
  4. Start JobOps.
  5. 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 backupEnabled is 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.db are writable/readable.
  • Confirm jobs.db exists.
  • 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.