Traefik dashboard

New proxy configurations do not expose the Traefik dashboard. The upgrade removes the legacy dashboard router from saved configurations; restart the proxy to apply that change. Create a dynamic router to access the dashboard through HTTPS and protect it with basic authentication.

Use a dedicated dashboard hostname

Do not route the Traefik dashboard at /api on the same hostname as the Coolify dashboard. Traefik's dashboard uses /api, which conflicts with Coolify's API routes. Use a separate hostname such as traefik.example.com.

Create dashboard credentials

Generate a bcrypt credential with htpasswd:

htpasswd -nbB <username> '<password>'

Copy the complete <username>:<hash> output. Dynamic YAML does not require Docker Compose dollar-sign escaping.

Enable the dashboard API

In the proxy configuration, enable the dashboard API in secure mode with --api.dashboard=true. Save the validated configuration and restart the proxy. Keep insecure mode disabled.

Edit the main configuration in Coolify

Coolify does not sync edits to /data/coolify/proxy/docker-compose.yml back into the UI once a proxy configuration is saved in Coolify. Make changes under Servers > your server > Proxy > Configuration and save them there. Starting or restarting the proxy through Coolify writes its saved configuration to disk and can overwrite disk-only edits.

Add the dashboard route

Open Servers > your server > Proxy > Dynamic Configurations, select Add, and create traefik-dashboard.yaml:

http:
  middlewares:
    dashboard-auth:
      basicAuth:
        users:
          - '<username>:<bcrypt-hash>'
    dashboard-https-redirect:
      redirectScheme:
        scheme: https

  routers:
    dashboard-http:
      rule: 'Host(`traefik.example.com`)'
      entryPoints:
        - http
      middlewares:
        - dashboard-https-redirect
      service: api@internal

    dashboard-https:
      rule: 'Host(`traefik.example.com`) && (PathPrefix(`/api`) || PathPrefix(`/dashboard`))'
      entryPoints:
        - https
      middlewares:
        - dashboard-auth
      service: api@internal
      tls:
        certResolver: letsencrypt

Replace the hostname and credential, then save the file. Point the hostname's DNS record to this server.

Open https://traefik.example.com/dashboard/ and sign in with the configured credential.

Do not use insecure mode on a public server

Setting --api.insecure=true exposes the dashboard directly on Traefik's API port without authentication. If your proxy configuration publishes port 8080, enabling insecure mode can expose the dashboard through the server firewall.

Use the authenticated HTTPS route above instead. If you temporarily enable insecure mode for isolated debugging, restrict port 8080 at the firewall and remove --api.insecure=true immediately afterward.

Troubleshooting

On this page