Noob - Authelia/Traefik sample works, can't get dynamic file provider to work

I feel like this will surely get slammed as duplicative but I have really tried.

I am using the template from the Authelia/Docker documentation and got that to work fine.

But I have one route that needs to exit the docker environment so I am trying the dynamic file provider method and cannot seem to get it to work.

In my docker compose file in the traefik section I added the following lines to try to get dynamic files to work.

  traefik:
    image: traefik:v2.9.6
    container_name: traefik
    volumes:
      - ./traefik:/etc/traefik
      - /var/run/docker.sock:/var/run/docker.sock
    networks:
      - net
    labels:
      - 'traefik.enable=true'
      - 'traefik.http.routers.api.rule=Host(`traefik.my_domain.com`)'
      - 'traefik.http.routers.api.entrypoints=https'
      - 'traefik.http.routers.api.service=api@internal'
      - 'traefik.http.routers.api.tls=true'
      - 'traefik.http.routers.api.tls.certresolver=letsencrypt'
      - 'traefik.http.routers.api.middlewares=authelia@docker'
    ports:
      - 80:80
      - 443:443
    command:
      - '--api'
      - '--providers.docker=true'
      - '--providers.docker.exposedByDefault=false'
      - '--providers.file.directory=/etc/traefik'     <----- I added this
      - '--providers.file.watch=true'                  <----- I added this
      - '--entrypoints.http=true'
      - '--entrypoints.http.address=:80'
      - '--entrypoints.http.http.redirections.entrypoint.to=https'
      - '--entrypoints.http.http.redirections.entrypoint.scheme=https'
      - '--entrypoints.https=true'
      - '--entrypoints.https.address=:443'
      - '--certificatesResolvers.letsencrypt.acme.email=me@gmail.com'
      - '--certificatesResolvers.letsencrypt.acme.storage=/etc/traefik/acme.json'
      - '--certificatesResolvers.letsencrypt.acme.httpChallenge.entryPoint=http'
      - '--log=true'
      - '--log.level=DEBUG'

That at least seem to partially work because when I test if that file is there in my container, it is, and the contents are able to be displayed.

$ sudo docker exec -it e889289e141b ls /etc/traefik
acme.json         dynamic_conf.yml

$ sudo docker exec -it e889289e141b cat /etc/traefik/dynamic_conf.yml
http:
  # Add the router
  routers:
    lxd-router:
      rule: "Host(`www.my_server2.org`) || Host(`my_server2.org`)"
      entryPoints:
      - https
      tls:
        certResolver: letsencrypt
      middlewares: authelia@docker
      service: lxd-service

  # Add the service
  services:
    lxd-service:
      loadBalancer:
        servers:
        - url: "https://192.168.50.181:443"
        passHostHeader: false

First, as a noob, I am not even sure where to look for error messages.

Prior to this test, when I look at the traefik dashboard I saw the services and routers.

I expected after saving the files (and even restarting the docker services) that my new router and new service would show up in the dashboard. But they don't.

Any help for a total noob on where to look for errors?

Here is the ls -l of what is in the traefik container files

$ sudo docker exec -it e889289e141b ls -la /etc/traefik
total 64
drwxr-xr-x    2 root     root          4096 Nov 17 15:45 .
drwxr-xr-x    1 root     root          4096 Nov 17 14:41 ..
-rw-------    1 root     root         53046 Nov 17 14:41 acme.json
-rw-r--r--    1 root     root           447 Nov 17 15:45 dynamic_conf.yml

The only diagnosis tools I know of now are that the new items I expect are not showing in the dashboard.

The routers showing are all from the Authelia sample and are docker containers getting detected by Traefik. My manual one is not showing, like the services isn't.

Something else on the dashboard seems off. The file provider is not in the provider section.

Enable and check Traefik debug log (doc).

Recommend to assign the TLS globally to entrypoint, not to every router, see simple Traefik example.

Thanks @bluepuma77 , I must be doing something very basic wrong. I tried to set the log file to both a location within the container and a volume without success.

I found a way to get docker to spit out some logs using "sudo docker compose logs -f" and found the traefik startup debug logs.

Not any mention at all of my file provider. No comments, warnings or errors. Like it isn't even trying to load the file.

The traefik container does have see the file as noted above but traefik is not trying to load the dynamic config file apparently.

Here are the docker restart logs. The docker containers traefik.my_domain.com, authelia.my_domain.com public.my_domain.com and secure.my_domain.com are all explicitly called out in the docker compose file. I am trying to get the additional one in the file provider to be recognized.

traefik  | time="2023-11-18T15:03:05Z" level=info msg="Configuration loaded from flags."
traefik  | time="2023-11-18T15:03:05Z" level=info msg="Traefik version 2.9.6 built on 2022-12-07T14:17:58Z"
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="Static configuration loaded {\"global\":{\"checkNewVersion\":true},\"serversTransport\":{\"maxIdleConnsPerHost\":200},\"entryPoints\":{\"http\":{\"address\":\":80\",\"transport\":{\"lifeCycle\":{\"graceTimeOut\":\"10s\"},\"respondingTimeouts\":{\"idleTimeout\":\"3m0s\"}},\"forwardedHeaders\":{},\"http\":{\"redirections\":{\"entryPoint\":{\"to\":\"https\",\"scheme\":\"https\",\"permanent\":true,\"priority\":2147483646}}},\"http2\":{\"maxConcurrentStreams\":250},\"udp\":{\"timeout\":\"3s\"}},\"https\":{\"address\":\":443\",\"transport\":{\"lifeCycle\":{\"graceTimeOut\":\"10s\"},\"respondingTimeouts\":{\"idleTimeout\":\"3m0s\"}},\"forwardedHeaders\":{},\"http\":{},\"http2\":{\"maxConcurrentStreams\":250},\"udp\":{\"timeout\":\"3s\"}}},\"providers\":{\"providersThrottleDuration\":\"2s\",\"docker\":{\"watch\":true,\"endpoint\":\"unix:///var/run/docker.sock\",\"defaultRule\":\"Host(`{{ normalize .Name }}`)\",\"swarmModeRefreshSeconds\":\"15s\"}},\"api\":{\"dashboard\":true},\"log\":{\"level\":\"DEBUG\",\"format\":\"common\"},\"certificatesResolvers\":{\"letsencrypt\":{\"acme\":{\"email\":\"your-email@your-domain.com\",\"caServer\":\"https://acme-v02.api.letsencrypt.org/directory\",\"storage\":\"/etc/traefik/acme.json\",\"keyType\":\"RSA4096\",\"certificatesDuration\":2160,\"httpChallenge\":{\"entryPoint\":\"http\"}}}}}"
traefik  | time="2023-11-18T15:03:05Z" level=info msg="\nStats collection is disabled.\nHelp us improve Traefik by turning this feature on :)\nMore details on: https://doc.traefik.io/traefik/contributing/data-collection/\n"
traefik  | time="2023-11-18T15:03:05Z" level=info msg="Starting provider aggregator aggregator.ProviderAggregator"
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="Starting TCP Server" entryPointName=https
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="Starting TCP Server" entryPointName=http
traefik  | time="2023-11-18T15:03:05Z" level=info msg="Starting provider *traefik.Provider"
traefik  | time="2023-11-18T15:03:05Z" level=info msg="Starting provider *docker.Provider"
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="*docker.Provider provider configuration: {\"watch\":true,\"endpoint\":\"unix:///var/run/docker.sock\",\"defaultRule\":\"Host(`{{ normalize .Name }}`)\",\"swarmModeRefreshSeconds\":\"15s\"}"
traefik  | time="2023-11-18T15:03:05Z" level=info msg="Starting provider *acme.ChallengeTLSALPN"
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="*acme.ChallengeTLSALPN provider configuration: {}"
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="*traefik.Provider provider configuration: {}"
traefik  | time="2023-11-18T15:03:05Z" level=info msg="Starting provider *acme.Provider"
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="*acme.Provider provider configuration: {\"email\":\"your-email@your-domain.com\",\"caServer\":\"https://acme-v02.api.letsencrypt.org/directory\",\"storage\":\"/etc/traefik/acme.json\",\"keyType\":\"RSA4096\",\"certificatesDuration\":2160,\"httpChallenge\":{\"entryPoint\":\"http\"},\"ResolverName\":\"letsencrypt\",\"store\":{},\"TLSChallengeProvider\":{},\"HTTPChallengeProvider\":{}}"
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="Attempt to renew certificates \"720h0m0s\" before expiry and check every \"24h0m0s\"" providerName=letsencrypt.acme ACME CA="https://acme-v02.api.letsencrypt.org/directory"
traefik  | time="2023-11-18T15:03:05Z" level=info msg="Testing certificate renew..." providerName=letsencrypt.acme ACME CA="https://acme-v02.api.letsencrypt.org/directory"
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="Configuration received: {\"http\":{\"routers\":{\"acme-http\":{\"entryPoints\":[\"http\"],\"service\":\"acme-http@internal\",\"rule\":\"PathPrefix(`/.well-known/acme-challenge/`)\",\"priority\":2147483647},\"http-to-https\":{\"entryPoints\":[\"http\"],\"middlewares\":[\"redirect-http-to-https\"],\"service\":\"noop@internal\",\"rule\":\"HostRegexp(`{host:.+}`)\",\"priority\":2147483646}},\"services\":{\"acme-http\":{},\"api\":{},\"dashboard\":{},\"noop\":{}},\"middlewares\":{\"redirect-http-to-https\":{\"redirectScheme\":{\"scheme\":\"https\",\"port\":\"443\",\"permanent\":true}}},\"serversTransports\":{\"default\":{\"maxIdleConnsPerHost\":200}}},\"tcp\":{},\"udp\":{},\"tls\":{}}" providerName=internal
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="Configuration received: {\"http\":{},\"tcp\":{},\"udp\":{},\"tls\":{}}" providerName=letsencrypt.acme
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="Provider connection established with docker 24.0.7 (API 1.43)" providerName=docker
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="Filtering disabled container" providerName=docker container=redis-lite-6ad866e3dfb5f36853d212f9b339491e9032f2404228fd91affadc7bf16dd48e
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="Configuration received: {\"http\":{\"routers\":{\"api\":{\"entryPoints\":[\"https\"],\"middlewares\":[\"authelia@docker\"],\"service\":\"api@internal\",\"rule\":\"Host(`traefik.my_domain.com`)\",\"tls\":{\"certResolver\":\"letsencrypt\"}},\"authelia\":{\"entryPoints\":[\"https\"],\"service\":\"authelia-lite\",\"rule\":\"Host(`authelia.my_domain.com`)\",\"tls\":{\"certResolver\":\"letsencrypt\"}},\"public\":{\"entryPoints\":[\"https\"],\"middlewares\":[\"authelia@docker\"],\"service\":\"public-lite\",\"rule\":\"Host(`public.my_domain.com`)\",\"tls\":{\"certResolver\":\"letsencrypt\"}},\"secure\":{\"entryPoints\":[\"https\"],\"middlewares\":[\"authelia@docker\"],\"service\":\"secure-lite\",\"rule\":\"Host(`secure.my_domain.com`)\",\"tls\":{\"certResolver\":\"letsencrypt\"}}},\"services\":{\"authelia-lite\":{\"loadBalancer\":{\"servers\":[{\"url\":\"http://172.22.0.4:9091\"}],\"passHostHeader\":true}},\"public-lite\":{\"loadBalancer\":{\"servers\":[{\"url\":\"http://172.22.0.6:80\"}],\"passHostHeader\":true}},\"secure-lite\":{\"loadBalancer\":{\"servers\":[{\"url\":\"http://172.22.0.2:80\"}],\"passHostHeader\":true}},\"traefik-lite\":{\"loadBalancer\":{\"servers\":[{\"url\":\"http://172.22.0.5:80\"}],\"passHostHeader\":true}}},\"middlewares\":{\"authelia\":{\"forwardAuth\":{\"address\":\"http://authelia:9091/api/verify?rd=https://authelia.my_domain.com\",\"trustForwardHeader\":true,\"authResponseHeaders\":[\"Remote-User\",\"Remote-Groups\",\"Remote-Name\",\"Remote-Email\"]}}}},\"tcp\":{},\"udp\":{}}" providerName=docker
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="No default certificate, fallback to the internal generated certificate" tlsStoreName=default
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="Added outgoing tracing middleware acme-http@internal" middlewareType=TracingForwarder entryPointName=http routerName=acme-http@internal middlewareName=tracing
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="Added outgoing tracing middleware noop@internal" middlewareName=tracing middlewareType=TracingForwarder entryPointName=http routerName=http-to-https@internal
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="Creating middleware" middlewareType=RedirectScheme routerName=http-to-https@internal entryPointName=http middlewareName=redirect-http-to-https@internal
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="Setting up redirection to https 443" middlewareType=RedirectScheme routerName=http-to-https@internal entryPointName=http middlewareName=redirect-http-to-https@internal
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="Adding tracing to middleware" middlewareName=redirect-http-to-https@internal entryPointName=http routerName=http-to-https@internal
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="Creating middleware" middlewareType=Recovery entryPointName=http middlewareName=traefik-internal-recovery
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="Adding certificate for domain(s) secure.my_domain.com"
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="Adding certificate for domain(s) traefik.my_domain.com"
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="Adding certificate for domain(s) authelia.my_domain.com"
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="Adding certificate for domain(s) public.my_domain.com"
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="No default certificate, fallback to the internal generated certificate" tlsStoreName=default
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="Added outgoing tracing middleware noop@internal" middlewareName=tracing middlewareType=TracingForwarder entryPointName=http routerName=http-to-https@internal
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="Creating middleware" routerName=http-to-https@internal middlewareType=RedirectScheme middlewareName=redirect-http-to-https@internal entryPointName=http
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="Setting up redirection to https 443" routerName=http-to-https@internal middlewareType=RedirectScheme middlewareName=redirect-http-to-https@internal entryPointName=http
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="Adding tracing to middleware" routerName=http-to-https@internal middlewareName=redirect-http-to-https@internal entryPointName=http
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="Added outgoing tracing middleware acme-http@internal" routerName=acme-http@internal middlewareName=tracing middlewareType=TracingForwarder entryPointName=http
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="Creating middleware" middlewareType=Recovery entryPointName=http middlewareName=traefik-internal-recovery
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="Creating middleware" routerName=secure@docker middlewareName=pipelining middlewareType=Pipelining serviceName=secure-lite entryPointName=https
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="Creating load-balancer" entryPointName=https routerName=secure@docker serviceName=secure-lite
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="Creating server 0 http://172.22.0.2:80" serverName=0 entryPointName=https routerName=secure@docker serviceName=secure-lite
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="child http://172.22.0.2:80 now UP"
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="Propagating new UP status"
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="Added outgoing tracing middleware secure-lite" middlewareName=tracing middlewareType=TracingForwarder routerName=secure@docker entryPointName=https
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="Creating middleware" entryPointName=https routerName=secure@docker middlewareName=authelia@docker middlewareType=ForwardedAuthType
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="Added outgoing tracing middleware api@internal" entryPointName=https routerName=api@docker middlewareName=tracing middlewareType=TracingForwarder
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="Creating middleware" middlewareType=ForwardedAuthType entryPointName=https routerName=api@docker middlewareName=authelia@docker
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="Creating middleware" serviceName=authelia-lite entryPointName=https middlewareName=pipelining middlewareType=Pipelining routerName=authelia@docker
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="Creating load-balancer" entryPointName=https routerName=authelia@docker serviceName=authelia-lite
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="Creating server 0 http://172.22.0.4:9091" routerName=authelia@docker serviceName=authelia-lite serverName=0 entryPointName=https
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="child http://172.22.0.4:9091 now UP"
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="Propagating new UP status"
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="Added outgoing tracing middleware authelia-lite" middlewareName=tracing middlewareType=TracingForwarder entryPointName=https routerName=authelia@docker
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="Creating middleware" middlewareName=pipelining middlewareType=Pipelining entryPointName=https routerName=public@docker serviceName=public-lite
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="Creating load-balancer" entryPointName=https routerName=public@docker serviceName=public-lite
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="Creating server 0 http://172.22.0.6:80" routerName=public@docker serviceName=public-lite serverName=0 entryPointName=https
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="child http://172.22.0.6:80 now UP"
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="Propagating new UP status"
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="Added outgoing tracing middleware public-lite" entryPointName=https routerName=public@docker middlewareName=tracing middlewareType=TracingForwarder
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="Creating middleware" middlewareType=ForwardedAuthType entryPointName=https routerName=public@docker middlewareName=authelia@docker
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="Creating middleware" middlewareName=traefik-internal-recovery middlewareType=Recovery entryPointName=https
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="Adding route for secure.my_domain.com with TLS options default" entryPointName=https
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="Adding route for traefik.my_domain.com with TLS options default" entryPointName=https
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="Adding route for authelia.my_domain.com with TLS options default" entryPointName=https
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="Adding route for public.my_domain.com with TLS options default" entryPointName=https
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="Trying to challenge certificate for domain [authelia.my_domain.com] found in HostSNI rule" routerName=authelia@docker rule="Host(`authelia.my_domain.com`)" providerName=letsencrypt.acme ACME CA="https://acme-v02.api.letsencrypt.org/directory"
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="Trying to challenge certificate for domain [public.my_domain.com] found in HostSNI rule" rule="Host(`public.my_domain.com`)" providerName=letsencrypt.acme ACME CA="https://acme-v02.api.letsencrypt.org/directory" routerName=public@docker
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="Trying to challenge certificate for domain [secure.my_domain.com] found in HostSNI rule" providerName=letsencrypt.acme ACME CA="https://acme-v02.api.letsencrypt.org/directory" routerName=secure@docker rule="Host(`secure.my_domain.com`)"
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="Trying to challenge certificate for domain [traefik.my_domain.com] found in HostSNI rule" rule="Host(`traefik.my_domain.com`)" providerName=letsencrypt.acme ACME CA="https://acme-v02.api.letsencrypt.org/directory" routerName=api@docker
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="Looking for provided certificate(s) to validate [\"authelia.my_domain.com\"]..." ACME CA="https://acme-v02.api.letsencrypt.org/directory" routerName=authelia@docker rule="Host(`authelia.my_domain.com`)" providerName=letsencrypt.acme
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="Looking for provided certificate(s) to validate [\"traefik.my_domain.com\"]..." providerName=letsencrypt.acme ACME CA="https://acme-v02.api.letsencrypt.org/directory" routerName=api@docker rule="Host(`traefik.my_domain.com`)"
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="Looking for provided certificate(s) to validate [\"public.my_domain.com\"]..." rule="Host(`public.my_domain.com`)" providerName=letsencrypt.acme ACME CA="https://acme-v02.api.letsencrypt.org/directory" routerName=public@docker
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="No ACME certificate generation required for domains [\"authelia.my_domain.com\"]." ACME CA="https://acme-v02.api.letsencrypt.org/directory" routerName=authelia@docker rule="Host(`authelia.my_domain.com`)" providerName=letsencrypt.acme
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="No ACME certificate generation required for domains [\"traefik.my_domain.com\"]." ACME CA="https://acme-v02.api.letsencrypt.org/directory" routerName=api@docker rule="Host(`traefik.my_domain.com`)" providerName=letsencrypt.acme
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="No ACME certificate generation required for domains [\"public.my_domain.com\"]." providerName=letsencrypt.acme ACME CA="https://acme-v02.api.letsencrypt.org/directory" routerName=public@docker rule="Host(`public.my_domain.com`)"
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="Looking for provided certificate(s) to validate [\"secure.my_domain.com\"]..." ACME CA="https://acme-v02.api.letsencrypt.org/directory" routerName=secure@docker rule="Host(`secure.my_domain.com`)" providerName=letsencrypt.acme
traefik  | time="2023-11-18T15:03:05Z" level=debug msg="No ACME certificate generation required for domains [\"secure.my_domain.com\"]." providerName=letsencrypt.acme ACME CA="https://acme-v02.api.letsencrypt.org/directory" routerName=secure@docker rule="Host(`secure.my_domain.com`)"
traefik  | time="2023-11-18T15:13:06Z" level=warning msg="A new release has been found: 2.10.5. Please consider updating."

Hmm, I did a docker down and up (rather than restart) and things seem very different. Logs are working and the attempt at lets encrypt was made on my dynamic file.

Things seem more as expected now. Maybe a total noob mistake.

As you mansion docker up, I do suppose you are using docker compose instead.

The 'up' in docker compose up is 'update' and not like in down and up. So when you change configuration in a docker compose yaml file, you need an 'update' as else it will (re)start your old configuration, not the new one.

Don't worry, we've all been there. :stuck_out_tongue:

LoL, I thought it mean up and down. Yes I am doing docker compose.

No wonder none of my changes seemed to have been taking effect!