Back up and restore
Ticketra includes a built-in backup system that captures the database and file assets (attachments, avatars, and secrets) into a single verifiable archive, on demand or on a schedule.
What's in a backup
A backup archive contains:
- A PostgreSQL dump (the source of truth).
- Attachments and avatars.
- Secrets material needed to read encrypted data after restore.
- A manifest with a version and checksums for every file.
OpenSearch is not backed up — it's a rebuildable index reconstructed from PostgreSQL after a restore.
Create a backup
- Sign in as a
SUPER_ADMIN. - Go to Admin → Backups.
- Click Create Backup and watch progress run to completion.
The new archive appears in the backup list as soon as the operation finishes.
Schedule backups
In Admin → Backups, configure a schedule (backed by a cron expression) so backups run automatically. Scheduling settings are persisted in system configuration.
Restore
A restore replaces the current database contents with the archive's. Take a fresh backup first and perform restores during a maintenance window.
Restore verifies integrity before applying:
- The archive is extracted to a temporary directory.
- The manifest is validated and every file's checksum is recompared. A mismatch or missing file aborts the restore.
- The database is restored via
pg_restore, then file assets are unpacked.
You can restore from the Admin → Backups UI, or use the restore CLI for operator-driven recovery:
docker compose exec api node dist/scripts/restore-cli.js --help
Verify a restore
After restoring:
curl -k https://<host>/api/v1/health
Confirm the database is connected. If OpenSearch search results look stale, the index will rebuild from PostgreSQL.
Operational recommendations
- Test your restores. A backup you've never restored is a hope, not a backup.
- Store archives off-host on encrypted media — they contain secrets material.
- Monitor scheduled backups so a silent failure doesn't leave you exposed.