Adrian RomoAdrian Romo
Todos los textos
Registro de proyecto 1 min de lectura

Notas de Homelab: Ejecutando Servicios Detrás de Traefik

Mi configuración actual de homelab, por qué me cambié de nginx-proxy y qué se rompió en el camino.

Pasé el fin de semana migrando mi proxy inverso de homelab de nginx-proxy a Traefik v3. Esto es lo que terminé teniendo.

La pila

  • Mini PC, Debian 12, Docker Compose
  • Traefik v3 como el único punto de entrada en 80/443
  • Certificados de origen de Cloudflare para servicios públicos
  • Step-CA para certificados internos *.lab
  • ~18 servicios, desde Home Assistant hasta un Postgres autoalojado

Por qué me mudé

nginx-proxy estaba bien hasta que quise middleware por servicio (limitación de tasa, reenvío de autenticación, compresión). Agregarlo a nginx-proxy significa plantillas; Traefik trata el middleware como etiquetas de primera clase.

El patrón de compose en el que me asenté

services:
  paperless:
    image: ghcr.io/paperless-ngx/paperless-ngx
    labels:
      - traefik.enable=true
      - traefik.http.routers.paperless.rule=Host(\`paperless.lab\`)
      - traefik.http.routers.paperless.entrypoints=websecure
      - traefik.http.routers.paperless.tls=true
      - traefik.http.routers.paperless.middlewares=forward-auth@file
      - traefik.http.services.paperless.loadbalancer.server.port=8000
    networks: [edge]
yaml

Cada servicio recibe esas seis etiquetas. Las cadenas de middleware viven en un dynamic.yml compartido.

Lo que falló

  • Los Websockets necesitaban passHostHeader=true explícitamente en el router.
  • Un servicio envió un healthcheck que devolvía 301. Traefik lo marcó como no saludable. Agregué --providers.docker.useBindPortIP=false y sobrescribí el puerto del servicio.
  • El túnel de Cloudflare + Traefik es un arma de doble filo: la terminación doble de TLS funciona, pero quieres insecureSkipVerify desactivado en el salto interno.

Siguiente

Conectar Authentik como el proveedor de reenvío de autenticación para todo lo interno. Eliminar la última configuración de autenticación básica en texto plano.

Continúa

¿A dónde sigues?

Explora más textos técnicos, revisa los casos de estudio o escríbeme directo.