sergio@pve:~$ cat homelab.md

Caso de estudio · proyecto personal

Así es mi homelab

Mapa de mi infraestructura autoalojada: un host Proxmox, 11 máquinas virtuales/contenedores, y unos 25 servicios corriendo detrás de un único dominio propio. Pulsa una máquina en el inventario para ver sus especificaciones y servicios.

Dominio: sergio-projects.com Actualizado: 12 sept. 2026

01· Arquitectura de acceso

Cómo entra el tráfico desde fuera, y cómo se reparte una vez dentro de la red local.

Cloudflare Tunnel Tailscale VPN resuelve subdominios Internet LXC · AdGuard DNS interno de la LAN LXC · NPM proxy inverso + TLS único punto de entrada HOST PROXMOX VM · TrueNAS ZFS · 3.62 TB, 1 disco sin redundancia (aceptado) VM · cloud-server 16 GB RAM · 6 núcleos Immich · Nextcloud · Portainer Homepage · Mealie · Paperless · Firefly III LXC · media-server Jellyfin + arr-stack GPU passthrough (QuickSync) LXC · monitoring Kuma · Prometheus · Grafana NFS NFS

línea sólida: tráfico de usuario línea punteada: resolución DNS / almacenamiento compartido

Solo 3 puertos abiertos en el router (UDP, exclusivos de un servidor de juego, única excepción del homelab). Todo lo demás entra por Cloudflare Tunnel (Immich, Nextcloud) o Tailscale (el resto); NPM hace de único punto de entrada interno y reparte por subdominio (servicio.sergio-projects.com). TrueNAS comparte almacenamiento por NFS a las dos máquinas que más lo necesitan.

02· Inventario de máquinas

Pulsa el nombre de una máquina para ver sus recursos asignados y sus servicios.

Red / acceso Almacenamiento Apps y nube Multimedia Monitorización Productividad Seguridad Juegos

03· Modelo de acceso

Tres capas, cada una resolviendo un problema distinto de cómo se llega hasta un servicio.

Cloudflare Tunnel

Para las apps que necesitan acceso público, sin abrir ningún puerto en el router.

Tailscale

Para el resto de servicios (paneles de admin, monitorización), solo accesibles desde dispositivos autorizados en la VPN.

Subdominio por servicio

Cada servicio vive en nombre.sergio-projects.com, resuelto por AdGuard y servido por NPM con TLS.

04· Documentación técnica

Las convenciones y prácticas reales usadas para construir y mantener este homelab.

01

Convención de numeración

Proxmox asigna un identificador a cada máquina, elegido a mano y no al azar: un rango de números son LXC (contenedores ligeros, comparten el kernel del host, la mayoría de los servicios), y otro rango son VMs completas (máquina virtual con su propio kernel), reservadas para lo que necesita ese aislamiento extra: almacenamiento y la VM de aplicaciones Docker.

02

Resolución de subdominios

Cada servicio vive en nombre.sergio-projects.com. La petición pasa por dos saltos:

  • AdGuard Home resuelve el subdominio a la IP interna del proxy inverso, nunca a la IP real del servicio.
  • El proxy inverso lee la cabecera Host/SNI de la petición y la reenvía internamente al puerto real correspondiente, aplicando TLS con un certificado comodín.
03

Administración directa por base de datos

El proxy inverso, el DNS interno y el sistema de monitorización se configuran a menudo editando su base de datos SQLite por SSH directamente, en lugar de pasar por su interfaz web: un patrón reutilizado varias veces para cambios rápidos y reproducibles.

04

Copias de seguridad y mantenimiento

Copia de seguridad diaria (modo snapshot, sin downtime) de las 11 máquinas, con una política de retención acotada. Mantenimiento mensual automatizado: actualización de paquetes del sistema operativo, reinicio del host solo si realmente hace falta, comprobación del almacenamiento y de actualizaciones disponibles sin aplicarlas solo, e informe final enviado por notificación push.

05

Monitorización y alertas

Dos capas complementarias: un sistema tipo Uptime Kuma vigila si cada subdominio responde (arriba/abajo); Prometheus + Grafana + Alertmanager vigilan métricas internas (CPU, RAM, disco, swap) de cada máquina. Todo se enruta a un único canal de notificaciones push, con varios niveles de prioridad para que lo urgente no se pierda entre el ruido.

06

Seguridad

Prácticamente cero puertos abiertos en el router (única excepción: unos pocos puertos UDP para un servidor de juego, decisión consciente y acotada). Todo el resto del acceso externo pasa por Cloudflare Tunnel o Tailscale. Las contraseñas se centralizan en un gestor autoalojado.

07

Glosario

LXC
Contenedor Linux ligero; comparte el kernel del host, arranca en segundos.
VM
Máquina virtual completa, con su propio kernel aislado.
ZFS
Sistema de archivos con protección de datos integrada.
Reverse proxy
Servicio que recibe todo el tráfico y lo reparte al backend correcto.
Tailscale
Red privada (VPN) entre dispositivos autorizados, sin abrir puertos.
Cloudflare Tunnel
Túnel saliente que publica un servicio sin exponer el router.