Servidor Doméstico Hardened (Docker · Caddy · WireGuard · Fail2Ban)

Homelab productivo con reverse proxy TLS, jails personalizadas, VPN y automatizaciones de watchdog/alertas.

Reverse proxy con TLS automático
Acceso seguro por VPN
Alertas y watchdogs con msmtp
DebianDockerCaddyFail2BanWireGuardJellyfinMinIO

🧭 Contexto

El objetivo de este proyecto fue convertir un entorno doméstico en una plataforma productiva de servicios personales y de desarrollo, con un enfoque en seguridad, aislamiento y automatización.

Partiendo de un host Debian con recursos limitados, se construyó un homelab hardened que aloja servicios de streaming, almacenamiento y VPN, asegurando trazabilidad, control y defensa ante ataques externos.


⚙️ Arquitectura y diseño

La infraestructura se basa en una arquitectura mínima por contenedores:

  • Docker Compose orquesta servicios por stack (media, red, seguridad, storage).
  • Red interna aislada con control de tráfico entre servicios.
  • Volúmenes persistentes para configuración y backups.
  • Supervisión mediante systemd, con watchdogs personalizados y healthchecks.
graph TD
  A[Host Debian] --> B[Docker Compose]
  B --> C[Caddy Reverse Proxy]
  B --> D[WireGuard VPN]
  B --> E[Fail2Ban]
  B --> F[Jellyfin Media Server]
  B --> G[MinIO S3]
  E --> C
  E --> D
  C --> F
  F --> G

🔐 Seguridad y endurecimiento

  1. Caddy reverse proxy
    TLS automático, headers seguros, políticas CSP/HSTS.

  2. WireGuard VPN
    Acceso cifrado punto a punto, control de peers y subredes dedicadas.

  3. Fail2Ban
    Jails personalizadas para Caddy y SSH, bans automáticos y métricas centralizadas.

  4. msmtp + systemd watchdogs
    Alertas automáticas por correo ante caídas o reinicios.


📈 Resultados

IndicadorAntesDespués
Gestión TLSManualAutomática (Caddy)
Acceso remotoPuertos abiertosVPN dedicada
Alertas operativasManualesAutomáticas (msmtp)

🧠 Lecciones aprendidas

  • Seguridad doméstica ≠ complejidad. Con herramientas simples se logra un entorno hardened real.
  • Los logs son el mejor IDS: monitorear Fail2Ban y WireGuard da visibilidad inmediata.
  • Docker + systemd permite resiliencia operativa sin depender de servicios externos.

🧠 Rol: Diseño e implementación de infraestructura doméstica segura
🧩 Duración: Continuo (2024–2025)
⚒️ Stack: Debian, Docker, Caddy, Fail2Ban, WireGuard, Jellyfin, MinIO