Traefik Dashboard 404 page not found

How to fix dashboard 404 page not found? I have checked logs and searched this forum and google but I am unable to solve this issue.
docker-compose.yml

version: "3.7"
volumes: 
  grafana_data: {}
  prometheus_data: {}
  traefik_data: {}
networks: 
  inbound: 
    driver: overlay
    name: inbound
  reverse-proxy: 
    driver: overlay
    external: true
    name: reverse-proxy
services: 
  grafana: 
    deploy: 
      labels: 
        - traefik.enable=true
        - traefik.http.routers.grafana.rule=Host(`grafana.whiskeyonthe.rocks`)
        - traefik.http.services.grafana.loadbalancer.server.port=3000"
        - traefik.http.routers.grafana.entrypoints=web-secure
        - traefik.http.routers.grafana.tls=true
        - traefik.http.routers.grafana.tls.certresolver=le
        - traefik.docker.network=inbound
      placement: 
        constraints: 
          - "node.role == manager"
      restart_policy: 
        condition: on-failure
    env_file: 
      - /srv/grafana.whiskeyonthe.rocks/grafana/config.monitoring
    extra_hosts: 
      - "grafana.whiskeyonthe.rocks:185.193.127.125"
    image: grafana/grafana
    networks: 
      - inbound
    user: "104"
    volumes: 
      - "grafana_data:/var/lib/grafana"
      - "/srv/grafana.whiskeyonthe.rocks/grafana/provisioning/:/etc/grafana/provisioning/"
  prometheus: 
    command: 
      - "--config.file=/etc/prometheus/prometheus.yml"
      - "--storage.tsdb.path=/prometheus"
      - "--web.console.libraries=/usr/share/prometheus/console_libraries"
      - "--web.console.templates=/usr/share/prometheus/consoles"
    deploy: 
      labels:
        - traefik.enable=true
        - traefik.http.routers.prometheus.rule=Host(`prometheus.whiskeyonthe.rocks`)
        - traefik.http.services.prometheus.loadbalancer.server.port=9090"
        - traefik.http.routers.prometheus.entrypoints=web-secure
        - traefik.http.routers.prometheus.tls=true
        - traefik.http.routers.prometheus.tls.certresolver=le
        - traefik.docker.network=inbound
      placement: 
        constraints: 
          - node.role==manager
      restart_policy: 
        condition: on-failure
    extra_hosts: 
      - "prometheus.whiskeyonthe.rocks:185.193.127.125"
    image: prom/prometheus
    networks: 
      - inbound
    volumes: 
      - "/srv/prometheus.whiskeyonthe.rocks/prometheus:/etc/prometheus/"
      - "prometheus_data:/prometheus"
  traefik:
    image: "traefik:2.3.2"
    ports: 
      - mode: host
        published: 80
        target: 80
      - mode: host
        published: 443
        target: 443
      - mode: ingress
        protocol: tcp
        published: 8080
        target: 8080
    deploy: 
      mode: global
      placement: 
        constraints: 
          - "node.role == manager"
          - "node.labels.reverse-proxy.traefik_data == true"
      resources: 
        limits: 
          cpus: "0.50"
          memory: 512M
        reservations: 
          cpus: "0.25"
          memory: 256M
      restart_policy: 
        condition: any
      update_config: 
        delay: 10s
        parallelism: 1
        order: start-first
      labels: 
        - constraint.label=reverse-proxy
        - traefik.enable=true
        - traefik.docker.network=reverse-proxy
        - "traefik.http.middlewares.admin-auth.basicauth.users=admin:$$apr1$$8rWpRRHx$$xSzTeoNckKYO/umQnKso91"
        - traefik.http.routers.reverse-proxy-https.rule=Host(`traefik.whiskeyonthe.rocks`)
        - "traefik.http.routers.reverse-proxy-https.entrypoints=web-secure"
        - traefik.http.routers.reverse-proxy-https.tls=true
        - traefik.http.routers.reverse-proxy-https.service=api@internal
        - traefik.http.routers.reverse-proxy-https.tls.certresolver=le
        - traefik.http.routers.reverse-proxy-https.middlewares=admin-auth
        - "traefik.http.routers.reverse-proxy.tls.domains[0].main=whiskeyonthe.rocks"
        - "traefik.http.routers.reverse-proxy.tls.domains[0].sans=*.whiskeyonthe.rocks"
        - traefik.http.services.reverse-proxy.loadbalancer.server.port=8080
    volumes: 
      - "/var/run/docker.sock:/var/run/docker.sock:ro"
      - "/srv/traefik.whiskeyonthe.rocks/traefik/le:/letsencrypt"
      - "traefik_data:/traefik"
    command: 
      - "--log.level=DEBUG"
      - "--accesslog"
      - "--log"
      - "--api"
      - "--api.insecure=true"
      - "--metrics.prometheus=true"
      - "--metrics.prometheus.buckets=0.1,0.3,1.2,5.0"
      - "--providers.docker=true"
      - "--providers.docker.swarmmode=true"
      - "--providers.docker.watch"
      - "--providers.docker.endpoint=unix:///var/run/docker.sock"
      - "--providers.docker.exposedbydefault=false"
      - "--providers.docker.constraints=Label(`constraint-label`, `reverse-proxy`)"
      - "--pilot.token=92692dd4-e757-417c-83e5-1722051218cb"
      - "--entrypoints.web.address=:80"
      - "--entrypoints.web.http.redirections.entryPoint.to=web-secure"
      - "--entrypoints.web.http.redirections.entrypoint.scheme=https"
      - "--entrypoints.web-secure.address=:443"
      - "--certificatesresolvers.le.acme.email=admin@whiskeyonthe.rocks"
      - "--certificatesresolvers.le.acme.storage=/letsencrypt/acme.json"
      - "--certificatesresolvers.le.acme.tlschallenge=true"
    environment: 
      - NODE_ID=73glxibxvxp5wvqpyrvnndvjt
      - EMAIL=admin@whiskeyonthe.rocks
      - DOMAIN=traefik.whiskeyonthe.rocks
      - USERNAME=admin
      - EXTRA_HOSTS="traefik.whiskeyonthe.rocks:185.193.127.125"
      - DOCKER_NETWORK_HOST="host.docker.internal:172.17.0.1"
    extra_hosts: 
      - EXTRA_HOSTS
      - DOCKER_NETWORK_HOST
    networks: 
      - reverse-proxy
      - inbound

my log file when i visit https://portainer.whiskeyonthe.rocks

ronin@ninjaserver:~$ docker service logs traefik_traefik -f --no-trunc | grep -i error
traefik_traefik.0.tfaum4fzfhqcuzhm0k7la8476@ninjaserver    | time="2020-11-15T11:41:11Z" level=debug msg="http: TLS handshake error from 162.247.74.27:59926: EOF"

log file when i attempt to load dashboard URL in browser

ronin@ninjaserver:~$ docker service logs traefik_traefik -f --no-trunc
traefik_traefik.0.tfaum4fzfhqcuzhm0k7la8476@ninjaserver    | time="2020-11-15T12:01:26Z" level=debug msg="Container pruned by constraint expression: \"Label(`constraint-label`, `reverse-proxy`)\"" providerName=docker container=traefik-traefik-tfaum4fzfhqcuzhm0k7la8476
traefik_traefik.0.tfaum4fzfhqcuzhm0k7la8476@ninjaserver    | time="2020-11-15T12:01:26Z" level=debug msg="Configuration received from provider docker: {\"http\":{},\"tcp\":{},\"udp\":{}}" providerName=docker
traefik_traefik.0.tfaum4fzfhqcuzhm0k7la8476@ninjaserver    | time="2020-11-15T12:01:26Z" level=info msg="Skipping same configuration" providerName=docker
traefik_traefik.0.tfaum4fzfhqcuzhm0k7la8476@ninjaserver    | 10.0.4.3 - - [15/Nov/2020:12:01:26 +0000] "GET /metrics HTTP/1.1" 200 1978 "-" "-" 330 "prometheus@internal" "-" 2ms
traefik_traefik.0.tfaum4fzfhqcuzhm0k7la8476@ninjaserver    | 10.0.4.3 - - [15/Nov/2020:12:01:31 +0000] "GET /metrics HTTP/1.1" 200 1973 "-" "-" 331 "prometheus@internal" "-" 1ms
traefik_traefik.0.tfaum4fzfhqcuzhm0k7la8476@ninjaserver    | 10.0.4.3 - - [15/Nov/2020:12:01:36 +0000] "GET /metrics HTTP/1.1" 200 1974 "-" "-" 332 "prometheus@internal" "-" 2ms
traefik_traefik.0.tfaum4fzfhqcuzhm0k7la8476@ninjaserver    | time="2020-11-15T12:01:41Z" level=debug msg="Container pruned by constraint expression: \"Label(`constraint-label`, `reverse-proxy`)\"" providerName=docker container=traefik-prometheus-qmx4h1fizachbzgh5uwr4qnx9
traefik_traefik.0.tfaum4fzfhqcuzhm0k7la8476@ninjaserver    | time="2020-11-15T12:01:41Z" level=debug msg="Filtering disabled container" container=portainer-agent-ytbixreeex7di9jvgwih5cood providerName=docker
traefik_traefik.0.tfaum4fzfhqcuzhm0k7la8476@ninjaserver    | time="2020-11-15T12:01:41Z" level=debug msg="Container pruned by constraint expression: \"Label(`constraint-label`, `reverse-proxy`)\"" providerName=docker container=traefik-grafana-oqkj8bhppzewuf7o94o5ensyg
traefik_traefik.0.tfaum4fzfhqcuzhm0k7la8476@ninjaserver    | time="2020-11-15T12:01:41Z" level=debug msg="Container pruned by constraint expression: \"Label(`constraint-label`, `reverse-proxy`)\"" providerName=docker container=portainer-web-ub24dr483betn7m1rb2lxwxcw
traefik_traefik.0.tfaum4fzfhqcuzhm0k7la8476@ninjaserver    | time="2020-11-15T12:01:41Z" level=debug msg="Container pruned by constraint expression: \"Label(`constraint-label`, `reverse-proxy`)\"" providerName=docker container=traefik-traefik-tfaum4fzfhqcuzhm0k7la8476
traefik_traefik.0.tfaum4fzfhqcuzhm0k7la8476@ninjaserver    | time="2020-11-15T12:01:41Z" level=debug msg="Configuration received from provider docker: {\"http\":{},\"tcp\":{},\"udp\":{}}" providerName=docker
traefik_traefik.0.tfaum4fzfhqcuzhm0k7la8476@ninjaserver    | time="2020-11-15T12:01:41Z" level=info msg="Skipping same configuration" providerName=docker
traefik_traefik.0.tfaum4fzfhqcuzhm0k7la8476@ninjaserver    | 10.0.4.3 - - [15/Nov/2020:12:01:41 +0000] "GET /metrics HTTP/1.1" 200 1974 "-" "-" 333 "prometheus@internal" "-" 2ms
traefik_traefik.0.tfaum4fzfhqcuzhm0k7la8476@ninjaserver    | 10.0.4.3 - - [15/Nov/2020:12:01:46 +0000] "GET /metrics HTTP/1.1" 200 1980 "-" "-" 334 "prometheus@internal" "-" 2ms
traefik_traefik.0.tfaum4fzfhqcuzhm0k7la8476@ninjaserver    | 10.0.4.3 - - [15/Nov/2020:12:01:51 +0000] "GET /metrics HTTP/1.1" 200 1978 "-" "-" 335 "prometheus@internal" "-" 2ms
traefik_traefik.0.tfaum4fzfhqcuzhm0k7la8476@ninjaserver    | time="2020-11-15T12:01:56Z" level=debug msg="Container pruned by constraint expression: \"Label(`constraint-label`, `reverse-proxy`)\"" container=traefik-prometheus-qmx4h1fizachbzgh5uwr4qnx9 providerName=docker
traefik_traefik.0.tfaum4fzfhqcuzhm0k7la8476@ninjaserver    | time="2020-11-15T12:01:56Z" level=debug msg="Filtering disabled container" providerName=docker container=portainer-agent-ytbixreeex7di9jvgwih5cood
traefik_traefik.0.tfaum4fzfhqcuzhm0k7la8476@ninjaserver    | time="2020-11-15T12:01:56Z" level=debug msg="Container pruned by constraint expression: \"Label(`constraint-label`, `reverse-proxy`)\"" providerName=docker container=traefik-grafana-oqkj8bhppzewuf7o94o5ensyg
traefik_traefik.0.tfaum4fzfhqcuzhm0k7la8476@ninjaserver    | time="2020-11-15T12:01:56Z" level=debug msg="Container pruned by constraint expression: \"Label(`constraint-label`, `reverse-proxy`)\"" container=portainer-web-ub24dr483betn7m1rb2lxwxcw providerName=docker
traefik_traefik.0.tfaum4fzfhqcuzhm0k7la8476@ninjaserver    | time="2020-11-15T12:01:56Z" level=debug msg="Container pruned by constraint expression: \"Label(`constraint-label`, `reverse-proxy`)\"" providerName=docker container=traefik-traefik-tfaum4fzfhqcuzhm0k7la8476
traefik_traefik.0.tfaum4fzfhqcuzhm0k7la8476@ninjaserver    | time="2020-11-15T12:01:56Z" level=debug msg="Configuration received from provider docker: {\"http\":{},\"tcp\":{},\"udp\":{}}" providerName=docker
traefik_traefik.0.tfaum4fzfhqcuzhm0k7la8476@ninjaserver    | time="2020-11-15T12:01:56Z" level=info msg="Skipping same configuration" providerName=docker
traefik_traefik.0.tfaum4fzfhqcuzhm0k7la8476@ninjaserver    | 10.0.4.3 - - [15/Nov/2020:12:01:56 +0000] "GET /metrics HTTP/1.1" 200 1977 "-" "-" 336 "prometheus@internal" "-" 2ms
traefik_traefik.0.tfaum4fzfhqcuzhm0k7la8476@ninjaserver    | 10.0.4.3 - - [15/Nov/2020:12:02:01 +0000] "GET /metrics HTTP/1.1" 200 1976 "-" "-" 337 "prometheus@internal" "-" 2ms
traefik_traefik.0.tfaum4fzfhqcuzhm0k7la8476@ninjaserver    | 10.0.4.3 - - [15/Nov/2020:12:02:06 +0000] "GET /metrics HTTP/1.1" 200 1980 "-" "-" 338 "prometheus@internal" "-" 2ms
traefik_traefik.0.tfaum4fzfhqcuzhm0k7la8476@ninjaserver    | 10.0.4.3 - - [15/Nov/2020:12:02:11 +0000] "GET /metrics HTTP/1.1" 200 1980 "-" "-" 339 "prometheus@internal" "-" 2ms
traefik_traefik.0.tfaum4fzfhqcuzhm0k7la8476@ninjaserver    | time="2020-11-15T12:02:12Z" level=debug msg="Container pruned by constraint expression: \"Label(`constraint-label`, `reverse-proxy`)\"" providerName=docker container=traefik-prometheus-qmx4h1fizachbzgh5uwr4qnx9
traefik_traefik.0.tfaum4fzfhqcuzhm0k7la8476@ninjaserver    | time="2020-11-15T12:02:12Z" level=debug msg="Filtering disabled container" container=portainer-agent-ytbixreeex7di9jvgwih5cood providerName=docker
traefik_traefik.0.tfaum4fzfhqcuzhm0k7la8476@ninjaserver    | time="2020-11-15T12:02:12Z" level=debug msg="Container pruned by constraint expression: \"Label(`constraint-label`, `reverse-proxy`)\"" providerName=docker container=traefik-grafana-oqkj8bhppzewuf7o94o5ensyg
traefik_traefik.0.tfaum4fzfhqcuzhm0k7la8476@ninjaserver    | time="2020-11-15T12:02:12Z" level=debug msg="Container pruned by constraint expression: \"Label(`constraint-label`, `reverse-proxy`)\"" container=portainer-web-ub24dr483betn7m1rb2lxwxcw providerName=docker
traefik_traefik.0.tfaum4fzfhqcuzhm0k7la8476@ninjaserver    | time="2020-11-15T12:02:12Z" level=debug msg="Container pruned by constraint expression: \"Label(`constraint-label`, `reverse-proxy`)\"" container=traefik-traefik-tfaum4fzfhqcuzhm0k7la8476 providerName=docker
traefik_traefik.0.tfaum4fzfhqcuzhm0k7la8476@ninjaserver    | time="2020-11-15T12:02:12Z" level=debug msg="Configuration received from provider docker: {\"http\":{},\"tcp\":{},\"udp\":{}}" providerName=docker
traefik_traefik.0.tfaum4fzfhqcuzhm0k7la8476@ninjaserver    | time="2020-11-15T12:02:12Z" level=info msg="Skipping same configuration" providerName=docker
traefik_traefik.0.tfaum4fzfhqcuzhm0k7la8476@ninjaserver    | 10.0.4.3 - - [15/Nov/2020:12:02:16 +0000] "GET /metrics HTTP/1.1" 200 1979 "-" "-" 340 "prometheus@internal" "-" 2ms
traefik_traefik.0.tfaum4fzfhqcuzhm0k7la8476@ninjaserver    | 10.0.4.3 - - [15/Nov/2020:12:02:21 +0000] "GET /metrics HTTP/1.1" 200 1974 "-" "-" 341 "prometheus@internal" "-" 2ms
traefik_traefik.0.tfaum4fzfhqcuzhm0k7la8476@ninjaserver    | time="2020-11-15T12:02:26Z" level=debug msg="Container pruned by constraint expression: \"Label(`constraint-label`, `reverse-proxy`)\"" container=traefik-prometheus-qmx4h1fizachbzgh5uwr4qnx9 providerName=docker
traefik_traefik.0.tfaum4fzfhqcuzhm0k7la8476@ninjaserver    | time="2020-11-15T12:02:26Z" level=debug msg="Filtering disabled container" providerName=docker container=portainer-agent-ytbixreeex7di9jvgwih5cood
traefik_traefik.0.tfaum4fzfhqcuzhm0k7la8476@ninjaserver    | time="2020-11-15T12:02:26Z" level=debug msg="Container pruned by constraint expression: \"Label(`constraint-label`, `reverse-proxy`)\"" providerName=docker container=traefik-grafana-oqkj8bhppzewuf7o94o5ensyg
traefik_traefik.0.tfaum4fzfhqcuzhm0k7la8476@ninjaserver    | time="2020-11-15T12:02:26Z" level=debug msg="Container pruned by constraint expression: \"Label(`constraint-label`, `reverse-proxy`)\"" providerName=docker container=portainer-web-3qjwgbs9k6ymud1trgtuozxob
traefik_traefik.0.tfaum4fzfhqcuzhm0k7la8476@ninjaserver    | time="2020-11-15T12:02:26Z" level=debug msg="Container pruned by constraint expression: \"Label(`constraint-label`, `reverse-proxy`)\"" providerName=docker container=traefik-traefik-tfaum4fzfhqcuzhm0k7la8476
traefik_traefik.0.tfaum4fzfhqcuzhm0k7la8476@ninjaserver    | time="2020-11-15T12:02:26Z" level=debug msg="Configuration received from provider docker: {\"http\":{},\"tcp\":{},\"udp\":{}}" providerName=docker
traefik_traefik.0.tfaum4fzfhqcuzhm0k7la8476@ninjaserver    | time="2020-11-15T12:02:26Z" level=info msg="Skipping same configuration" providerName=docker
traefik_traefik.0.tfaum4fzfhqcuzhm0k7la8476@ninjaserver    | 10.0.4.3 - - [15/Nov/2020:12:02:26 +0000] "GET /metrics HTTP/1.1" 200 1976 "-" "-" 342 "prometheus@internal" "-" 1ms
traefik_traefik.0.tfaum4fzfhqcuzhm0k7la8476@ninjaserver    | 10.0.4.3 - - [15/Nov/2020:12:02:31 +0000] "GET /metrics HTTP/1.1" 200 1976 "-" "-" 343 "prometheus@internal" "-" 2ms
traefik_traefik.0.tfaum4fzfhqcuzhm0k7la8476@ninjaserver    | 10.0.4.3 - - [15/Nov/2020:12:02:36 +0000] "GET /metrics HTTP/1.1" 200 1977 "-" "-" 344 "prometheus@internal" "-" 4ms
traefik_traefik.0.tfaum4fzfhqcuzhm0k7la8476@ninjaserver    | 80.82.68.28 - - [15/Nov/2020:12:02:38 +0000] "POST /cgi-bin/webctrl.cgi HTTP/1.1" 308 18 "-" "-" 345 "web-to-web-secure@internal" "-" 0ms
traefik_traefik.0.tfaum4fzfhqcuzhm0k7la8476@ninjaserver    | 178.17.171.115 - - [15/Nov/2020:12:02:38 +0000] "GET / HTTP/2.0" - - "-" "-" 346 "-" "-" 0ms
traefik_traefik.0.tfaum4fzfhqcuzhm0k7la8476@ninjaserver    | time="2020-11-15T12:02:41Z" level=debug msg="Container pruned by constraint expression: \"Label(`constraint-label`, `reverse-proxy`)\"" providerName=docker container=traefik-prometheus-qmx4h1fizachbzgh5uwr4qnx9
traefik_traefik.0.tfaum4fzfhqcuzhm0k7la8476@ninjaserver    | time="2020-11-15T12:02:41Z" level=debug msg="Filtering disabled container" providerName=docker container=portainer-agent-ytbixreeex7di9jvgwih5cood
traefik_traefik.0.tfaum4fzfhqcuzhm0k7la8476@ninjaserver    | time="2020-11-15T12:02:41Z" level=debug msg="Container pruned by constraint expression: \"Label(`constraint-label`, `reverse-proxy`)\"" providerName=docker container=traefik-grafana-oqkj8bhppzewuf7o94o5ensyg
traefik_traefik.0.tfaum4fzfhqcuzhm0k7la8476@ninjaserver    | time="2020-11-15T12:02:41Z" level=debug msg="Container pruned by constraint expression: \"Label(`constraint-label`, `reverse-proxy`)\"" container=portainer-web-3qjwgbs9k6ymud1trgtuozxob providerName=docker
traefik_traefik.0.tfaum4fzfhqcuzhm0k7la8476@ninjaserver    | time="2020-11-15T12:02:41Z" level=debug msg="Container pruned by constraint expression: \"Label(`constraint-label`, `reverse-proxy`)\"" providerName=docker container=traefik-traefik-tfaum4fzfhqcuzhm0k7la8476
traefik_traefik.0.tfaum4fzfhqcuzhm0k7la8476@ninjaserver    | time="2020-11-15T12:02:41Z" level=debug msg="Configuration received from provider docker: {\"http\":{},\"tcp\":{},\"udp\":{}}" providerName=docker
traefik_traefik.0.tfaum4fzfhqcuzhm0k7la8476@ninjaserver    | time="2020-11-15T12:02:41Z" level=info msg="Skipping same configuration" providerName=docker
traefik_traefik.0.tfaum4fzfhqcuzhm0k7la8476@ninjaserver    | 178.17.171.115 - - [15/Nov/2020:12:02:41 +0000] "GET / HTTP/2.0" - - "-" "-" 347 "-" "-" 0ms
traefik_traefik.0.tfaum4fzfhqcuzhm0k7la8476@ninjaserver    | 10.0.4.3 - - [15/Nov/2020:12:02:41 +0000] "GET /metrics HTTP/1.1" 200 2034 "-" "-" 348 "prometheus@internal" "-" 2ms
traefik_traefik.0.tfaum4fzfhqcuzhm0k7la8476@ninjaserver    | 10.0.4.3 - - [15/Nov/2020:12:02:46 +0000] "GET /metrics HTTP/1.1" 200 2035 "-" "-" 349 "prometheus@internal" "-" 2ms
traefik_traefik.0.tfaum4fzfhqcuzhm0k7la8476@ninjaserver    | 10.0.4.3 - - [15/Nov/2020:12:02:51 +0000] "GET /metrics HTTP/1.1" 200 2030 "-" "-" 350 "prometheus@internal" "-" 2ms

I think this might be a routing issue but I cant seem to pinpoint the issue. Any advice would be appreciated. :slight_smile:

Remove the --api.insecure command line argument. That create an entrypoint and routes that may conflict with the route you have created.

I removed the --api.insecure but I am still getting the same issue.

Here is my updated docker-compose.yml

ronin@ninjaserver:~$ cat docker-traefik-prometheus/docker-compose.yml 
version: "3.7"
volumes: 
  grafana_data: {}
  prometheus_data: {}
  traefik_data: {}
networks: 
  inbound: 
    driver: overlay
    name: inbound
  reverse-proxy: 
    driver: overlay
    external: true
    name: reverse-proxy
services: 
  grafana: 
    deploy: 
      labels: 
        - traefik.enable=true
        - traefik.http.routers.grafana.rule=Host(`grafana.whiskeyonthe.rocks`)
        - traefik.http.services.grafana.loadbalancer.server.port=3000"
        - traefik.http.routers.grafana.entrypoints=web-secure
        - traefik.http.routers.grafana.tls=true
        - traefik.http.routers.grafana.tls.certresolver=le
        - traefik.docker.network=inbound
      placement: 
        constraints: 
          - "node.role == manager"
      restart_policy: 
        condition: on-failure
    env_file: 
      - /srv/grafana.whiskeyonthe.rocks/grafana/config.monitoring
    extra_hosts: 
      - "grafana.whiskeyonthe.rocks:185.193.127.125"
    image: grafana/grafana
    networks: 
      - inbound
    user: "104"
    volumes: 
      - "grafana_data:/var/lib/grafana"
      - "/srv/grafana.whiskeyonthe.rocks/grafana/provisioning/:/etc/grafana/provisioning/"
  prometheus: 
    command: 
      - "--config.file=/etc/prometheus/prometheus.yml"
      - "--storage.tsdb.path=/prometheus"
      - "--web.console.libraries=/usr/share/prometheus/console_libraries"
      - "--web.console.templates=/usr/share/prometheus/consoles"
    deploy: 
      labels:
        - traefik.enable=true
        - traefik.http.routers.prometheus.rule=Host(`prometheus.whiskeyonthe.rocks`)
        - traefik.http.services.prometheus.loadbalancer.server.port=9090"
        - traefik.http.routers.prometheus.entrypoints=web-secure
        - traefik.http.routers.prometheus.tls=true
        - traefik.http.routers.prometheus.tls.certresolver=le
        - traefik.docker.network=inbound
      placement: 
        constraints: 
          - node.role==manager
      restart_policy: 
        condition: on-failure
    extra_hosts: 
      - "prometheus.whiskeyonthe.rocks:185.193.127.125"
    image: prom/prometheus
    networks: 
      - inbound
    volumes: 
      - "/srv/prometheus.whiskeyonthe.rocks/prometheus:/etc/prometheus/"
      - "prometheus_data:/prometheus"
  traefik:
    image: "traefik:2.3.2"
    ports: 
      - mode: host
        published: 80
        target: 80
      - mode: host
        published: 443
        target: 443
      - mode: ingress
        protocol: tcp
        published: 8080
        target: 8080
    deploy: 
      mode: global
      placement: 
        constraints: 
          - "node.role == manager"
          - "node.labels.reverse-proxy.traefik_data == true"
      resources: 
        limits: 
          cpus: "0.50"
          memory: 512M
        reservations: 
          cpus: "0.25"
          memory: 256M
      restart_policy: 
        condition: any
      update_config: 
        delay: 10s
        parallelism: 1
        order: start-first
      labels: 
        - constraint.label=reverse-proxy
        - traefik.enable=true
        - traefik.docker.network=reverse-proxy
        - "traefik.http.middlewares.admin-auth.basicauth.users=admin:$$apr1$$8rWpRRHx$$xSzTeoNckKYO/umQnKso91"
        - traefik.http.routers.reverse-proxy-https.rule=Host(`traefik.whiskeyonthe.rocks`)
        - "traefik.http.routers.reverse-proxy-https.entrypoints=web-secure"
        - traefik.http.routers.reverse-proxy-https.tls=true
        - traefik.http.routers.reverse-proxy-https.service=api@internal
        - traefik.http.routers.reverse-proxy-https.tls.certresolver=le
        - traefik.http.routers.reverse-proxy-https.middlewares=admin-auth
        - "traefik.http.routers.reverse-proxy.tls.domains[0].main=whiskeyonthe.rocks"
        - "traefik.http.routers.reverse-proxy.tls.domains[0].sans=*.whiskeyonthe.rocks"
        - traefik.http.services.reverse-proxy.loadbalancer.server.port=8080
    volumes: 
      - "/var/run/docker.sock:/var/run/docker.sock:ro"
      - "/srv/traefik.whiskeyonthe.rocks/traefik/le:/letsencrypt"
      - "traefik_data:/traefik"
    command: 
      - "--log.level=DEBUG"
      - "--accesslog"
      - "--log"
      - "--api"
      - "--metrics.prometheus=true"
      - "--metrics.prometheus.buckets=0.1,0.3,1.2,5.0"
      - "--providers.docker=true"
      - "--providers.docker.swarmmode=true"
      - "--providers.docker.watch"
      - "--providers.docker.endpoint=unix:///var/run/docker.sock"
      - "--providers.docker.exposedbydefault=false"
      - "--providers.docker.constraints=Label(`constraint-label`, `reverse-proxy`)"
      - "--pilot.token=83692dd4-e757-407c-95e5-1722051218cb"
      - "--entrypoints.web.address=:80"
      - "--entrypoints.web.http.redirections.entryPoint.to=web-secure"
      - "--entrypoints.web.http.redirections.entrypoint.scheme=https"
      - "--entrypoints.web-secure.address=:443"
      - "--certificatesresolvers.le.acme.email=admin@whiskeyonthe.rocks"
      - "--certificatesresolvers.le.acme.storage=/letsencrypt/acme.json"
      - "--certificatesresolvers.le.acme.tlschallenge=true"
    environment: 
      - NODE_ID=64glxibxcxp5wvqpyrvnndvjt
      - EMAIL=admin@whiskeyonthe.rocks
      - DOMAIN=traefik.whiskeyonthe.rocks
      - USERNAME=admin
      - EXTRA_HOSTS="traefik.whiskeyonthe.rocks:185.193.127.125"
      - DOCKER_NETWORK_HOST="host.docker.internal:172.17.0.1"
    extra_hosts: 
      - EXTRA_HOSTS
      - DOCKER_NETWORK_HOST
    networks: 
      - reverse-proxy
      - inbound

EDIT:
Did some inspections of networks here's what I found, hopefully it can help resolve the issue.

ronin@ninjaserver:~$ docker network inspect ingress
[
    {
        "Name": "ingress",
        "Id": "pmeaxo2xvkulmkmjc4l2ow0z8",
        "Created": "2020-11-15T10:26:51.352646162Z",
        "Scope": "swarm",
        "Driver": "overlay",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "10.0.0.0/24",
                    "Gateway": "10.0.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": true,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
            "de21eebd6b0647c0c1dff7fb5b41706163a250801ed1cf2ac725d36a988068f5": {
                "Name": "traefik_traefik.63glxibxvxp4wvqpyrvnndvjt.bh4exf14wxgmx2psojsc7kt1z",
                "EndpointID": "4d3a0f17fa9fc3718673b40bf822d404e4b683db2fe48ccb6192d374def70313",
                "MacAddress": "02:42:0a:00:00:2c",
                "IPv4Address": "10.0.0.44/24",
                "IPv6Address": ""
            },
            "ingress-sbox": {
                "Name": "ingress-endpoint",
                "EndpointID": "988f5049e035cb6606cad56489cfa2c9aaa597c48aa6b022e259ac3e68058a1b",
                "MacAddress": "02:42:0a:00:00:02",
                "IPv4Address": "10.0.0.2/24",
                "IPv6Address": ""
            }
        },
        "Options": {
            "com.docker.network.driver.overlay.vxlanid_list": "4096"
        },
        "Labels": {},
        "Peers": [
            {
                "Name": "a21904ca76c1",
                "IP": "185.193.127.125"
            }
        ]
    }
]
ronin@ninjaserver:~$ docker network inspect inbound
[
    {
        "Name": "inbound",
        "Id": "3yjb7d0845cpj3l7f0q4b9x7u",
        "Created": "2020-11-16T00:14:09.831723943Z",
        "Scope": "swarm",
        "Driver": "overlay",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "10.0.8.0/24",
                    "Gateway": "10.0.8.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
            "6ae3b775ec92db63b47e7f4afa608694a4841496bec2bde3481ca473f611aaf5": {
                "Name": "traefik_grafana.1.fv2rc6hfvmx0j9vs8a8w70gz0",
                "EndpointID": "ea31a792956a1bcb07befd804dd306334c20d075c79b6cd8a90c021db4978701",
                "MacAddress": "02:42:0a:00:08:06",
                "IPv4Address": "10.0.8.6/24",
                "IPv6Address": ""
            },
            "7d5e1e2ab38097629f0ae5038ba61122646a7bddae4108730e09ab7b35711cae": {
                "Name": "traefik_prometheus.1.al3xgxs6xfxa9i9qf9b3wiud7",
                "EndpointID": "dab69b0ef64f5d709041cc16f4d0b827bf200b6e8971cc0ac63e02fad31f9c5d",
                "MacAddress": "02:42:0a:00:08:08",
                "IPv4Address": "10.0.8.8/24",
                "IPv6Address": ""
            },
            "de21eebd6b0647c0c1dff7fb5b41706163a250801ed1cf2ac725d36a988068f5": {
                "Name": "traefik_traefik.63glxibxvxp4wvqpyrvnndvjt.bh4exf14wxgmx2psojsc7kt1z",
                "EndpointID": "54ed93987a273b6cf6ad9abe120414729a43d357a44a81539ca3585b402ea984",
                "MacAddress": "02:42:0a:00:08:03",
                "IPv4Address": "10.0.8.3/24",
                "IPv6Address": ""
            },
            "lb-inbound": {
                "Name": "inbound-endpoint",
                "EndpointID": "4f28ebae2ba56cbcb5b71b576fa6b05daa876017092325a77eec5f55aebf6a85",
                "MacAddress": "02:42:0a:00:08:04",
                "IPv4Address": "10.0.8.4/24",
                "IPv6Address": ""
            }
        },
        "Options": {
            "com.docker.network.driver.overlay.vxlanid_list": "4104"
        },
        "Labels": {
            "com.docker.stack.namespace": "traefik"
        },
        "Peers": [
            {
                "Name": "a21904ca76c1",
                "IP": "185.193.127.125"
            }
        ]
    }
]
ronin@ninjaserver:~$ docker network inspect reverse-proxy 
[
    {
        "Name": "reverse-proxy",
        "Id": "o65nkhxhb3nope80z59h62vjt",
        "Created": "2020-11-15T10:33:09.557759954Z",
        "Scope": "swarm",
        "Driver": "overlay",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "10.0.2.0/24",
                    "Gateway": "10.0.2.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
            "33dadee301cb748992fc3bd554c34533fd3c3d7e5279b26f0c304365538d41c2": {
                "Name": "portainer_web.1.dh7ayok1geivem8b2ddovrpio",
                "EndpointID": "16abb69110a3ccf1ed862af473aa30c814b65b108ebce1eaa96647ae990b65db",
                "MacAddress": "02:42:0a:00:02:ce",
                "IPv4Address": "10.0.2.206/24",
                "IPv6Address": ""
            },
            "de21eebd6b0647c0c1dff7fb5b41706163a250801ed1cf2ac725d36a988068f5": {
                "Name": "traefik_traefik.63glxibxvxp4wvqpyrvnndvjt.bh4exf14wxgmx2psojsc7kt1z",
                "EndpointID": "de62298846dd8a764a9d91f4398440927eeb02a082ca3c4e2a83276b6489c2f1",
                "MacAddress": "02:42:0a:00:02:cb",
                "IPv4Address": "10.0.2.203/24",
                "IPv6Address": ""
            },
            "lb-reverse-proxy": {
                "Name": "reverse-proxy-endpoint",
                "EndpointID": "3a1220ef830738793b267b04dc6fa8e8e3a51464025604ac7f027059c9482f95",
                "MacAddress": "02:42:0a:00:02:06",
                "IPv4Address": "10.0.2.6/24",
                "IPv6Address": ""
            }
        },
        "Options": {
            "com.docker.network.driver.overlay.vxlanid_list": "4098"
        },
        "Labels": {},
        "Peers": [
            {
                "Name": "a21904ca76c1",
                "IP": "185.193.127.125"
            }
        ]
    }
]

localhost curl results

ronin@ninjaserver:~$ curl -4v localhost:80
*   Trying 127.0.0.1:80...
* TCP_NODELAY set
* Connected to localhost (127.0.0.1) port 80 (#0)
> GET / HTTP/1.1
> Host: localhost
> User-Agent: curl/7.68.0
> Accept: */*
> 
* Mark bundle as not supporting multiuse
< HTTP/1.1 301 Moved Permanently
< Location: https://localhost/
< Date: Mon, 16 Nov 2020 00:38:02 GMT
< Content-Length: 17
< Content-Type: text/plain; charset=utf-8
< 
* Connection #0 to host localhost left intact
Moved Permanentlyronin@ninjaserver:~$ curl -4v localhost:443
*   Trying 127.0.0.1:443...
* TCP_NODELAY set
* Connected to localhost (127.0.0.1) port 443 (#0)
> GET / HTTP/1.1
> Host: localhost:443
> User-Agent: curl/7.68.0
> Accept: */*
> 
* Mark bundle as not supporting multiuse
< HTTP/1.1 404 Not Found
< Content-Type: text/plain; charset=utf-8
< X-Content-Type-Options: nosniff
< Date: Mon, 16 Nov 2020 00:38:12 GMT
< Content-Length: 19
< 
404 page not found
* Connection #0 to host localhost left intact
ronin@ninjaserver:~$ curl -4v localhost:8080
*   Trying 127.0.0.1:8080...
* TCP_NODELAY set
* connect to 127.0.0.1 port 8080 failed: Connection refused
* Failed to connect to localhost port 8080: Connection refused
* Closing connection 0
curl: (7) Failed to connect to localhost port 8080: Connection refused

traefik subdomain name curl results

ronin@ninjaserver:~$ curl -4v traefik.whiskeyonthe.rocks:80
*   Trying 183.193.127.125:80...
* TCP_NODELAY set
^C
ronin@ninjaserver:~$ curl -4v traefik.whiskeyonthe.rocks:443
*   Trying 183.193.127.125:443...
* TCP_NODELAY set
^C
ronin@ninjaserver:~$ curl -4v traefik.whiskeyonthe.rocks:8080
*   Trying 183.193.127.125:8080...
* TCP_NODELAY set
^C

main domain curl results

ronin@ninjaserver:~$ curl -4v whiskeyonthe.rocks:80
*   Trying 185.193.127.125:80...
* TCP_NODELAY set
* Connected to whiskeyonthe.rocks (185.193.127.125) port 80 (#0)
> GET / HTTP/1.1
> Host: whiskeyonthe.rocks
> User-Agent: curl/7.68.0
> Accept: */*
> 
* Mark bundle as not supporting multiuse
< HTTP/1.1 301 Moved Permanently
< Location: https://whiskeyonthe.rocks/
< Date: Mon, 16 Nov 2020 00:39:28 GMT
< Content-Length: 17
< Content-Type: text/plain; charset=utf-8
< 
* Connection #0 to host whiskeyonthe.rocks left intact
Moved Permanentlyronin@ninjaserver:~$ curl -4v whiskeyonthe.rocks:443
*   Trying 185.193.127.125:443...
* TCP_NODELAY set
* Connected to whiskeyonthe.rocks (185.193.127.125) port 443 (#0)
> GET / HTTP/1.1
> Host: whiskeyonthe.rocks:443
> User-Agent: curl/7.68.0
> Accept: */*
> 
* Mark bundle as not supporting multiuse
< HTTP/1.1 404 Not Found
< Content-Type: text/plain; charset=utf-8
< X-Content-Type-Options: nosniff
< Date: Mon, 16 Nov 2020 00:39:38 GMT
< Content-Length: 19
< 
404 page not found
* Connection #0 to host whiskeyonthe.rocks left intact
ronin@ninjaserver:~$ curl -4v whiskeyonthe.rocks:8080
*   Trying 185.193.127.125:8080...
* TCP_NODELAY set
* connect to 185.193.127.125 port 8080 failed: Connection refused
* Failed to connect to whiskeyonthe.rocks port 8080: Connection refused
* Closing connection 0
curl: (7) Failed to connect to whiskeyonthe.rocks port 8080: Connection refused

netcat lookup for ports 80,443,8080 on the ip address

ronin@ninjaserver:~$ sudo nc -vnz -w 1 185.193.127.125 80
Connection to 185.193.127.125 80 port [tcp/*] succeeded!
ronin@ninjaserver:~$ sudo nc -vnz -w 1 185.193.127.125 443
Connection to 185.193.127.125 443 port [tcp/*] succeeded!
ronin@ninjaserver:~$ sudo nc -vnz -w 1 185.193.127.125 8080
nc: connect to 185.193.127.125 port 8080 (tcp) failed: Connection refused
ronin@ninjaserver:~$ sudo nc -4vnz -w 1 185.193.127.125 80
Connection to 185.193.127.125 80 port [tcp/*] succeeded!
ronin@ninjaserver:~$ sudo nc -4vnz -w 1 185.193.127.125 443
Connection to 185.193.127.125 443 port [tcp/*] succeeded!
ronin@ninjaserver:~$ sudo nc -4vnz -w 1 185.193.127.125 8080
nc: connect to 185.193.127.125 port 8080 (tcp) failed: Connection refused

netcat lookup for main domain for ports 80,443,8080

ronin@ninjaserver:~$ sudo nc -vnz -w 1 whiskeyonthe.rocks 80
nc: getaddrinfo for host "whiskeyonthe.rocks" port 80: Name or service not known
ronin@ninjaserver:~$ sudo nc -vnz -w 1 whiskeyonthe.rocks 443
nc: getaddrinfo for host "whiskeyonthe.rocks" port 443: Name or service not known
ronin@ninjaserver:~$ sudo nc -vnz -w 1 whiskeyonthe.rocks 8080
nc: getaddrinfo for host "whiskeyonthe.rocks" port 8080: Name or service not known
ronin@ninjaserver:~$ sudo nc -4vnz -w 1 http://whiskeyonthe.rocks 80
nc: getaddrinfo for host "http://whiskeyonthe.rocks" port 80: Name or service not known
ronin@ninjaserver:~$ sudo nc -4vnz -w 1 http://whiskeyonthe.rocks 443
nc: getaddrinfo for host "http://whiskeyonthe.rocks" port 443: Name or service not known
ronin@ninjaserver:~$ sudo nc -4vnz -w 1 http://whiskeyonthe.rocks 8080
nc: getaddrinfo for host "http://whiskeyonthe.rocks" port 8080: Name or service not known

netcat for subdomain on ports

ronin@ninjaserver:~$ sudo nc -vnz -w 1 traefik.whiskeyonthe.rocks 80
nc: getaddrinfo for host "traefik.whiskeyonthe.rocks" port 80: Name or service not known
ronin@ninjaserver:~$ sudo nc -vnz -w 1 traefik.whiskeyonthe.rocks 443
nc: getaddrinfo for host "traefik.whiskeyonthe.rocks" port 443: Name or service not known
ronin@ninjaserver:~$ sudo nc -vnz -w 1 traefik.whiskeyonthe.rocks 8080
nc: getaddrinfo for host "traefik.whiskeyonthe.rocks" port 8080: Name or service not known
ronin@ninjaserver:~$ sudo nc -4vnz -w 1 http://traefik.whiskeyonthe.rocks 80
nc: getaddrinfo for host "http://traefik.whiskeyonthe.rocks" port 80: Name or service not known
ronin@ninjaserver:~$ sudo nc -4vnz -w 1 http://traefik.whiskeyonthe.rocks 443
nc: getaddrinfo for host "http://traefik.whiskeyonthe.rocks" port 443: Name or service not known
ronin@ninjaserver:~$ sudo nc -4vnz -w 1 http://traefik.whiskeyonthe.rocks 8080
nc: getaddrinfo for host "http://traefik.whiskeyonthe.rocks" port 8080: Name or service not known