Architecture overview¶
Vista de pájaro del cluster. Para detalle de decisiones, ver ADR-0007. Para IPs concretas y puertos, ver Reference → Inventory.
Hardware¶
| Equipo | Modelo | CPU | RAM | Storage | Rol |
|---|---|---|---|---|---|
pmx-50 |
Mini-PC Ryzen | AMD Ryzen 7 7735HS (8c/16t) | ~29 GB DDR5 | NVMe + ZFS-HA | Proxmox nodo primario (workloads pesados) |
pmx-51 |
Mini-PC Celeron | Intel Celeron N5095 (4c/4t) | ~8 GB DDR4 | NVMe + ZFS-HA | Proxmox nodo secundario (HA/quorum) |
| NAS | TerraMaster F4-423 | Intel N5105 (4c) | 16 GB | 4×6TB RAID5 22TB + Crucial P310 500GB cache | Bulk storage, NFS exports, SMART telemetry |
| Pi-hole | Raspberry Pi 4 | ARM Cortex-A72 | 4 GB | SD | DNS interno + sinkhole, monitorizada |
| Router | ASUS TUF-AX6000 | — | — | — | Gateway/NAT/DHCP en 192.168.0.1. No es "router Movistar" — ese dato quedó obsoleto |
Topología¶
graph TB
subgraph Internet["Internet"]
CFNET[Cloudflare
Tunnel + Access]
end
subgraph LAN["LAN 192.168.0.0/24"]
ROUTER[ASUS TUF-AX6000
.1]
PIHOLE[Pi-hole
.204]
NAS[(NAS F4-423
.20)]
TV[LG TV
.227]
subgraph PMX50["pmx-50 — Ryzen"]
VM171[VM 171
Home Assistant
.171]
VM208[VM 208
media-server
.208]
LXC100[CT 100
clawdbot
.203]
LXC186[LXC 186
PBS
.22]
LXC251[LXC 251
RAG
.202]
LXC270[LXC 270
caddy-primary
.40]
LXC110[LXC 110
tv-gw
.210]
end
subgraph PMX51["pmx-51 — Celeron"]
LXC123[LXC 123
cloudflared
.207]
LXC200[LXC 200
n8n
.200]
LXC271[LXC 271
caddy-secondary
.41]
end
VIP{{VIP .250
keepalived}}
end
CFNET --> LXC123
LXC123 --> VIP
VIP -.MASTER.-> LXC270
VIP -.BACKUP.-> LXC271
LXC270 --> VM208
LXC271 --> VM208
LXC110 --> TV
PIHOLE --> ROUTER
VM208 --> NAS
style VIP fill:#ff6b6b,color:#fff
style VM208 fill:#ffd43b
style LXC270 fill:#51cf66
style LXC271 fill:#51cf66
Workloads principales¶
| ID | Nodo | Propósito | Notas |
|---|---|---|---|
| VM 208 | pmx-50 | Hub Docker — ~90 containers, ~76 running (verificado 2026-08-01; resto duermen vía Sablier). Loki, Prom, Grafana, arr, Immich, Vaultwarden, PocketID, etc. Container Caddy eliminado* post-F4.f. | SPOF backends; Caddy HA ya desacoplado en LXCs |
| VM 171 | pmx-50 | Home Assistant OS | Backups solo a NAS, no Time Machine |
| LXC 270 | pmx-50 | Caddy primary (VIP MASTER) — .40 (movido de .247) — full routing, source-of-truth post-F4.f |
homelab-ctl.py auto-rsync managed.caddy + .env |
| LXC 271 | pmx-51 | Caddy secondary (VIP BACKUP) — .41 (movido de .248) — full routing |
Mismo managed.caddy vía homelab-ctl + Ansible |
| LXC 123 | pmx-51 | cloudflared (CF Tunnel daemon) — .207 |
Apunta a VIP .250 post-F4 |
| CT 100 | pmx-50 | clawdbot (OpenClaw) — .203 — AI assistant, Telegram @Veraclawd_bot |
VMID migró 253→100. LXC 101 (hermesbot) destruido 2026-07-05; OpenClaw sigue vivo |
| LXC 200 | pmx-51 | n8n + alert forwarder | Webhook receiver Alertmanager → Telegram |
| LXC 186 | pmx-50 | Proxmox Backup Server — .22 (movido de .186) |
Datastore main al 41% usado (verificado 2026-08-01) |
| LXC 251 | pmx-50 | RAG (offline-kit) + Kiwix ZIM — .202 (movido de .188) |
Wikipedia/Appropedia, ZIM HTTP |
| LXC 110 | pmx-50 | tv-gw — L3 gateway monitoring para LG TV | Captura tráfico, ADR-0001 |
| LXC 172 | pmx-50 | ha-ml — modelo arrival_predictor — .201 |
Features F7 pendientes |
| CT 280 | pmx-50 | rp-server — .205 (movido de .196) |
|
| CT 281 | pmx-50 | wp-pulse-host — host WordPress Pulse | .211 |
CT 102
iarq-backup-targetestá DESTRUIDO (confirmado 2026-08-01, ya no existe enpvesh get /cluster/resources) — quitado de esta tabla. LXC 249 (beszel) y LXC 250 (kiwix, no confundir con el ZIM de LXC 251) también destruidos.
Principios de diseño¶
- Single ingress — todo HTTP externo entra por CF Tunnel → VIP
.250→ LXC 270/271 Caddy (full routing) → backends192.168.0.208:<host_port>. No port forward en router. - GitOps source of truth — configs PVE, observability, Caddy, crons en
monxas/homelab-infra. Ansible-pull cada 15min. - Secret hygiene — SOPS + age (5 keypairs, ~50 secretos). Cero plaintext en repo, cero secretos en docs públicos.
- HA donde duele — Caddy active-passive (LXCs propios). VM 208 backends siguen SPOF (RTO aceptable vía PBS restore).
- Observabilidad centralizada — Loki + Prometheus en VM 208; Grafana único pane. Alertmanager → Telegram (n8n legacy). Pi-hole exporter + Pushgateway añadidos 2026-05-20.
- SSO unificado — PocketID IdP para 11 OIDC clients (verificado 2026-08-01 en la DB de PocketID) + CF Access (54 apps self_hosted, verificado 2026-07-19 vía CF API — ver
reference/cf-access.md; los37/31que circulaban en otros docs estaban desactualizados), sin email PIN. - Documentación versionada — este sitio. Cambios via PR.
Referencias¶
- ADR-0007 — Homelab Cohesion — documento completo de decisiones.
- Network map — IPs, VIPs, DNS, rutas.
- Inventory — tabla detallada de VMs/LXCs.