Skip to content

Homelab monxas.casa

Portal de documentación del cluster Proxmox doméstico. Implementación viva del ADR-0007 — Homelab Cohesion: GitOps con Ansible-pull, secretos SOPS+age, Caddy HA con keepalived, SSO LAN con PocketID, y observabilidad centralizada en Loki/Prometheus/Grafana.

Dos sitios, una fuente

  • docs.monxas.casa — público, CF Pages, IPs/tokens redactados.
  • docs.home.monxas.casa — LAN-only, sin redactar (Caddy ingress). Ambos se generan desde este mismo repo (monxas/homelab-infra).

Resumen del homelab

  • 2 nodos Proxmox: pmx-50 (Ryzen 7 7735HS, ~29 GB) y pmx-51 (Celeron N5095, ~8 GB).
  • NAS TerraMaster F4-423 (22TB RAID5 + cache NVMe Crucial P310 500GB writethrough).
  • Pi-hole en Raspberry Pi como DNS interno + sinkhole.
  • Hub Docker en VM 208 (~75 containers): media stack, observability, automation.
  • Ingress único: Cloudflare Tunnel → VIP keepalived .250 → Caddy HA → backends.
  • Asistente IA Vera / OpenClaw (CT100 clawdbot, Telegram @Veraclawd_bot; GPT-5.5 + RAG). (El agente Hermes/LXC 101 sí se desplegó y se destruyó el 2026-07-05 — ver ADR-0007 F6 más abajo.)

Flujo HTTP externo

graph LR
    U[Usuario] -->|HTTPS| CF[Cloudflare
*.monxas.casa] CF -->|CF Access SSO| CFD[cloudflared
LXC 123] CFD -->|:443| VIP{{VIP .250
keepalived}} VIP -.MASTER.-> C1[Caddy LXC 270
pmx-50 .247] VIP -.BACKUP.-> C2[Caddy LXC 271
pmx-51 .248] C1 -->|proxy_pass| H[VM 208
Docker hub] C2 -->|proxy_pass| H H --> S[~75 servicios
Grafana, Sonarr, Immich...] style VIP fill:#ff6b6b,color:#fff style C1 fill:#51cf66 style C2 fill:#51cf66 style H fill:#ffd43b

Cómo navegar

  • Architecture


    Topología del cluster, ADR-0007, mapa de red, decisiones de diseño.

    Ver

  • Runbooks


    Procedimientos operativos: failover Caddy, rollback ZFS, restore PBS, rotación SOPS, kernel upgrades Proxmox.

    Ver

  • Guides


    Tareas comunes: añadir un servicio nuevo, rotar secretos, crear cliente OIDC en PocketID, ejecutar playbooks Ansible desde la Mac.

    Ver

  • Reference


    Inventario completo de VMs/LXCs, mapa de IPs, tabla de puertos expuestos.

    Ver

Estado del plan ADR-0007

Cierre 2026-05-20: 8/8 fases con piezas en producción. Detalles por fase en ADR-0007.

Fase Descripción Estado
F1 Backups baseline (PBS + ZFS snapshots pre-cohesion-20260519) ✅ Done
F2 GitOps Ansible — push-from-Mac + ansible-pull cron 15min ✅ Done
F3 SOPS + age secrets — ~50 secretos en repo, 5 keypairs activos ✅ Done
F4 Caddy HA LXC 270/271 + keepalived VIP .250 + F4.f full-routing ✅ Done (cutover 2026-05-20; Caddy movido a LXC 270/271, container VM208 eliminado)
F5 PocketID OIDC — 11 clientes activos ✅ Done (Karakeep, Grafana, Paperless login E2E; Vault/Immich/ABS UI pendiente)
F6 Hermes MCPs (Prometheus, Proxmox, PBS, HA Supervisor, RAG) ⚠️ Desplegado (LXC 101 hermesbot) y luego destruido 2026-07-05 (estado archivado en NAS); OpenClaw/Vera en CT100 es el agente vivo hoy — proyecto distinto
F7 ha-ml v2 — Pi-hole + Zeek features 🟡 Code deployed, esperando 14d data accumulation
F8 MkDocs Material docs portal (este sitio) ✅ Done

Cobertura Ansible

16 roles en ansible/roles/ (verificado 2026-08-01, antes se documentaban solo 10): baseline, proxmox_node, observability_collector, promtail, nut, caddy_lxc, caddy_managed_config, hermes_agent (host ya no existe, no-op), docker_host_env, hermes_mcp_env (no-op), morning_report_env, remote_pulse_server, wp_pulse_host, asus_exporter, unifi_clients_exporter, tailscaled_rfrobredo (sin referencias activas en playbook.yml, TODO confirmar si es huérfano). La cifra "~70% del state operacional" no se pudo re-verificar — sin fórmula documentada de qué cuenta como el 100%. Ver Running Ansible.

Source of truth

Todo bajo monxas/homelab-infra. Cualquier discrepancia entre este portal y el repo: el repo gana.