El problema
Tenía servicios domésticos que necesitaban estabilidad (Home Assistant, DNS, almacenamiento) y un banco de pruebas para aprender. Con un solo servidor, cualquier cambio arriesgaba los servicios críticos. La solución típica — tener dos máquinas separadas sin coordinación — multiplicaba el mantenimiento.
Necesitaba dos nodos con recursos suficientes, un hipervisor que los unificara, y automatización que me permitiera tocar sin miedo.
La decisión — por qué Proxmox
Elegí Proxmox VE por tres razones:
- KVM + LXC en el mismo hipervisor — algunas cargas necesitan VMs completas (Home Assistant, NAS), otras funcionan mejor como contenedores (Pi-hole, Mealie). Proxmox gestiona ambas sin tener que instalar nada extra.
- ZFS nativo — instantáneas, compresión, y checksums sin configurar un storage externo.
- API REST — quería que un agente IA gestionara la infraestructura. Proxmox expone todo vía API, desde arrancar VMs hasta hacer snapshots.
El stack elegido: dos servidores físicos con Proxmox, almacenamiento compartido vía NFS al NAS Synology, y acceso público controlado con DuckDNS + Let’s Encrypt.
La contrapartida que acepté: no hay cluster entre nodos. Cada uno funciona como cluster de un solo nodo. Los servicios críticos están aislados de los operativos por diseño, no por alta disponibilidad.
Implementación
Los nodos
| Nodo | CPU | RAM | Rol |
|---|---|---|---|
| NODO-A | Ryzen 5 2600 (6 cores) | 64 GB | Servicios críticos: HA, NAS, Nginx Proxy Manager, Frigate |
| NODO-B | i5-7400 (4 cores) | 33 GB | Servicios operativos: DNS, dashboard, monitorización, agente IA |
NODO-A tiene exposición pública controlada vía DuckDNS. NODO-B solo es accesible desde LAN.
Servicios desplegados
| Servicio | Nodo | Tipo | RAM | Función |
|---|---|---|---|---|
| Home Assistant | NODO-A | VM | 15 GB | Domótica: luces, persianas, sensores |
| NAS virtual | NODO-A | VM | 16 GB | Almacenamiento Linux nativo |
| Nginx Proxy Manager | NODO-A | LXC | 2 GB | Reverse proxy + SSL público |
| Frigate | NODO-A | VM | 4 GB | Detección de personas con GPU passthrough (RTX 1650 Super, 2 cámaras Reolink) |
| Palomino (agente IA) | NODO-B | VM | 10 GB | Operador digital de infraestructura |
| Pi-hole + AdGuard | NODO-B | LXC | 1.5 GB | DNS filtering (doble instancia) |
| Homarr | NODO-B | LXC | 8 GB | Dashboard de servicios |
| Pi-Alert | NODO-B | LXC | 512 MB | Monitorización de red |
| Mealie | NODO-B | LXC | 2 GB | Gestor de recetas |
Total: 6 VMs QEMU + 7 contenedores LXC.
Capa de IA — Palomino
Palomino no es un chatbot. Es un operador digital que corre en una VM dentro del homelab y opera la infraestructura real:
- Arranca, para, y hace snapshots de VMs y contenedores vía API REST de Proxmox
- Monitoriza estado de nodos (RAM, CPU, disco) en tiempo real
- Diagnostica problemas revisando logs y estado de servicios
- Procesa documentos grandes con subagentes en paralelo — el admin guide de Proxmox (700 páginas) se sintetizó en minutos
- Mantiene una skill portable con el conocimiento sintetizado, aplicable a cualquier cluster PVE 9.2
Motor IA:
- Principal: MiniMax-M2.7 (contexto 205k tokens)
- Local: Ollama en 10.0.0.155 con RTX 2070 Super (13 modelos: llama3.1:8b, qwen3.5:27b, qwen3.5:4b)
- Embeddings: nvidia/llama-nemotron-embed-vl-1b-v2 en LanceDB
Skills instaladas (12):
proxmox-92-admin-handbook— skill portable a cualquier cluster PVE 9.2.x con API endpoints, CLI commands, gotchas y cookbook- 11 skills específicas del cluster NODO-B (VM manager, LXC, cluster, storage, backup, firewall, network, HA, monitor, console, users)
Base de conocimiento:
- 9 chunks + índice, 801 líneas de síntesis en español del admin guide oficial de 700 páginas
- Cubre: QEMU/KVM, LXC, SDN, Firewall, Cluster/Storage/HA, Ceph, Backup, CLI reference
Subagentes en paralelo:
- Para tareas grandes, spawnea hasta 5 subagentes simultáneos
- Cada subagente tiene contexto limpio
- El agente principal recibe resúmenes, no el documento crudo
La detección de Frigate usa una RTX 1650 Super distinta, en passthrough directo a su VM.
Métricas (junio 2026)
| Métrica | Valor |
|---|---|
| VMs QEMU | 6 (3 en NODO-B, 3 en NODO-A) |
| CTs LXC | 7 (6 en NODO-B, 1 en NODO-A) |
| RAM total | ~100 GB (33 + 67) |
| Uptime típico | 17 días NODO-B, 5 días NODO-A (reinicios por mantenimiento) |
| Servicios críticos | todos en NODO-A (HA, NAS, NPM) |
| Conocimiento IA sintetizado | 9 chunks, 801 líneas en español del admin guide de 700 págs |
Inventario de servicios (junio 2026)
| Nodo | IP | Rol | VMs/CTs |
|---|---|---|---|
| NODO-A | 10.0.0.50 | Principal | homeassistant VM, nas VM, nginxproxymanager CT |
| NODO-B | 10.0.0.2 | Secundario | palomino-dopado VM, cerebro VM, pihole CT x2, adguard CT, homarr CT, mealie CT, pialert CT |
Servicios detectados en la red:
- 10.0.0.1 — Router principal (53/80/443)
- 10.0.0.3 — Home Assistant (80/443/8123)
- 10.0.0.5 — Pi-hole (53/80/443)
- 10.0.0.10 — NAS VM (22/80/443)
- 10.0.0.13 — Homarr dashboard (3000)
- 10.0.0.63 — Servidor Palomino / Hermes (22/8000/8080)
- 10.0.0.110 — Nginx Proxy Manager (80/443/3000)
- 10.0.0.118 — Mealie (9000)
- 10.0.0.125 — PiAlert (80)
- 10.0.0.155 — PC Christian (PikaOS)
- 10.0.0.184 — AdGuard Home (53/80)
Qué cambiaría
ACME + reverse proxy al principio. El HTTP-01 challenge de Let’s Encrypt falla cuando el puerto 80 lo sirve Nginx Proxy Manager, no el ACME interno de Proxmox. Con DNS-01 challenge y DuckDNS, todo funciona sin depender del routing del puerto 80. Si volviera a empezar, configuraría DNS-01 desde el día uno.
Tokens con permisos completos desde el inicio. Un token de solo lectura no arranca una VM. Para que Palomino opere la infraestructura necesita Sys.Audit, VM.Audit, Datastore.Audit, VM.PowerMgmt y Sys.Modify. Perdí tiempo depurando por qué la API devolvía 403 en operaciones que parecía que deberían funcionar.
Documentación viva en lugar de estática. La skill proxmox-92-admin-handbook se mantiene actualizada contra el admin guide oficial. Es un activo que evoluciona con la herramienta, no un documento que se escribe y se olvida. Esto debería haber sido así desde el principio para todos los servicios, no solo para Proxmox.
Aprendizaje de hardware
El homelab no es solo servidores y contenedores. Detrás de la infraestructura hay una capa de hardware que he aprendido a tocar, reparar y modificar:
- Fokoos — reparación completa y conversión a Klipper: la primera impresora llegó rota, sin documentación, y con una placa base que nadie en la comunidad recomendaba. La reparé, le instalé una SKR E3 V3 Mini, configuré Klipper desde cero, y lleva más de un año imprimiendo en producción sin necesitar soporte externo.
- Genius — modificación integral: BLTouch, hotend, extrusor, cama caliente, tensores, electrónica nueva. Cada pieza la he cambiado y calibrado manualmente. La impresora que tengo ahora no se parece en nada a la que compré.
- +20 consolas reparadas y limpiadas: PS4, PS3, portátiles. Lo que empezó como trastear se convirtió en un servicio freelance que me ha dado ingresos recurrentes y soltura con electrónica real.
- De niño ya picaba hardware: curso MoLinux por la diputación, curso de Photoshop, montar PCs, desmontar todo lo que encontraba. Esa curiosidad se canalizó en sistemas más tarde, pero nunca desapareció.
Conexiones con otros proyectos
| Proyecto | Conexión |
|---|---|
| NODO-A | En este nodo corren Home Assistant, NAS, Nginx Proxy Manager y Frigate |
| NODO-B | En este nodo corren Palomino (agente IA), Pi-hole, Homarr, Pi-Alert y Mealie |
| Miniverse | Visualiza el estado de Palomino en tiempo real |
| Panel de Control | Monitoriza todos los servicios del homelab |
| Impresora 3D (Klipper) | Está en la misma red local que ambos servidores |