Deployment and setup
Backups and recovery
Protect database and private files as one recovery pair.
Create a backup
The Unix helper creates checksummed database and private-file archives together:
bash infrastructure/scripts/backup.sh
The API pauses during the operation. Archives go under ignored infrastructure/backups/. Encrypt them and copy them to separate university-controlled storage; they may contain sensitive identity and health information. Define access and retention locally.
Restore safely
Restoration replaces the destination database and private-file volume. Confirm target and checksums first. Start PostgreSQL on a clean matching revision, apply documented migrations once, then run:
bash infrastructure/scripts/restore.sh infrastructure/.env.selfhost /path/to/backup-directory
Verify login, authorized private files and branding afterward. A disk snapshot alone is not the documented paired backup.
Evidence limits
Earlier backup/restore verification has founder acceptance. Production/provider recovery and branding database restore review remain open. Browser storage is not a server backup. Never rehearse destructive restore on the only copy of real data.
Source and scope
Reviewed against the maintained local university branch on 17 October 2026. docs/operations/README.md.