···2121├── forgejo/ # Git hosting (git.aly.codes)
2222├── longhorn-creds/ # B2 backup-target Secret + recurring backup job + UI ingress
2323├── morsels/ # atproto pastebin (morsels.blue)
2424-├── pg-shared/ # CloudNativePG cluster + longhorn-pg StorageClass
2424+├── pg-shared/ # CloudNativePG cluster using local-path replicas
2525├── tranquil-pds/ # TRanquil atproto Personal Data Server
2626├── uptime-kuma/ # Uptime monitoring + status pages
2727├── vaultwarden/ # Bitwarden-compatible vault
···100100101101- **`cluster-tls`** — renders one `kubernetes.io/tls` Secret per entry in
102102 `.Values.secret`, sourced from `secrets/cluster-tls.yaml`.
103103-- **`pg-shared`** — a CNPG `Cluster` + a Longhorn `StorageClass`. Apps that
104104- need a database get a role + database created manually in this cluster;
105105- there's no per-app provisioning yet.
103103+- **`pg-shared`** — a CNPG `Cluster` using `local-path` volumes for Postgres
104104+ data. CNPG provides HA with streaming replication across instances; B2
105105+ backups and WAL archiving cover recovery. A `longhorn-pg` StorageClass is
106106+ rendered for experiments or a future migration, but the live cluster does not
107107+ use it. Apps that need a database get a role + database created manually in
108108+ this cluster; there's no per-app provisioning yet.
106109- **`external-routes`** — for each entry in `.Values.routes`, renders a
107110 `Service` + `EndpointSlice` + `Ingress` pointing at an external IP
108111 (typically a Tailscale IP for a service running on jubilife or eterna).
+2-1
k8s/helmfile.yaml
···173173174174 # ─── Shared platform services ───────────────────────────────────────────
175175176176- # CNPG Cluster (3-instance HA postgres) + longhorn-pg StorageClass.
176176+ # CNPG Cluster (3-instance HA postgres). Uses local-path for Postgres data;
177177+ # CNPG handles HA via streaming replication, while B2 backups cover recovery.
177178 # Apps that need a database get a role + db here; see charts/pg-shared.
178179 # Backup config (B2) lives in values/secrets/pg-shared.yaml.
179180 - name: pg-shared