Documentar autenticación básica del dashboard con middleware dinámico

2025-12-01 11:47:08 +01:00
parent 38b362b447
commit f06411bd8e
2 changed files with 48 additions and 5 deletions

@@ -21,13 +21,13 @@ providers:
docker:
exposedByDefault: false
network: proxy
# file:
# directory: /etc/traefik/dynamic
# watch: true
file:
directory: /etc/traefik/dynamic
watch: true
```
Usa `exposedByDefault: false` para controlar qué servicios se publican.
**Nota:** El proveedor `file` está comentado por defecto. Descoméntalo solo si vas a usar configuración dinámica y crea el directorio correspondiente.
**Configuración dinámica habilitada:** El proveedor `file` está activo. Coloca middlewares y configuraciones en `dynamic/middlewares.yml`. Traefik recarga automáticamente los cambios sin reinicio.
## Certificados
```yaml
@@ -42,7 +42,36 @@ certificatesResolvers:
**IMPORTANTE:** Edita directamente en `traefik.yml` con tu email real antes de desplegar. `storage` debe ser persistente para mantener renovaciones.
## Dashboard
Se expone vía labels apuntando a `api@internal`. Protege con dominio + auth básica.
Se expone vía labels en `docker-compose.yaml` apuntando a `api@internal`.
### Autenticación Básica
El dashboard está protegido con el middleware `auth-basic@file`:
```yaml
labels:
- "traefik.http.routers.traefik.middlewares=auth-basic@file"
```
**Configurar contraseña:**
1. Genera hash bcrypt:
```bash
docker run --rm httpd:alpine htpasswd -nbB admin tu_password_segura
```
2. Edita `dynamic/middlewares.yml`:
```yaml
auth-basic:
basicAuth:
users:
- "admin:$2y$05$HASH_COMPLETO_AQUI"
```
3. Guarda → recarga automática (~10s)
**Nota:** El sufijo `@file` indica que el middleware proviene de configuración dinámica.
## Staging vs Producción
Para pruebas masivas:

14
Home.md

@@ -19,9 +19,23 @@ git clone https://git.ictiberia.com/groales/traefik
cd traefik
mkdir -p letsencrypt && echo > letsencrypt/acme.json
# chmod 600 letsencrypt/acme.json (Linux)
# Edita traefik.yml (email ACME) y docker-compose.yaml (dominio dashboard)
# Configura contraseña en dynamic/middlewares.yml (ver sección Dashboard)
docker compose up -d
```
## Dashboard Protegido
El dashboard usa **autenticación básica** mediante `auth-basic@file`.
**Configurar contraseña:**
```bash
docker run --rm httpd:alpine htpasswd -nbB admin tu_password
# Edita dynamic/middlewares.yml línea 35 con el hash generado
```
## Páginas
- [Configuración Avanzada](Configuracion-Avanzada.md)
- [TLS y ACME](TLS-ACME.md)