Configuración Dinámica de Traefik
Este directorio contiene configuración que Traefik recarga automáticamente sin reiniciar el contenedor.
Archivos
- middlewares.yml: Middlewares reutilizables (headers seguridad, rate limit, auth, etc.)
- routers.yml: Routers HTTP/HTTPS (ejemplos comentados)
- services.yml: Servicios backend (ejemplos comentados)
Importante: Cada archivo debe tener la estructura http: como raíz cuando se usa directory: en el proveedor file.
Autenticación Básica
El middleware auth-basic está habilitado por defecto para proteger el dashboard de Traefik.
Configurar tu contraseña
- Genera hash bcrypt:
docker run --rm httpd:alpine htpasswd -nbB admin tu_password
-
Copia el hash completo (después de
admin:) -
Edita
middlewares.ymllínea 35:
auth-basic:
basicAuth:
users:
- "admin:$2y$05$HASH_GENERADO_AQUI"
- Guarda → recarga automática en ~10 segundos
Uso
Aplicar middleware a un servicio
En el docker-compose.yaml de tu servicio:
services:
mi-servicio:
labels:
- "traefik.enable=true"
- "traefik.http.routers.mi-servicio.rule=Host(`app.tudominio.com`)"
- "traefik.http.routers.mi-servicio.entrypoints=websecure"
- "traefik.http.routers.mi-servicio.tls.certresolver=letsencrypt"
- "traefik.http.routers.mi-servicio.middlewares=security-headers@file,rate-limit@file"
Nota: El sufijo @file indica que el middleware viene de configuración dinámica.
Cadena de middlewares
Puedes combinar varios:
- "traefik.http.routers.app.middlewares=security-headers@file,rate-limit@file,ip-whitelist@file"
Recarga automática
Traefik detecta cambios en este directorio y recarga sin reiniciar. Espera ~10 segundos tras editar.
Ejemplos adicionales
- Routers y Servicios: Ver ejemplos comentados en
routers.ymlpara configurar rutas sin labels Docker - Middlewares avanzados: Consulta la wiki: https://git.ictiberia.com/groales/traefik/wiki/Middlewares-Seguridad