Files
traefik/dynamic/README.md

84 lines
2.3 KiB
Markdown

# Configuración Dinámica de Traefik
Este directorio contiene configuración que Traefik recarga automáticamente sin reiniciar el contenedor.
## Archivos
- **config.yml**: Configuración dinámica completa (serversTransports, middlewares, routers, servicios)
**Importante:** Con `directory:` en el proveedor file, se debe usar un único archivo consolidado con la estructura `http:` como raíz.
## ServersTransports
El archivo incluye el transport `insecure` para servicios con certificados autofirmados (como Portainer):
```yaml
http:
serversTransports:
insecure:
insecureSkipVerify: true
```
**Uso en labels**:
```yaml
- "traefik.http.services.mi-servicio.loadbalancer.serversTransport=insecure@file"
```
## Autenticación Básica
El middleware `auth-basic` está **habilitado por defecto** para proteger el dashboard de Traefik.
### Configurar tu contraseña
1. Genera hash bcrypt:
```bash
docker run --rm httpd:alpine htpasswd -nbB admin tu_password
```
2. Copia el hash completo (después de `admin:`)
3. Edita `config.yml` (sección http > middlewares > auth-basic):
```yaml
auth-basic:
basicAuth:
users:
- "admin:$2y$05$HASH_GENERADO_AQUI"
```
4. Guarda → recarga automática en ~10 segundos
## Uso
### Aplicar middleware a un servicio
En el `docker-compose.yaml` de tu servicio:
```yaml
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:
```yaml
- "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 `config.yml` (secciones routers y services) para configurar rutas sin labels Docker
- **Middlewares avanzados:** Consulta la wiki: https://git.ictiberia.com/groales/traefik/wiki/Middlewares-Seguridad