9

Dashboard seguro para Traefik

Vistas: 1
Dashboard seguro para Traefik

A estas alturas del tutorial ya tienes Traefik funcionando con múltiples servicios, middlewares, y certificados SSL. Pero hay una pieza que hemos dejado pendiente: el Dashboard. El dashboard de Traefik es una interfaz web que te permite ver en tiempo real el estado de tus routers, servicios, middlewares y entrypoints. Es una herramienta realmente útil para monitorizar y depurar tu configuración. Cuando algo no funciona, el dashboard es el primer sitio al que te vas a asomar para ver qué está pasando.

Pero tiene un inconveniente: expone información sensible sobre tu infraestructura. Si alguien accede al dashboard, puede ver exactamente qué servicios tienes, qué dominios usas, cómo están configurados los middlewares, y un montón de información que no debería estar al alcance de cualquiera. Por eso no puedes dejarlo accesible sin protección. En este capítulo te voy a mostrar cómo configurarlo de forma segura, con varias opciones según lo que necesites.

La configuración insegura (la que NO debes usar)

En muchos tutoriales antiguos de Traefik v2 verás esta configuración,

api:
  insecure: true

Y luego exponían el puerto 8080. ¿Qué significa esto? Pues que cualquiera que supiera la IP de tu servidor podía conectarse al puerto 8080 y ver toda tu configuración de Traefik. Sin contraseña, sin protección, sin nada.

Esto es una pésima idea por varios motivos:

  • Expone tu arquitectura: cualquiera puede ver qué servicios corres, qué dominios usas, qué middlewares tienes.
  • Facilita ataques: saber qué versión de Traefik usas y qué servicios tienes es información valiosa para un atacante.
  • No hay logging: sin autenticación no puedes saber quién ha accedido al dashboard.

En Traefik v3, esto está todavía más desaconsejado. La API con insecure: true ya no se recomienda en absoluto.

Nosotros vamos a hacerlo bien.

Habilitar el dashboard

Lo primero es habilitar el dashboard en tu traefik.yml. Esto ya lo hicimos en el capítulo de instalación,

api:
  dashboard: true

Pero esto solo habilita el dashboard internamente. No hemos abierto ningún entrypoint para acceder a él. Es como tener un cuadro de mandos en una sala cerrada: existe, pero no hay puerta para entrar.

Ahora vamos a configurar el acceso de forma segura. Te voy a mostrar varias opciones, de más básica a más segura.

Opción 1: Dashboard con dominio propio y autenticación BasicAuth

Esta es la opción que te recomiendo si es la primera vez que configuras el dashboard. Consiste en crear un router específico para el dashboard con un dominio propio y autenticación BasicAuth. Es fácil de configurar y razonablemente segura.

En tu traefik.yml, asegúrate de tener el dashboard habilitado,

api:
  dashboard: true

Y en tu docker-compose.yml, añade las labels al contenedor de Traefik,

services:
  traefik:
    image: traefik:v3.7
    container_name: traefik
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./traefik.yml:/etc/traefik/traefik.yml:ro
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ./letsencrypt:/letsencrypt
      - ./users.txt:/etc/traefik/users.txt:ro
    labels:
      # Dashboard
      - "traefik.enable=true"
      - "traefik.http.routers.dashboard.rule=Host(`traefik.tudominio.com`)"
      - "traefik.http.routers.dashboard.entrypoints=websecure"
      - "traefik.http.routers.dashboard.tls=true"
      - "traefik.http.routers.dashboard.tls.certresolver=letsencrypt"
      - "traefik.http.routers.dashboard.service=api@internal"
      - "traefik.http.routers.dashboard.middlewares=auth-dashboard"
      # Autenticación con BasicAuth
      - "traefik.http.middlewares.auth-dashboard.basicauth.usersfile=/etc/traefik/users.txt"
    networks:
      - traefik-net

networks:
  traefik-net:
    name: traefik-net

Fíjate en varias cosas importantes aquí,

  • traefik.enable=true: sí, Traefik se autodescubre a sí mismo. Es un meta-ejemplo de auto-descubrimiento.
  • service=api@internal: el servicio del dashboard es interno de Traefik, no un contenedor externo. Es un servicio especial que solo existe dentro de Traefik.
  • middlewares=auth-dashboard: protegemos el acceso con BasicAuth.
  • users.txt: el archivo con los usuarios para BasicAuth. Lo generas con htpasswd como vimos en el capítulo de autenticación.

Crea el archivo users.txt,

htpasswd -nb admin micontraseña > users.txt

Puedes añadir más usuarios si quieres,

htpasswd -nb admin micontraseña > users.txt
htpasswd -nb lorenzo otracontraseña >> users.txt

Ahora, cuando accedas a https://traefik.tudominio.com, te pedirá usuario y contraseña. Una vez autenticado, verás el dashboard.

Variante con varios usuarios

Si tienes un equipo y quieres que varias personas accedan al dashboard, puedes tener múltiples usuarios en el archivo users.txt. Cada uno con su propia contraseña. Esto te permite saber quién ha accedido si revisas los logs.

Opción 2: Dashboard solo desde IP local

Si no quieres tener el dashboard accesible desde internet, ni siquiera con autenticación, puedes limitarlo a tu red local. Esta es la opción más segura de todas, porque el dashboard simplemente no existe fuera de tu red.

En lugar de usar el entrypoint websecure (público), creas un entrypoint específico para el dashboard que solo escuche en una IP local. En tu traefik.yml,

entryPoints:
  web:
    address: ":80"
    http:
      redirections:
        entryPoint:
          to: websecure
          scheme: https
  websecure:
    address: ":443"
  dashboard:
    address: "192.168.1.100:8080"

Fíjate en la IP 192.168.1.100. Esa tiene que ser la IP de tu servidor en tu red local. Si usas DHCP y la IP cambia, esto no te va a funcionar. En ese caso, pon una IP fija a tu servidor o usa un nombre de host local.

Luego configuras el router del dashboard para que use ese entrypoint,

labels:
  - "traefik.enable=true"
  - "traefik.http.routers.dashboard.rule=HostRegex(`{host:.+}`)"
  - "traefik.http.routers.dashboard.entrypoints=dashboard"
  - "traefik.http.routers.dashboard.service=api@internal"

De esta forma, el dashboard solo escucha en 192.168.1.100:8080. Desde internet, ese puerto no está abierto. Desde tu red local, accedes poniendo http://192.168.1.100:8080 en el navegador.

La ventaja de esta opción es que ni siquiera necesitas autenticación, porque el dashboard no es accesible desde fuera. La desventaja es que no puedes consultarlo cuando estás fuera de casa.

Opción 3: Dashboard con IPWhiteList

Otra opción es mantener el dashboard accesible desde internet pero restringido a tus IPs. Esto es útil si tienes una IP fija, o si accedes siempre desde el mismo sitio (por ejemplo, desde la oficina).

labels:
  - "traefik.enable=true"
  - "traefik.http.routers.dashboard.rule=Host(`traefik.tudominio.com`)"
  - "traefik.http.routers.dashboard.entrypoints=websecure"
  - "traefik.http.routers.dashboard.tls=true"
  - "traefik.http.routers.dashboard.tls.certresolver=letsencrypt"
  - "traefik.http.routers.dashboard.service=api@internal"
  - "traefik.http.routers.dashboard.middlewares=solo-mis-ips"
  - "traefik.http.middlewares.solo-mis-ips.ipwhitelist.sourcerange=TU_IP_PUBLICA/32"

Pero, ¿qué pasa si tu IP cambia? Si tienes una IP dinámica en casa, esto no te sirve. Una alternativa es usar una VPN. Te conectas a tu VPN, obtienes una IP de tu red privada, y añades ese rango a la whitelist. Así puedes acceder desde cualquier sitio.

  - "traefik.http.middlewares.solo-mis-ips.ipwhitelist.sourcerange=10.8.0.0/24, TU_IP_FIJA/32"

Opción 4: VPN + dominio propio

Esta es mi opción favorita. Combina una VPN (WireGuard, OpenVPN) con el dashboard accesible solo a través de ella.

Configuras el dashboard con su dominio y autenticación, pero el entrypoint no es websecure (público), sino uno en la IP de la VPN.

entryPoints:
  web:
    address: ":80"
  websecure:
    address: ":443"
  dashboard:
    address: "10.8.0.1:8080"

Y el router,

labels:
  - "traefik.enable=true"
  - "traefik.http.routers.dashboard.rule=HostRegex(`{host:.+}`)"
  - "traefik.http.routers.dashboard.entrypoints=dashboard"
  - "traefik.http.routers.dashboard.service=api@internal"
  - "traefik.http.routers.dashboard.middlewares=auth-dashboard"
  - "traefik.http.middlewares.auth-dashboard.basicauth.usersfile=/etc/traefik/users.txt"

Así, cuando estás fuera de casa, te conectas a tu VPN, accedes a http://10.8.0.1:8080 y tienes el dashboard. Sin exponerlo a internet. Es lo más seguro.

Opción 5: Combinación completa (la más segura)

Puedes combinar todas las opciones: IPWhiteList + BasicAuth + dominio propio + TLS. Así, aunque alguien tenga tu IP, todavía necesita la contraseña. Y aunque alguien tenga la contraseña, solo puede acceder desde tu IP.

labels:
  - "traefik.enable=true"
  - "traefik.http.routers.dashboard.rule=Host(`traefik.tudominio.com`)"
  - "traefik.http.routers.dashboard.entrypoints=websecure"
  - "traefik.http.routers.dashboard.tls=true"
  - "traefik.http.routers.dashboard.tls.certresolver=letsencrypt"
  - "traefik.http.routers.dashboard.service=api@internal"
  - "traefik.http.routers.dashboard.middlewares=solo-mis-ips,auth-dashboard"
  - "traefik.http.middlewares.solo-mis-ips.ipwhitelist.sourcerange=TU_IP/32"
  - "traefik.http.middlewares.auth-dashboard.basicauth.usersfile=/etc/traefik/users.txt"

Fíjate en el orden de los middlewares: primero se comprueba la IP (solo-mis-ips), y luego la autenticación (auth-dashboard). Así ahorras trabajo innecesario al servidor de autenticación. Si la IP no está en la lista, Traefik rechaza la petición antes siquiera de pedir la contraseña.

Acceder al dashboard

Una vez configurado, accede a https://traefik.tudominio.com (o la IP que hayas configurado). Verás una interfaz dividida en secciones,

El dashboard de Traefik te muestra:

  • HTTP: routers, servicios, middlewares, entrypoints. Aquí ves todos tus servicios HTTP, con sus reglas, estados y configuraciones.
  • TCP: routers y servicios TCP. Si tienes servicios TCP como bases de datos, aquí los verás.
  • UDP: routers y servicios UDP. Para servicios como DNS o gaming.

Cada sección te muestra el nombre del router, la regla, el entrypoint, el estado (UP, DOWN), y si está usando TLS. Es una vista general de toda tu configuración en tiempo real.

Si algo no funciona, aquí lo verás. Por ejemplo, si un router aparece como «down», sabes que hay un problema con ese servicio. Si un servicio no aparece, significa que las labels no están bien configuradas.

La API de Traefik

Además del dashboard, Traefik expone una API REST completa en la misma URL base. Esto es muy útil porque puedes consultar el estado de tu configuración desde scripts o sistemas de monitorización.

Por ejemplo, para obtener la lista de routers HTTP,

curl -u admin:contraseña https://traefik.tudominio.com/api/http/routers

Te devolverá un JSON con todos los routers configurados, sus reglas, entrypoints, estado, y más.

Endpoints de la API

Estos son los endpoints más útiles que te van a hacer falta en el día a día:

EndpointDescripción
/api/http/routersLista completa de routers HTTP
/api/http/servicesLista de servicios HTTP con sus servidores y health checks
/api/http/middlewaresLista de middlewares HTTP configurados
/api/http/rulesLista de reglas de enrutamiento
/api/entrypointsLista de entrypoints con su estado
/api/overviewResumen general con contadores
/api/versionVersión de Traefik
/api/rawdataDatos en bruto de toda la configuración

Scripts útiles con la API

Puedes hacer scripts muy útiles con la API. Te voy a dejar algunos ejemplos que uso yo en mi día a día.

Comprobar que todos los servicios funcionan:

#!/bin/bash
# check-traefik.sh - Comprueba que todos los servicios están UP

API="https://traefik.tudominio.com"
USER="admin"
PASS="micontraseña"

ROUTERS=$(curl -s -u "$USER:$PASS" "$API/api/http/routers" | jq -r '.[] | select(.status != "enabled") | .name')

if [ -z "$ROUTERS" ]; then
    echo "✅ Todos los servicios funcionando"
    exit 0
else
    echo "❌ Servicios con problemas:"
    echo "$ROUTERS"
    exit 1
fi

Obtener estadísticas rápidas:

curl -s -u admin:contraseña https://traefik.tudominio.com/api/overview | jq

Esto te devuelve algo como,

{
  "http": { "routers": 12, "services": 12, "middlewares": 8 },
  "tcp": { "routers": 2, "services": 2 },
  "udp": { "routers": 1, "services": 1 }
}

En una sola llamada sabes cuántos servicios tienes de cada tipo, cuántos routers, cuántos middlewares… Muy útil para tener una visión general.

Listar todos los servicios con su estado:

#!/bin/bash
# list-services.sh - Lista servicios HTTP con su estado

API="https://traefik.tudominio.com"
curl -s -u "$USER:$PASS" "$API/api/http/services" | \
  jq -r '.[] | "\(.name) → \(.status) → \(.loadBalancer.servers | length) servidor(es)"'

Esto te devuelve algo como,

nextcloud@docker → enabled → 1 servidor(es)
wordpress@docker → enabled → 1 servidor(es)
miapp@docker → enabled → 3 servidor(es)

Alertas por cambio de estado:

Puedes combinar la API con un sistema de alertas. Por ejemplo, un script que se ejecuta cada 5 minutos y te envía un mensaje a Telegram si detecta un servicio caído.

#!/bin/bash
# alert-traefik.sh - Alerta si hay servicios caídos

TOKEN="TU_TOKEN_TELEGRAM"
CHAT_ID="TU_CHAT_ID"

CAIDOS=$(curl -s -u "$USER:$PASS" "$API/api/http/routers" | \
  jq -r '.[] | select(.status != "enabled") | .name')

if [ -n "$CAIDOS" ]; then
  curl -s -X POST "https://api.telegram.org/bot$TOKEN/sendMessage" \
    -d "chat_id=$CHAT_ID" \
    -d "text=🚨 Servicios caídos en Traefik:%0A$CAIDOS"
fi

Respuestas JSON de ejemplo

Para que te hagas una idea de lo que devuelve la API, aquí tienes un ejemplo de la respuesta de /api/http/routers:

[
  {
    "name": "nextcloud@docker",
    "rule": "Host(`cloud.dominio.com`)",
    "entryPoints": ["websecure"],
    "service": "nextcloud@docker",
    "status": "enabled",
    "tls": {
      "certResolver": "letsencrypt"
    },
    "middlewares": ["rate-limit-50@file"]
  },
  {
    "name": "wordpress@docker",
    "rule": "Host(`blog.dominio.com`)",
    "entryPoints": ["websecure"],
    "service": "wordpress@docker",
    "status": "enabled",
    "tls": {
      "certResolver": "letsencrypt"
    }
  }
]

Como ves, cada router te dice su regla, entrypoint, servicio asociado, estado, TLS y middlewares. Es información muy valiosa para depurar.

Integración con sistemas de monitorización

Puedes usar la API de Traefik para integrar con sistemas de monitorización,

  • Nagios/Icinga: script que comprueba que todos los routers están «enabled». Si alguno no lo está, lanza una alerta.
  • Home Assistant: sensor que muestra el número de servicios activos, el estado de cada uno, y te permite verlo desde el móvil.
  • Telegram bot: script que envía un resumen diario del estado de los servicios. O una alerta cuando algo falla.
  • Grafana: puedes crear un dashboard de Grafana que lea los datos de la API de Traefik (aunque para métricas históricas es mejor Prometheus, como vimos en el capítulo de monitoring).

La API en modo «debug»

Traefik tiene un endpoint de debug que te da información detallada del estado interno. No lo actives en producción, pero para desarrollo es muy útil.

api:
  dashboard: true
  debug: true

Con debug: true, tendrás acceso a endpoints adicionales como /api/rawdata que te muestra TODA la configuración en bruto. Es útil para depurar problemas, pero no lo dejes activado en producción porque expone mucha información.

Configuración con File provider

También puedes configurar el dashboard usando el File provider en lugar de labels. Esto te permite tener la configuración centralizada.

En tu dynamic/dashboard.yml,

http:
  routers:
    dashboard:
      rule: Host(`traefik.tudominio.com`)
      entryPoints:
        - websecure
      service: api@internal
      tls:
        certResolver: letsencrypt
      middlewares:
        - auth-dashboard@file

  middlewares:
    auth-dashboard:
      basicAuth:
        usersFile: /etc/traefik/users.txt

Diagnóstico del dashboard

Si el dashboard no funciona, estos son los pasos que te recomiendo para diagnosticarlo,

1. El dashboard no carga

curl -v https://traefik.tudominio.com

Si recibes un error de conexión, el router no está configurado correctamente. Revisa las labels. Un error típico es tener mal escrito el nombre del router o del servicio.

docker logs traefik | grep -i dashboard

Esto te mostrará si Traefik está intentando configurar el router del dashboard y si encuentra algún error.

2. Error 404

Si recibes un 404, el router está funcionando pero el servicio api@internal no está accesible. Revisa que api.dashboard: true está en tu traefik.yml. Sin esta línea, el dashboard no existe aunque el router esté bien configurado.

3. Error 401 (no autorizado)

El BasicAuth está funcionando. Te está pidiendo credenciales. Si no las tienes, revisa el archivo users.txt. Un error común es que el archivo no esté montado correctamente en el contenedor. Puedes comprobarlo con,

docker exec traefik cat /etc/traefik/users.txt

4. Error 503 (servicio no disponible)

El router no encuentra el servicio. Revisa que has puesto service=api@internal exactamente así. Un error común es poner api@internal sin el arroba, o con el arroba mal escrito.

5. Certificado SSL no válido

Si el dashboard carga pero el certificado no es válido, revisa que el certresolver está bien configurado y que Let’s Encrypt ha podido validar el dominio. Puedes comprobarlo con,

docker logs traefik | grep -i acme

Si ves errores de rate limit, espera una hora y vuelve a intentarlo. Let’s Encrypt limita las peticiones por dominio y hora, así que no hagas pruebas demasiado rápido o te bloquearán temporalmente.

6. Error de redirección infinita

Si tienes la redirección HTTP a HTTPS y también tienes un middleware que redirige, puedes crear un bucle. Revisa que no tienes redirecciones redundantes. El navegador te mostrará un error de «demasiadas redirecciones».

7. El dashboard se ve pero no carga los datos

Si ves la interfaz del dashboard pero no aparecen los routers o servicios, puede ser que el provider no esté configurado correctamente. Revisa que providers.docker.endpoint apunta al socket correcto y que el contenedor de Traefik tiene acceso a él.

8. Error de conexión al socket de Docker

Si ves errores como dial unix /var/run/docker.sock: connect: permission denied, significa que el usuario de Traefik no tiene permisos para acceder al socket. Revisa que el socket está montado correctamente y con los permisos adecuados en el docker-compose.yml.

Dashboard con diferentes providers

El dashboard no solo funciona con Docker. Si usas Kubernetes, Consul, o cualquier otro provider, el dashboard te muestra lo mismo: los routers, servicios y middlewares que estén configurados, independientemente del provider que uses.

Esto es útil porque te da una visión unificada de toda tu configuración, venga de donde venga. Puedes tener routers definidos en Docker, middlewares en archivos, y servicios en Consul, y el dashboard te los muestra todos juntos.

Configuración de logs específicos para el dashboard

Si quieres tener un registro de quién accede al dashboard y cuándo, puedes configurar un log específico. En tu traefik.yml,

accessLog:
  filePath: /var/log/traefik/access.log
  filters:
    statuscodes:
      - "200"
      - "401"
      - "403"
      - "404"
  fields:
    defaultMode: keep
    names:
      ClientHost: keep
      RequestHost: keep
      RequestPath: keep
      ResponseStatus: keep

Filtrando solo los códigos 200, 401, 403 y 404, puedes ver rápidamente los accesos exitosos y los fallidos al dashboard.

Errores comunes al configurar el dashboard

Además de los problemas de diagnóstico que ya hemos visto, hay algunos errores típicos que merece la pena mencionar por separado:

  • Olvidar montar el archivo users.txt: configuras el BasicAuth pero no montas el archivo en el contenedor. El dashboard nunca te pedirá la contraseña porque Traefik no encuentra el archivo de usuarios.
  • Poner el dashboard en la raíz del dominio principal: tener traefik.dominio.com y dominio.com compartiendo el mismo entrypoint puede causar conflictos si no tienes cuidado con las reglas.
  • Usar la misma contraseña que otros servicios: si alguien accede al dashboard, tiene las llaves de todo. No uses contraseñas reutilizadas.
  • No revisar los logs después de configurarlo: después de añadir las labels del dashboard, docker logs traefik te dirá si hay algún error. No te saltes este paso.
  • Olvidar que el dashboard necesita su propio router: no basta con poner api.dashboard: true. Necesitas un router que enrute al servicio api@internal.

Resumen rápido de configuración

Para los que ya tienen experiencia y solo quieren la configuración de memoria, aquí tienes el resumen rápido:

  1. En traefik.yml: api.dashboard: true
  2. En docker-compose.yml: labels con router → service=api@internal, TLS, y middleware de autenticación
  3. Archivo users.txt con htpasswd -nb admin contraseña
  4. Montar users.txt en el contenedor de Traefik
  5. Acceder a https://traefik.tudominio.com

Diferencias entre v2 y v3 para el dashboard

Si vienes de Traefik v2, te interesa saber que en v3 el dashboard ha cambiado:

  • Ya no existe api.insecure: true como opción recomendada. En v2 era común usarlo para pruebas; en v3 está desaconsejado.
  • El dashboard es más rápido: la interfaz carga más rápido y consume menos recursos.
  • Mejor organización: los routers, servicios y middlewares están mejor categorizados.
  • Información más detallada: ahora muestra más datos sobre cada componente, como los middlewares asociados a cada router.

Buenas prácticas

Te dejo las recomendaciones que he ido aprendiendo con los años usando Traefik, algunas a base de tropezar con la misma piedra más de una vez.

  1. Nunca uses api.insecure: true. Esto es una invitación a que cualquiera acceda a tu configuración. No hay excusa para usarlo, ni siquiera en desarrollo. Si necesitas probar algo, hazlo en localhost.
  2. Protege el dashboard con autenticación fuerte. Como mínimo, BasicAuth. Si puedes, combinado con IPWhiteList o solo accesible por VPN. La seguridad por capas siempre es mejor.
  3. Usa un dominio específico para el dashboard. No lo pongas en la raíz de tu dominio principal ni en un subdirectorio. Algo como traefik.tudominio.com o admin.tudominio.com es lo habitual.
  4. No expongas el dashboard en un entrypoint público sin protección. Si no puedes ponerle autenticación, al menos restríngelo por IP. O mejor, solo accesible por VPN.
  5. Cambia la contraseña regularmente. Y no uses la misma que para otros servicios. Si alguien accede a tu dashboard, sabe exactamente qué servicios tienes, qué dominios usas, y cómo está configurado todo.
  6. Revisa los logs de acceso al dashboard. Si ves intentos de acceso no autorizados, investiga de dónde vienen. Puede ser un bot escaneando o alguien con malas intenciones.
  7. Usa HTTPS para el dashboard. Aunque solo sea accesible desde tu red local, no está de más tenerlo cifrado. Con Let’s Encrypt es fácil y gratis.
  8. No actives debug: true en producción. Solo para desarrollo o diagnóstico puntual. El modo debug expone información adicional que no debería estar disponible.
  9. Combina métodos de seguridad. No te conformes con uno solo. Cuantas más capas pongas, más difícil será que alguien acceda sin permiso. La combinación de IPWhiteList + BasicAuth + HTTPS es difícil de vulnerar.
  10. Haz copia del archivo users.txt. Si pierdes ese archivo y has puesto autenticación en el dashboard, te quedarás sin poder acceder. Guárdalo en un lugar seguro.

Conclusión

El dashboard de Traefik es una herramienta fantástica para tener visibilidad de tu infraestructura. Te permite ver de un vistazo qué servicios están funcionando, qué reglas tienen, y diagnosticar problemas rápidamente. Sin tener que revisar archivos de configuración uno por uno.

Pero como toda herramienta de administración, debe estar bien protegida. Con las opciones que has visto aquí no tienes excusa para dejarlo abierto. Desde la más básica (dominio + BasicAuth) hasta la más segura (VPN + autenticación + IPWhiteList), tienes opciones para todos los casos y niveles de paranoia.

Además, la API REST de Traefik te permite ir más allá del dashboard: puedes hacer scripts de monitorización, integrar con sistemas de alertas, o crear tus propias herramientas de administración. Es una puerta abierta a la automatización de tu infraestructura.

Recuerda: el dashboard es para ti, no para los bots de internet. Protégelo como se merece.


Más información

Deja una respuesta