Not nested `labels:` under `deploy:` for Docker Swarm deployment cause Traefik to not create a HTTP Route

Thank you so much for this suggestion. I managed to solve this because of you!!! :heart:

I enabled DEBUG log mode and noticed these logs related to Vikunja:

time="2023-03-26T14:41:04Z" level=debug msg="Filtering disabled container" providerName=docker container=vikunja-vikunja-api-ljh1277p3fj62clr0bcg4vvtm
time="2023-03-26T14:41:04Z" level=debug msg="Filtering disabled container" container=vikunja-vikunja-frontend-91zep3ia1b7uvxcvlpz7hiiej providerName=docker
time="2023-03-26T14:41:04Z" level=debug msg="Filtering disabled container" providerName=docker container=vikunja-db-vyjh63y6anyyru88tkxyktr4c

I then googled them and found this post → Traefik is filtering traefik docker container - #4 by cakiwi - Traefik v2 (latest) - Traefik Labs Community Forum

It seems that when deploying to Docker Swarm we need to nest labels under deploy:
I also deleted label for entrypoint and certificate, because it was in some way a duplicate of this label
- "traefik.docker.network={{traefik_network_name}}"
^ And I don’t know If its right or not, I’ll find out later xD

So my final labeling look like this:

    deploy:
      labels:
        - "traefik.enable=true"
        - "traefik.http.routers.vikunja-api.rule=Host(`vikunja.docker.local`) && (PathPrefix(`/api/v1`) || PathPrefix(`/dav/`) || PathPrefix(`/.well-known/`))"
        - "traefik.http.services.vikunja-api.loadbalancer.server.port=3456"
        - "traefik.docker.network=web"
        - "io.portainer.accesscontrol.users=admin"
[...]

    deploy:
      labels:
        - "traefik.enable=true"
        - "traefik.http.routers.vikunja-frontend.rule=Host(`vikunja.docker.local`)"
        - "traefik.http.services.vikunja-frontend.loadbalancer.server.port=80"
        - "traefik.docker.network=web"
        - "io.portainer.accesscontrol.users=admin"