Skipping unchanged configuration providerName=file

Traefik dynamic configuration file does not load.
Also getting "Skipping unchanged configuration providerName=file" when making on-the-fly changes.

LOG:

traefik  | 2025-05-12T21:40:11Z DBG github.com/traefik/traefik/v3/pkg/server/configurationwatcher.go:127 > Skipping unchanged configuration providerName=file
traefik  | 2025-05-12T21:40:13Z DBG github.com/traefik/traefik/v3/pkg/server/configurationwatcher.go:127 > Skipping unchanged configuration providerName=file
traefik  | 2025-05-12T21:40:15Z DBG github.com/traefik/traefik/v3/pkg/server/configurationwatcher.go:127 > Skipping unchanged configuration providerName=file
traefik  | 2025-05-12T21:40:17Z DBG github.com/traefik/traefik/v3/pkg/server/configurationwatcher.go:127 > Skipping unchanged configuration providerName=file

CONFIG FILE:

certificatesResolvers:
  testresolver:
    acme:
      httpChallenge: false
      tlsChallenge: false
      dnsChallenge:
        provider: cloudflare
        # resolvers: 1.1.1.1:53,8.8.8.8:53
      email: myname@gmail.com
      storage: /letsencrypt/cloudflare.json
      caServer: https://acme-staging-v02.api.letsencrypt.org/directory

DOCKER-COMPOSE.YAML

services:
  traefik:
    image: "traefik:v3.3.7"
    container_name: "traefik"
    environment:
      - "CF_API_EMAIL=user@gmail.com"
      - "CF_API_KEY=abcdefg12345"
      - "LEGO_DISABLE_CNAME_SUPPORT=true"
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.dashboard.tls=true"
      - "traefik.http.routers.dashboard.rule=Host(`traefik.mysite.org`)"
      - "traefik.http.routers.dashboard.service=api@internal"
      - "traefik.http.routers.dashboard.middlewares=dashboard-auth"
      - "traefik.http.middlewares.dashboard-auth.basicauth.users=adminuser:$$apr1$$mjunkjunkjunk."
      - "traefik.http.routers.dashboard.entrypoints=websecure"
      - "traefik.http.services.dashboard.loadbalancer.server.port=8080"
      - "traefik.http.routers.dashboard.tls.certresolver=cloudflare"
      - "traefik.http.routers.dashboard.tls.domains[0].main=mysite.org"
      - "traefik.http.routers.dashboard.tls.domains[0].sans=*.mysite.org"
    restart: always
    command:
      - "--log.level=DEBUG"
      - "--api=true"
      - "--providers.docker=true"
      - "--providers.docker.exposedbydefault=false"
      - "--providers.docker.network=proxy"
      - "--providers.docker.watch=true"
      - "--accesslog=true"
      - "--entrypoints.web.address=:80"
      - "--entrypoints.websecure.address=:443"
      ### DYNAMIC CONFIG ###
      - "--providers.file.directory=/etc/traefik/dynamic/"
      - "--providers.file.watch=true"
      - "--entrypoints.web.http.redirections.entryPoint.to=websecure"
      - "--entrypoints.web.http.redirections.entryPoint.scheme=https"
      - "--certificatesresolvers.cloudflare.acme.httpchallenge=false"
      - "--certificatesresolvers.cloudflare.acme.tlschallenge=false"
      - "--certificatesresolvers.cloudflare.acme.dnschallenge=true"
      - "--certificatesresolvers.cloudflare.acme.dnschallenge.provider=cloudflare"
      - "--certificatesresolvers.cloudflare.acme.email=myname@gmail.com"
      - "--certificatesresolvers.cloudflare.acme.storage=/letsencrypt/cloudflare.json"
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - type: bind
        source: /var/run/docker.sock
        target: /var/run/docker.sock
        read_only: true
      - type: bind
        source: /home/ubuntu/docker/traefik/volumes/traefik/traefik/letsencrypt
        target: /letsencrypt
      ### DYNAMIC CONFIG ###
      - type: bind
        source: /home/ubuntu/docker/traefik/volumes/traefik/traefik/dynamic
        target: /etc/traefik/dynamic
    networks:
      - external
      - proxy

networks:
  proxy:
    external: true
  external:
    external: true

is Traefik static config, so it can’t be placed in a dynamic config file.

1 Like

Thanks. Never knew there was a difference between static and dynamic. I see now.

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