# Traefik Dashboard 404 Error

**URL:** <https://community.traefik.io/t/traefik-dashboard-404-error/21273>\
**Category:** Traefik v2\
**Tags:** dashboard-api, docker\
**Created:** [January 29, 2024, 11:37pm UTC](https://community.traefik.io/t/traefik-dashboard-404-error/21273 "2024-01-29T23:37:35Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![danial23](https://avatars.discourse-cdn.com/v4/letter/d/f08c70/32.png) [@danial23](https://community.traefik.io/u/danial23)\
**Post date:** [January 29, 2024, 11:37pm UTC](https://community.traefik.io/t/traefik-dashboard-404-error/21273/1 "2024-01-29T23:37:35Z")

</div>

I'm trying to get a minimal setup to work with Docker Compose.  
The problem is, attempting to access the dashboard returns a "404 page not found" and acme.json remains empty.

**traefik.yml**

```yml
providers:
  docker:
    network: public
    watch: true
    exposedByDefault: false
entryPoints:
  web:
    address: ":80"
  websecure:
    address: ":443"
    http:
      tls:
        certResolver: le
certificatesResolvers:
  le:
    acme:
      email: admin@ *******.ca
      storage: /certificates/acme.json
      tlsChallenge: {}
api: {}
logs:
  level: DEBUG

```

**compose.yml**

```yml
services:
  traefik:
    image: traefik:v2.10
    container_name: traefik
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - traefik-certificates:/certificates
    configs:
      - source: traefik-static
        target: /etc/traefik/traefik.yml
    networks:
      - public
    deploy:
      labels:
        traefik.enable: "true"
        traefik.http.routers.dashboard.entryPoints: "websecure"
        traefik.http.routers.dashboard.rule: "Host(`traefik. *******.ca`)"
        traefik.http.routers.dashboard.tls: "true"
        traefik.http.routers.dashboard.service: "api@internal"

configs:
  traefik-static:
    file: ./traefik.yml

volumes:
  traefik-certificates:
    name: traefik-certificates

networks:
  public:
    name: public

```

service logs:

```log
traefik | time="2024-01-29T23:25:26Z" level=info msg="Configuration loaded from file: /etc/traefik/traefik.yml"
traefik | time="2024-01-29T23:25:26Z" level=info msg="Traefik version 2.10.7 built on 2023-12-06T15:54:59Z"
traefik | time="2024-01-29T23:25:26Z" level=debug msg="Static configuration loaded {\"global\":{\"checkNewVersion\":true},\"serversTra
traefik | time="2024-01-29T23:25:26Z" level=info msg="\nStats collection is disabled.\nHelp us improve Traefik by turning this feature
traefik | time="2024-01-29T23:25:26Z" level=info msg="Starting provider aggregator aggregator.ProviderAggregator"
traefik | time="2024-01-29T23:25:26Z" level=debug msg="Starting TCP Server" entryPointName=websecure
traefik | time="2024-01-29T23:25:26Z" level=info msg="Starting provider *traefik.Provider"
traefik | time="2024-01-29T23:25:26Z" level=debug msg="*traefik.Provider provider configuration: {}"
traefik | time="2024-01-29T23:25:26Z" level=info msg="Starting provider *docker.Provider"
traefik | time="2024-01-29T23:25:26Z" level=debug msg="*docker.Provider provider configuration: {\"watch\":true,\"endpoint\":\"unix://
traefik | time="2024-01-29T23:25:26Z" level=info msg="Starting provider *acme.Provider"
traefik | time="2024-01-29T23:25:26Z" level=debug msg="*acme.Provider provider configuration: {\"email\":\"admin@ *******.ca\",\"caServer\":\"https://acme-v02.api.letsencrypt.org/directory\",\"storage\":\"/certificates/acme.json\",\"keyType\":\"RSA4096\",\"certificatesDuration\":2160,\"tlsChallenge\":{},\"ResolverName\":\"le\",\"store\":{},\"TLSChallengeProvider\":{},\"HTTPChallengeProvider\":{}}"
traefik | time="2024-01-29T23:25:26Z" level=debug msg="Attempt to renew certificates \"720h0m0s\" before expiry and check every \"24h0m0s\"" ACME CA="https://acme-v02.api.letsencrypt.org/directory" providerName=le.acme
traefik | time="2024-01-29T23:25:26Z" level=info msg="Testing certificate renew..." ACME CA="https://acme-v02.api.letsencrypt.org/directory" providerName=le.acme
traefik | time="2024-01-29T23:25:26Z" level=info msg="Starting provider *acme.ChallengeTLSALPN"
traefik | time="2024-01-29T23:25:26Z" level=debug msg="*acme.ChallengeTLSALPN provider configuration: {}"
traefik | time="2024-01-29T23:25:26Z" level=debug msg="Starting TCP Server" entryPointName=web
traefik | time="2024-01-29T23:25:26Z" level=debug msg="Configuration received: {\"http\":{\"services\":{\"api\":{},\"dashboard\":{},\"noop\":{}},\"models\":{\"websecure\":{\"tls\":{\"certResolver\":\"le\"}}},\"serversTransports\":{\"default\":{\"maxIdleConnsPerHost\":200}}},\"tcp\":{},\"udp\":{},\"tls\":{}}" providerName=internal
traefik | time="2024-01-29T23:25:26Z" level=debug msg="Configuration received: {\"http\":{},\"tcp\":{},\"udp\":{},\"tls\":{}}" providerName=le.acme
traefik | time="2024-01-29T23:25:26Z" level=debug msg="Provider connection established with docker 25.0.1 (API 1.44)" providerName=docker
traefik | time="2024-01-29T23:25:26Z" level=debug msg="Filtering disabled container" providerName=docker container=traefik-test-9ad00a40fd618cef626208c7a73030ab35abf01592ef70c1c378d981f1c952c9
traefik | time="2024-01-29T23:25:26Z" level=debug msg="Configuration received: {\"http\":{},\"tcp\":{},\"udp\":{}}" providerName=docker
traefik | time="2024-01-29T23:25:26Z" level=debug msg="No default certificate, fallback to the internal generated certificate" tlsStoreName=default
traefik | time="2024-01-29T23:25:26Z" level=debug msg="No default certificate, fallback to the internal generated certificate" tlsStoreName=default
traefik | time="2024-01-29T23:25:48Z" level=debug msg="Serving default certificate for request: \"traefik. *******.ca\""
traefik | time="2024-01-29T23:25:48Z" level=debug msg="http: TLS handshake error from ******* :35230: remote error: tls: unknown certificate"
traefik | time="2024-01-29T23:25:51Z" level=debug msg="Serving default certificate for request: \"traefik. *******.ca\""
traefik | time="2024-01-29T23:25:51Z" level=debug msg="http: TLS handshake error from ******* :35232: remote error: tls: unknown certificate"
traefik | time="2024-01-29T23:25:51Z" level=debug msg="Serving default certificate for request: \"traefik. *******.ca\""

```

---

<div class="post-metadata">

**Author:** ![danial23](https://avatars.discourse-cdn.com/v4/letter/d/f08c70/32.png) [@danial23](https://community.traefik.io/u/danial23)\
**Post date:** [January 30, 2024, 2:25pm UTC](https://community.traefik.io/t/traefik-dashboard-404-error/21273/2 "2024-01-30T14:25:40Z")

</div>

Turns out the issue was with my compose.yml: the "deploy" key is redundant when working with Docker Compose!

---

<div class="post-metadata">

**Author:** ![bluepuma77](https://avatars.discourse-cdn.com/v4/letter/b/a9adbd/32.png) [@bluepuma77](https://community.traefik.io/u/bluepuma77)\
**Post date:** [January 30, 2024, 3:00pm UTC](https://community.traefik.io/t/traefik-dashboard-404-error/21273/3 "2024-01-30T15:00:33Z")

</div>

You need the labels beneath `deploy` in your compose file when deploying to Docker Swarm with `docker stack deploy`.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex020/uploads/containo/original/2X/b/bd81ebdb578656e76e56ff3cc3eed021d3ba132d.png) [@system](https://community.traefik.io/u/system)\
**Post date:** [February 2, 2024, 3:01pm UTC](https://community.traefik.io/t/traefik-dashboard-404-error/21273/4 "2024-02-02T15:01:20Z")

</div>

Closed on February 2, 2024, 3:01pm UTC

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.
