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.