Recover: Postgres (primary)
No signal criticalSystem of record for control plane state, task history and workspace metadata.
- Owner
- homelab-operator
- Target RTO
- 25m
- Last heartbeat
- never
- Dependent entities
- 2
Recovery readiness70/100
Procedure
Read fully before acting.- Check replication lag on postgres-replica BEFORE promoting — promoting a lagging replica loses every transaction in the gap.
- Fence the old primary first so it cannot accept writes after promotion (split-brain is unrecoverable here).
- Promote the replica, then repoint jarvisos-control-plane at the new endpoint.
- After the incident, rebuild the old primary from a fresh base backup. Do not reattach it as-is.
- Credentials are read from /etc/jarvisos/config.env — never echo them into incident notes.
Bring-up order
Dependencies first — starting out of order is a common second incident.- Home1 Node
- Postgres (primary) Database target
Failover targets
mode: manual-
Streaming replica on VIN. Promotion is one-way until a fresh base backup is taken.
Restore source
- Destination
- nas-backups
- Schedule
- every 6h + WAL archiving
- Last success
- never
- RPO
- 15m
- Verified by
- monthly restore drill
What this affects
Impacted if this stays down, or while you restart it.Readiness breakdown
- Documented runbook 20 pts
- Backup stale or missing 30 pts
- Restore verification scheduled 20 pts
- Healthy failover target available 30 pts