Skip to content

Restore and recovery tiers — homelab farm systems

Purpose

Define tiered recovery expectations for farm records (farmOS / DB), container hosts, and cluster storage—using labels (Tier 0–3). RPO/RTO are operator-defined targets filled after restore drills, not invented by the wiki.

Doctrine role: Canonical tier vocabulary for the package—pair with Disaster recovery decision rules for when to invoke each tier.

Sources: homelab backup stack — official captures.

Canonical package: Backup and disaster recovery package — smart farm stack.


RPO and RTO expectations (worksheet)

Recovery Point Objective (RPO): maximum acceptable age of data you are willing to lose (e.g. “last successful nightly dump” vs “15-minute WAL shipping”—only the former is assumed here unless you document otherwise).

Recovery Time Objective (RTO): maximum acceptable downtime to bring minimum usable farm records or telemetry back online (typically hours to days by tier below).

Workload Tier target (below) RPO (you fill) RTO (you fill) Last drill date
farmOS / PostgreSQL logical 2 e.g. 24 h e.g. 8 h
Longhorn volume(s) for app PVC 1–2
k3s etcd / control plane 3
Rancher (if deployed) 3
Edge gateway config (non-Git) 1

Rule: Targets without a dated restore drill per Runbook — backup validation and recovery drill are aspirational only.


Tier definitions (operational)

Tier Scope Restore speed (typical) Complexity Retention behavior (typical) Encryption
0 — Working state Live service; no restore N/A N/A N/A TLS in transit as deployed
1 — File / volume rollback One PVC, bind mount, or VM disk from restic or Longhorn snapshot Hours (operator available) Low–medium—mount + verify Snapshot count + forget policy (restic remove docs) restic repo encryption; Longhorn backup target TLS
2 — Database logical restore pg_dump / vendor dump into clean DB Hours Medium—schema/version match Daily/weekly dumps per policy Same as backup medium
3 — Platform DR Longhorn system backup/restore + rebuild cluster Days High—ordering, CRDs, targets Infrequent full platform bundles Cluster secrets + backup store ACLs

Rule: Tier 3 without Tier 2 for the same app data can produce empty “healthy” clusters—always keep a logical farm data path for farmOS-class systems unless you have proven consistent volume-level procedures.


What to drill (minimum)

  1. Restore one restic snapshot to scratch storage (verify files, not just restic check).
  2. Restore DB from latest logical dump to a staging DB and run farmOS update/migrate per project docs.
  3. Longhorn (if used): walkthrough backup target failure and re-auth procedure from longhorn backup capture.