* 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>
128 lines
2.9 KiB
Markdown
128 lines
2.9 KiB
Markdown
---
|
||
id: database-backups
|
||
title: Database Backups
|
||
description: Configure, run, and restore JobOps database backups.
|
||
sidebar_position: 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 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**:
|
||
|
||
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
|
||
|
||
```bash
|
||
# List backups + next scheduled run time
|
||
curl "http://localhost:3001/api/backups"
|
||
```
|
||
|
||
```bash
|
||
# Create a manual backup
|
||
curl -X POST "http://localhost:3001/api/backups"
|
||
```
|
||
|
||
```bash
|
||
# Delete a specific backup
|
||
curl -X DELETE "http://localhost:3001/api/backups/jobs_manual_2026_02_15_10_20_30.db"
|
||
```
|
||
|
||
```bash
|
||
# 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:
|
||
|
||
```bash
|
||
# 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.
|
||
|
||
## Related pages
|
||
|
||
- [Settings](../features/settings)
|
||
- [Self-Hosting](./self-hosting)
|