Backups
Purpose
Section titled “Purpose”Define what gets backed up, how often, and how backups are verified.
Overview
Section titled “Overview”Backups span every durable tier:
- PostgreSQL — logical dumps plus WAL archiving for point-in-time recovery. This is the system of record (tenants, users, campaigns, leads, CDRs, audit).
- MinIO — object replication or scheduled bucket sync of the
get2dialbucket (audio assets, recordings, voicemail) to off-site storage. - Configuration —
.envand compose files kept in version control, with secrets in a vault (never committed).
Redis is intentionally not backed up — it holds reconstructible call context, pacing counters and presence.
Configuration
Section titled “Configuration”Schedule and retention are environment-specific; document the actual cron/agent in your deployment. A common baseline:
PostgreSQL : daily logical dump, continuous WAL archive, 30-day retentionMinIO : nightly off-site sync, 30-day retentionExamples
Section titled “Examples”See the Backup runbook for the step-by-step procedure and the Restore runbook for recovery.
- A backup you have never restored is a hypothesis, not a backup — test restores.
- Keep at least one copy off-site / in a separate failure domain.
- Recordings and voicemail in MinIO are referenced by object key from Postgres rows; back up both tiers together so references stay valid.