Operator Frame

Global navigation, page frame, and live control-plane status.

The shell is intentionally persistent: left-side navigation, a shared header, and durable status surfaces remain stable while future workflow views swap in.

Backup Health

unknown

Last Backup

no record found

Storage

Backblaze B2

Backups

SQLite backup health

← Back to operations hub

Status

Last backup record

  • Healthunknown
  • Last Backupno record found
  • Backup Countunknown
  • Retention30 days
  • Storage TargetBackblaze B2

No backup record found. The VPS writes /opt/build-factory/data/last-backup.json after each successful backup run. Verify the nightly workflow is configured and has run at least once.

Schedule

Nightly backup workflow

Backup runs nightly at 02:00 UTC via .github/workflows/backup-sqlite.yml. The workflow SSHs to the VPS and runs scripts/backup-sqlite.sh, then uploads the compressed, checksummed file to Backblaze B2.

Alert threshold: backup overdue after 25 hours.

Restore

Recovery procedure

Full restore procedure: backup-restore.md

Emergency steps: stop the app container, copy the backup from B2 to /opt/build-factory/data/factory.db, restart. See the runbook for the full terminal walkthrough.