Operations
Backups, restores, and deploying changes safely.
What holds state
| Store | Contents |
|---|---|
| Studio database | People, sessions, projects, members, connections, configuration |
| Coordinator database | Runs, jobs, verdicts, events, and the workflow engine's state |
| Deployment environment | Secrets: database passwords, auth secret, service tokens, GitHub App key |
| GitHub | Issues, pull requests, statuses, check runs, QA screenshots |
Workers keep nothing that matters; clones and worktrees are rebuilt per job.
Backups
infra/postgres/backup.sh dumps both databases daily into a volume and keeps 14 days. Schedule it in Dokploy on the postgres service (sh /backup.sh), copy the dumps off the server, and keep a copy of the deployment's environment.
Restore
Stop the studio and the coordinator, restore each database with pg_restore --clean, then start the coordinator before the studio. Restoring the coordinator rewinds runs to the dump; compare runs in progress with GitHub afterwards.
Deploying coordinator changes
The workflow engine replays a run against the deployed code. Changing the order or number of a ticket workflow's steps breaks runs in progress, so deploy such changes when no run is active. Changes inside a step, to routes, or to the studio are safe at any time.