Endless 502 / forwarding when calling dashboard via subdomain #6123

Can treafik reached via treafik.mydomain.com
"traefik.http.routers.traefikv2.rule=Host(traefik.mydomain.com)"
I get only


What did you do?

configured traefik to reach its dashboard via traefik.mydomain.com i

What did you expect to see?

when I call traefik.mydomain.com, it shell appear

What did you see instead?

endless waiting

Output of traefik version: (What version of Traefik are you using?)


root@Ubuntu18:/var/traefik# docker exec traefik traefik version
Version:      2.1.1
Codename:     cantal
Go version:   go1.13.5
Built:        2019-12-12T19:01:37Z
OS/Arch:      linux/amd64

What is your environment & configuration (arguments, toml, provider, platform, ...)?

docker compose

version: "3.7"

services:
  traefik-reverse-proxy:   
    # The official v2.0 Traefik docker image
    image: traefik:latest #traefik:v2.0
    container_name: "traefik"       
    command:
      # tell Traefik to listen to docker 
      - --providers.docker          # (Default: true)
      # Enable api/dashboard / (set the docker endpoint to speak to docker's API)
      - --api=true                    # (Default: false)
      # Activate dashboard. 
      - --api.dashboard               # (Default: true)
      # Enables the web UI / Traefik will listen on port 8080 by default for API request. / Activate API directly on the entryPoint named traefik. (Default: false) --> port '8080'v= entryPoint 'traefik', overrides --api
      - --api.insecure=true         # (Default: false) 
      # Enable additional endpoints for debugging and profiling. 
      - --api.debug=true            # (Default: false)
      # set debug level of the log
      - --log.level=DEBUG    
      # writting the accesslog
      - --accesslog=true    
      # defining the storage location inside the container, log file is written inside the container. To make it avaiable on the host it is mounted, see volumes section
      - --log.filePath=/var/traefik-container/logs/traefik-log.log
      - --accesslog.filepath=/var/traefik-container/logs/traefik-access.log
      # override the default port 80 entrypoint name  by "web"
      - --entrypoints.web.address=:80
      # declare the entrypointname for port 443
      - --entrypoints.websecure.address=:443
      #--providers.docker.endpoint=unix:///var/run/docker.sock    
      # Let's Encrypt
      - --certificatesresolvers.mytlschallenge.acme.tlschallenge=true
      - --certificatesresolvers.mytlschallenge.acme.email=my@email.com
      - --certificatesresolvers.mytlschallenge.acme.storage=/var/traefik-container/letsencrypt/acme.json
    ports:
      # The HTTP port
      - "80:80"
      # The HTTPS port
      - "443:443"
      # The Web UI (enabled by --api.insecure=true)
      - "8080:8080"
    volumes:        # syntax --> host-location:path-in-container
      # So that Traefik can listen to the Docker events
      - /var/run/docker.sock:/var/run/docker.sock
      - /var/traefik/log:/var/traefik-container/logs
      - /var/traefik/letsencrypt:/var/traefik-container/letsencrypt
    labels:
      - "traefik.enable=true"
      - "traefik.docker.network=bridge_proxy_traefikv2"
      - "traefik.http.routers.traefikv2.rule=Host(`traefik.fairbnb.community`)"
      - "traefik.http.routers.traefikv2.entrypoints=web"
      - "traefik.http.services.traefikv2.loadBalancer.server.port=80"

    networks:
      - traefik
      #- default
      
   #Tiny Go webserver that prints os information and HTTP request to output
#  whoami:
#    image: "containous/whoami"
#    container_name: "whoami"
#    labels:
#      - "traefik.enable=true"
#      - "traefik.docker.network=bridge_proxy_traefikv2"
#      - "traefik.http.routers.whoami.rule=Host(`fairbnb.community`)"
#      - "traefik.http.routers.whoami.entrypoints=web"
#      - "traefik.http.services.whoami.loadBalancer.server.port=80"
#    networks:
#      - traefik
#      #- default
      
  whoami_sub:
    image: "containous/whoami"
    container_name: "whoami_sub"
    labels:
      - "traefik.enable=true"
      - "traefik.name=whoami_sub"
      - "traefik.docker.network=bridge_proxy_traefikv2"
      - "traefik.http.routers.whoami_sub.rule=Host(`whoami.fairbnb.community`)"
      - "traefik.http.routers.whoami_sub.entrypoints=web"
      #- "traefik.http.services.whoami_sub.loadBalancer.server.port=80"
    networks:
      - traefik
      - default

networks:
  traefik:
    external:
      name: bridge_proxy_traefikv2

Hello,

because you are using the API in the insecure mode (--api.insecure=true) you have to use the port 8080

    labels:
      - "traefik.enable=true"
      - "traefik.docker.network=bridge_proxy_traefikv2"
      - "traefik.http.routers.traefikv2.rule=Host(`traefik.fairbnb.community`)"
      - "traefik.http.routers.traefikv2.entrypoints=web"
      - "traefik.http.services.traefikv2.loadBalancer.server.port=8080"

But we don't recommend to use the insecure mode, we recommend to use the secure mode (api@internal)

I also recommend to use an explicit version (v2.1.1) instead of latest

version: "3.7"

services:
  traefik-reverse-proxy:   
    image: traefik:v2.1.1
    container_name: "traefik"       
    command:
      - --providers.docker
      - --providers.docker.exposedbydefault=false
      - --providers.docker.network=bridge_proxy_traefikv2
      - --api
      - --log.level=INFO
      - --log.filePath=/var/traefik-container/logs/traefik-log.log
      - --accesslog=true    
      - --accesslog.filepath=/var/traefik-container/logs/traefik-access.log
      - --entrypoints.web.address=:80
      - --entrypoints.websecure.address=:443
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /var/traefik/log:/var/traefik-container/logs
      - /var/traefik/letsencrypt:/var/traefik-container/letsencrypt
    labels:
      traefik.enable: true
      traefik.http.routers.traefikv2.rule: Host(`traefik.fairbnb.community`)
      traefik.http.routers.traefikv2.entrypoints: web
      traefik.http.routers.traefikv2.service: api@internal
    networks:
      - traefik
      
  whoami_sub:
    image: "containous/whoami"
    container_name: "whoami_sub"
    labels:
      traefik.enable: true
      traefik.http.routers.whoami_sub.rule: Host(`whoami.fairbnb.community`)
      traefik.http.routers.whoami_sub.entrypoints: web
      # traefik.http.services.whoami_sub.loadBalancer.server.port: 80
    networks:
      - traefik

networks:
  traefik:
    external:
      name: bridge_proxy_traefikv2

Recommend read:

thank you for replying that quickly, it has taken my a while to answer as I split the config into a docker-compose file and Traefik configuration file. This led to unexpected challenges but that is different story for now.

  1. reads

    I know that and it helped (@dduportal) me really a lot to understand how to do the basic.

  2. api@internal

    I will do plus password protection but I want to start simple first and grow by experience. What is concept behind api@interal vs IP-address:port?

  3. docs -> API
    what is the meaning of {} in

    # Static Configuration
    api: {}
    

    Traefik API Documentation - Traefik what could help here is to say to get the outputs of the endpoints by you type http://yourdomain.com:8080/api/version like down in another page for http://yourdomain.com:8080/api/rawdata`


Here my are current configs

traefik-config.yaml
global:
  checkNewVersion: true
#  sendAnonymousUsage: true
#serversTransport:
#  insecureSkipVerify: true
#  rootCAs:
#  - foobar
#  maxIdleConnsPerHost: 42
#  forwardingTimeouts:
#    dialTimeout: 42
#    responseHeaderTimeout: 42
#    idleConnTimeout: 42

entryPoints:
  web:
    address: ":80"
    #transport:
    #  lifeCycle:
    #    requestAcceptGraceTimeout: 42
    #    graceTimeOut: 42
    #  respondingTimeouts:
    #    readTimeout: 42
    #    writeTimeout: 42
    #    idleTimeout: 42
    #proxyProtocol:
    #  insecure: true
    #  trustedIPs:
    #  - foobar
    #  - foobar
    #forwardedHeaders:
    #  insecure: true
    #  trustedIPs:
    #  - foobar
    #  - foobar
  websecure:
     address: ":443"
  #traefik_dashboard:
     #address: ":8080"     

api:    # Activate dashboard. 
  # Enables the web UI @ port 8080/ Traefik will listen on port 8080 by default for API request. / Activate API directly on the entryPoint named traefik. (Default: false) --> port '8080'v= entryPoint 'traefik', overrides --api  
  insecure: true
  # Activate dashboard. 
  dashboard: true
  # Enable additional endpoints for debugging and profiling. 
  debug: true
  
providers:
# providersThrottleDuration: 42
  docker:
    #constraints: foobar
    watch: true
    # Docker server endpoint. Can be a tcp or a unix socket endpoint. (Default: unix:///var/run/docker.sock)
    #endpoint: unix:///var/run/docker.sock
    #defaultRule: foobar
    #tls:
    #  ca: foobar
    #  caOptional: true
    #  cert: foobar
    #  key: foobar
    #  insecureSkipVerify: true
    #exposedByDefault: true
    #useBindPortIP: true
    # swarmMode: true
    # network: foobar
    # swarmModeRefreshSeconds: 42  

not used currently-metrics:    # this is only hear to fold/unfold the commented region in  Notepad++
#metrics:
#  prometheus:
#    buckets:
#    - 42
#    - 42
#    addEntryPointsLabels: true
#    addServicesLabels: true
#    entryPoint: foobar
#    manualRouting: true
#  datadog:
#    address: foobar
#    pushInterval: 42
#    addEntryPointsLabels: true
#    addServicesLabels: true
#  statsD:
#    address: foobar
#    pushInterval: 42
#    addEntryPointsLabels: true
#    addServicesLabels: true
#    prefix: traefik
#  influxDB:
#    address: foobar
#    protocol: foobar
#    pushInterval: 42
#    database: foobar
#    retentionPolicy: foobar
#    username: foobar
#    password: foobar
#    addEntryPointsLabels: true
#    addServicesLabels: true
#ping:
#  entryPoint: foobar
#  manualRouting: true
   #
log:
  # set debug level of the log
  level: DEBUG
  # defining the storage location inside the container, log file is written inside the container. To make it avaiable on the host it is mounted, see volumes section in docker-compose file
    # chosen based on https://unix.stackexchange.com/questions/104936/where-are-all-the-posibilities-of-storing-a-log-file
  filePath: /var/log/traefik-log.log
  # Traefik log format: json | common (Default: common)
  #format: common
  
accessLog:      # writting the accesslog
  # defining the storage location inside the container, log file is written inside the container. To make it avaiable on the host it is mounted, see volumes section in docker-compose file
    # chosen based on https://unix.stackexchange.com/questions/104936/where-are-all-the-posibilities-of-storing-a-log-file  
  filePath: /var/log/traefik-access.log
  # Access log format: json | common (Default: common)
  #format: common
#  filters:
#    statusCodes:
#    - foobar
#    - foobar
#    retryAttempts: true
#    minDuration: 42
#  fields:
#    defaultMode: foobar
#    names:
#      name0: foobar
#      name1: foobar
#    headers:
#      defaultMode: foobar
#      names:
#        name0: foobar
#        name1: foobar
#  bufferingSize: 42
   #
   
not used currently-tracing:    # this is only hear to fold/unfold the commented region in  Notepad++
#tracing:   
#  serviceName: foobar
#  spanNameLimit: 42
#  jaeger:
#    samplingServerURL: foobar
#    samplingType: foobar
#    samplingParam: 42
#    localAgentHostPort: foobar
#    gen128Bit: true
#    propagation: foobar
#    traceContextHeaderName: foobar
#    collector:
#      endpoint: foobar
#      user: foobar
#      password: foobar
#  zipkin:
#    httpEndpoint: foobar
#    sameSpan: true
#    id128Bit: true
#    sampleRate: 42
#  datadog:
#    localAgentHostPort: foobar
#    globalTag: foobar
#    debug: true
#    prioritySampling: true
#    traceIDHeaderName: foobar
#    parentIDHeaderName: foobar
#    samplingPriorityHeaderName: foobar
#    bagagePrefixHeaderName: foobar
#  instana:
#    localAgentHost: foobar
#    localAgentPort: 42
#    logLevel: foobar
#  haystack:
#    localAgentHost: foobar
#    localAgentPort: 42
#    globalTag: foobar
#    traceIDHeaderName: foobar
#    parentIDHeaderName: foobar
#    spanIDHeaderName: foobar
#    baggagePrefixHeaderName: foobar
   #
not used currently-hostResolver:     # this is only hear to fold/unfold the commented region in  Notepad++
#hostResolver:
#  cnameFlattening: true
#  resolvConfig: foobar
#  resolvDepth: 42
  #
certificatesResolvers:
  tlsChallenge_letsencrypt:
    acme:
      email: my.secret@gmail.com
      # CA server to use. (Default: https://acme-v02.api.letsencrypt.org/directory)
      #caServer:        
      # location chosen based on  on https://www.getpagespeed.com/server-setup/ssl-directory and https://serverfault.com/questions/62496/ssl-certificate-location-on-unix-linux
      storage: /etc/ssl/certs/letsencrypt/acme.json
      # KeyType used for generating certificate private key. Allow value 'EC256', 'EC384', 'RSA2048', 'RSA4096', 'RSA8192'. (Default: RSA4096)
      #keyType: {}         
      #dnsChallenge:
        # provider: foobar
        # delayBeforeCheck: 42
        # resolvers:
        # - foobar
        # - foobar
        # disablePropagationCheck: true
      #httpChallenge:
        # entryPoint: foobar
      tlsChallenge: true
  #CertificateResolver1:
  #  acme:
  #    email: my.secret@gmail.com
  #    caServer: foobar
  #    storage: foobar
  #    keyType: foobar
  #    dnsChallenge:
  #      provider: foobar
  #      delayBeforeCheck: 42
  #      resolvers:
  #      - foobar
  #      - foobar
  #      disablePropagationCheck: true
  #    httpChallenge:
  #      entryPoint: foobar
  #    tlsChallenge: {}
traefikV2.yaml
version: "3.7"

services:
  traefik-reverse-proxy:   
    # The official v2.0 Traefik docker image
    image: traefik:latest 
    #image: traefik:v2.0
    container_name: "traefik"       
    command:
    # to work with custom traefil configuration file you have to declare the local path and mount the location on the host, see volume section
    - --configFile=/etc/traefik/traefik-config.yaml
    ports:
      # The HTTP port
      - "80:80"
      # The HTTPS port
      - "443:443"
      # The Web UI (enabled by --api.insecure=true)
      - "8080:8080"
    volumes:        # syntax --> host-location:path-in-container, see https://docs.docker.com/compose/compose-file/#volumes
      # So that Traefik can listen to the Docker events
      - /var/run/docker.sock:/var/run/docker.sock
      # mount the location for the log files to the host, so that I can read them on the host
        # chosen based on https://unix.stackexchange.com/questions/104936/where-are-all-the-posibilities-of-storing-a-log-file
      - /var/log/traefik:/var/log
      # mount the location for the certifcates to the host, so that I can read them on the host
        #based on https://www.getpagespeed.com/server-setup/ssl-directory and https://serverfault.com/questions/62496/ssl-certificate-location-on-unix-linux
      - /etc/ssl/certs/traefik/letsencrypt:/etc/ssl/certs/letsencrypt
      # I use a customized "traefik.toml", so it has to be mounted into the traefik container (or stored there), combine 
        # https://stackoverflow.com/questions/47382756/why-is-my-traefik-toml-file-not-be-read-by-docker-compose-configuration
        # https://stackoverflow.com/questions/57200728/can-the-default-location-of-the-traefik-configuration-file-be-changed-in-the-off
        # https://stackoverflow.com/questions/45902133/how-to-use-custom-traefik-toml-file
        # https://docs.traefik.io/getting-started/configuration-overview/
      - /opt/traefik/traefik-config.yaml:/etc/traefik/traefik-config.yaml
    labels:
      - "traefik.enable=true"
      - "traefik.docker.network=bridge_proxy_traefikv2"
      - "traefik.http.routers.traefik_dashboard.rule=Host(`traefik.fairbnb.community`)"
      - "traefik.http.routers.traefik_dashboard.entrypoints=web"
      - "traefik.http.services.traefik_dashboard.loadBalancer.server.port=8080"
      #- "traefik.http.routers.traefik_dashboard.service=api@internal"

    networks:
      - traefik
      #- default
      
   #Tiny Go webserver that prints os information and HTTP request to output
   #  whoami:
   #    image: "containous/whoami"
   #    container_name: "whoami"
   #    labels:
   #      - "traefik.enable=true"
   #      - "traefik.docker.network=bridge_proxy_traefikv2"
   #      - "traefik.http.routers.whoami.rule=Host(`fairbnb.community`)"
   #      - "traefik.http.routers.whoami.entrypoints=web"
   #      - "traefik.http.services.whoami.loadBalancer.server.port=80"
   #    networks:
   #      - traefik
   #      #- default
      
  whoami_sub:
    image: "containous/whoami"
    container_name: "whoami_sub"
    labels:
      - "traefik.enable=true"
      - "traefik.name=whoami_sub"
      - "traefik.docker.network=bridge_proxy_traefikv2"
      - "traefik.http.routers.whoami_sub.rule=Host(`whoami.fairbnb.community`)"
      - "traefik.http.routers.whoami_sub.entrypoints=web"
      #- "traefik.http.services.whoami_sub.loadBalancer.server.port=80"
    networks:
      - traefik
      #- default

networks:
  traefik:
    external:
      name: bridge_proxy_traefikv2

I changed to 8080, thus the redirect loop is history but there is a new problem. I get redirected to

http://traefik.fairbnb.community/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/

I tried also

      - "traefik.http.services.traefik_dashboard.loadBalancer.server.port=8080"
      #- "traefik.http.routers.traefik_dashboard.service=api@internal"

the logs are in thex next reply

could it be related to a string substitute in the url by the middleware
image image

just noticed


although dahsboard is ok



traefik-access.log
185.45.238.16 - - [03/Jan/2020:20:35:49 +0000] "GET /api/overview HTTP/1.1" 200 334 "-" "-" 1 "api@internal" - 12ms
185.45.238.16 - - [03/Jan/2020:20:35:49 +0000] "GET /api/entrypoints HTTP/1.1" 200 489 "-" "-" 2 "api@internal" - 1ms
185.45.238.16 - - [03/Jan/2020:20:35:54 +0000] "GET /api/overview HTTP/1.1" 200 334 "-" "-" 3 "api@internal" - 0ms
185.45.238.16 - - [03/Jan/2020:20:35:55 +0000] "GET /api/overview HTTP/1.1" 200 334 "-" "-" 4 "api@internal" - 0ms
185.45.238.16 - - [03/Jan/2020:20:35:55 +0000] "GET /api/http/services?search=&status=&per_page=10&page=1 HTTP/1.1" 200 971 "-" "-" 5 "api@internal" - 4ms
185.46.214.116 - - [03/Jan/2020:20:36:19 +0000] "GET / HTTP/1.1" 200 740 "-" "-" 6 "whoami_sub@docker" "http://172.20.0.2:80" 40ms
185.46.214.116 - - [03/Jan/2020:20:38:01 +0000] "GET / HTTP/1.1" - - "-" "-" 7 - - 0ms
185.46.214.116 - - [03/Jan/2020:20:38:03 +0000] "GET /service-worker-29f380effd40cdaa98cfa88ea74b0c66ba6ca6c901f666253c7592d49fa5e7d4.js HTTP/1.1" - - "-" "-" 8 - - 0ms
185.46.214.116 - - [03/Jan/2020:20:39:02 +0000] "GET /service-worker-29f380effd40cdaa98cfa88ea74b0c66ba6ca6c901f666253c7592d49fa5e7d4.js HTTP/1.1" - - "-" "-" 9 - - 0ms
185.46.214.116 - - [03/Jan/2020:20:39:44 +0000] "GET /dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/ HTTP/1.1" 404 19 "-" "-" 10 "traefik_dashboard@docker" - 1ms
89.248.167.131 - - [03/Jan/2020:21:09:40 +0000] "GET / HTTP/1.1" 301 17 "-" "-" 11 "dashboard@internal" - 7ms
89.248.167.131 - - [03/Jan/2020:21:09:40 +0000] "GET /dashboard/ HTTP/1.1" 301 17 "-" "-" 12 "dashboard@internal" - 0ms
89.248.167.131 - - [03/Jan/2020:21:09:40 +0000] "GET /dashboard/dashboard/ HTTP/1.1" 301 17 "-" "-" 13 "dashboard@internal" - 0ms
89.248.167.131 - - [03/Jan/2020:21:09:40 +0000] "GET /dashboard/dashboard/dashboard/ HTTP/1.1" 301 17 "-" "-" 14 "dashboard@internal" - 0ms
89.248.167.131 - - [03/Jan/2020:21:09:40 +0000] "GET /dashboard/dashboard/dashboard/dashboard/ HTTP/1.1" 301 17 "-" "-" 15 "dashboard@internal" - 0ms
89.248.167.131 - - [03/Jan/2020:21:09:40 +0000] "GET /dashboard/dashboard/dashboard/dashboard/dashboard/ HTTP/1.1" 301 17 "-" "-" 16 "dashboard@internal" - 0ms
89.248.167.131 - - [03/Jan/2020:21:09:40 +0000] "GET /dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/ HTTP/1.1" 301 17 "-" "-" 17 "dashboard@internal" - 0ms
89.248.167.131 - - [03/Jan/2020:21:09:40 +0000] "GET /dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/ HTTP/1.1" 301 17 "-" "-" 18 "dashboard@internal" - 0ms
89.248.167.131 - - [03/Jan/2020:21:09:40 +0000] "GET /dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/ HTTP/1.1" 301 17 "-" "-" 19 "dashboard@internal" - 0ms
89.248.167.131 - - [03/Jan/2020:21:09:40 +0000] "GET /dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/ HTTP/1.1" 301 17 "-" "-" 20 "dashboard@internal" - 0ms
89.248.167.131 - - [03/Jan/2020:21:09:40 +0000] "GET /dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/ HTTP/1.1" 301 17 "-" "-" 21 "dashboard@internal" - 0ms
89.248.167.131 - - [03/Jan/2020:21:09:40 +0000] "GET /favicon.ico HTTP/1.1" 404 19 "-" "-" 22 "dashboard@internal" - 0ms
95.213.177.125 - - [03/Jan/2020:21:12:24 +0000] "POST /azenv.php?auth=157808594421&a=PSCMN&i=2650096614&p=8080 HTTP/1.1" 404 19 "-" "-" 23 "dashboard@internal" - 0ms
185.45.238.16 - - [03/Jan/2020:21:14:50 +0000] "GET /api/http/services/api@internal HTTP/1.1" 200 135 "-" "-" 24 "api@internal" - 0ms
185.45.238.16 - - [03/Jan/2020:21:14:50 +0000] "GET /api/http/routers/traefik_dashboard@docker HTTP/1.1" 200 181 "-" "-" 25 "api@internal" - 0ms
185.45.238.16 - - [03/Jan/2020:21:14:50 +0000] "GET /api/http/routers/api@internal HTTP/1.1" 200 186 "-" "-" 26 "api@internal" - 0ms
185.45.238.16 - - [03/Jan/2020:21:14:50 +0000] "GET /api/http/routers/debug@internal HTTP/1.1" 200 190 "-" "-" 27 "api@internal" - 0ms
202.158.1.122 - - [03/Jan/2020:21:20:58 +0000] "GET / HTTP/1.1" 301 17 "-" "-" 28 "dashboard@internal" - 0ms
172.20.0.1 - - [03/Jan/2020:21:21:39 +0000] "GET / HTTP/1.1" 404 19 "-" "-" 29 - - 0ms
157.245.67.230 - - [03/Jan/2020:21:23:13 +0000] "GET /api/version HTTP/1.1" 404 19 "-" "-" 30 - - 0ms
185.45.238.16 - - [03/Jan/2020:21:23:40 +0000] "GET /api/rawdata HTTP/1.1" 200 2218 "-" "-" 31 "api@internal" - 0ms
185.45.238.16 - - [03/Jan/2020:21:23:44 +0000] "GET /api/version HTTP/1.1" 200 39 "-" "-" 32 "api@internal" - 0ms
185.45.238.16 - - [03/Jan/2020:21:24:32 +0000] "GET /api/debug/vars HTTP/1.1" 404 19 "-" "-" 33 "api@internal" - 0ms
185.45.238.16 - - [03/Jan/2020:21:24:37 +0000] "GET /api/debug HTTP/1.1" 404 19 "-" "-" 34 "api@internal" - 0ms
185.45.238.16 - - [03/Jan/2020:21:24:51 +0000] "GET /debug HTTP/1.1" 404 19 "-" "-" 35 "debug@internal" - 0ms
185.45.238.16 - - [03/Jan/2020:21:24:55 +0000] "GET /debug/vars HTTP/1.1" 200 4811 "-" "-" 36 "debug@internal" - 3ms
185.45.238.16 - - [03/Jan/2020:21:25:25 +0000] "GET /debug/pprof/cmdline HTTP/1.1" 200 61 "-" "-" 37 "debug@internal" - 0ms
185.45.238.16 - - [03/Jan/2020:21:25:33 +0000] "GET /debug/pprof/trace HTTP/1.1" 200 6828 "-" "-" 38 "debug@internal" - 1005ms
185.45.238.16 - - [03/Jan/2020:21:25:43 +0000] "GET /debug/trace HTTP/1.1" 404 19 "-" "-" 39 "debug@internal" - 0ms
185.45.238.16 - - [03/Jan/2020:21:25:57 +0000] "GET /debug/pprof/trace HTTP/1.1" 200 6689 "-" "-" 40 "debug@internal" - 1002ms
66.220.12.132 - - [03/Jan/2020:21:37:32 +0000] "HEAD /dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/ HTTP/1.1" 405 0 "-" "-" 41 "traefik_dashboard@docker" - 0ms
66.220.12.132 - - [03/Jan/2020:21:37:33 +0000] "GET /dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/ HTTP/1.1" 404 19 "-" "-" 42 "traefik_dashboard@docker" - 0ms
traefik-log.log
time="2020-01-03T20:35:31Z" level=info msg="Traefik version 2.1.1 built on 2019-12-12T19:01:37Z"
time="2020-01-03T20:35:31Z" level=debug msg="Static configuration loaded {\"global\":{\"checkNewVersion\":true},\"serversTransport\":{\"maxIdleConnsPerHost\":200},\"entryPoints\":{\"traefik\":{\"address\":\":8080\",\"transport\":{\"lifeCycle\":{\"graceTimeOut\":10000000000},\"respondingTimeouts\":{\"idleTimeout\":180000000000}},\"forwardedHeaders\":{}},\"web\":{\"address\":\":80\",\"transport\":{\"lifeCycle\":{\"graceTimeOut\":10000000000},\"respondingTimeouts\":{\"idleTimeout\":180000000000}},\"forwardedHeaders\":{}},\"websecure\":{\"address\":\":443\",\"transport\":{\"lifeCycle\":{\"graceTimeOut\":10000000000},\"respondingTimeouts\":{\"idleTimeout\":180000000000}},\"forwardedHeaders\":{}}},\"providers\":{\"providersThrottleDuration\":2000000000,\"docker\":{\"watch\":true,\"endpoint\":\"unix:///var/run/docker.sock\",\"defaultRule\":\"Host(`{{ normalize .Name }}`)\",\"exposedByDefault\":true,\"swarmModeRefreshSeconds\":15000000000}},\"api\":{\"insecure\":true,\"dashboard\":true,\"debug\":true},\"log\":{\"level\":\"DEBUG\",\"filePath\":\"/var/log/traefik-log.log\",\"format\":\"common\"},\"accessLog\":{\"filePath\":\"/var/log/traefik-access.log\",\"format\":\"common\",\"filters\":{},\"fields\":{\"defaultMode\":\"keep\",\"headers\":{\"defaultMode\":\"drop\"}}},\"certificatesResolvers\":{\"tlsChallenge_letsencrypt\":{\"acme\":{\"email\":\"my.secret@gmail.com\",\"caServer\":\"https://acme-v02.api.letsencrypt.org/directory\",\"storage\":\"/etc/ssl/certs/letsencrypt/acme.json\",\"keyType\":\"RSA4096\",\"tlsChallenge\":{}}}}}"
time="2020-01-03T20:35:31Z" level=info msg="\nStats collection is disabled.\nHelp us improve Traefik by turning this feature on :)\nMore details on: https://docs.traefik.io/v2.0/contributing/data-collection/\n"
time="2020-01-03T20:35:31Z" level=info msg="Starting provider aggregator.ProviderAggregator {}"
time="2020-01-03T20:35:31Z" level=debug msg="Start TCP Server" entryPointName=web
time="2020-01-03T20:35:31Z" level=debug msg="Start TCP Server" entryPointName=websecure
time="2020-01-03T20:35:31Z" level=debug msg="Start TCP Server" entryPointName=traefik
time="2020-01-03T20:35:31Z" level=info msg="Starting provider *acme.Provider {\"email\":\"my.secret@gmail.com\",\"caServer\":\"https://acme-v02.api.letsencrypt.org/directory\",\"storage\":\"/etc/ssl/certs/letsencrypt/acme.json\",\"keyType\":\"RSA4096\",\"tlsChallenge\":{},\"ResolverName\":\"tlsChallenge_letsencrypt\",\"store\":{},\"ChallengeStore\":{}}"
time="2020-01-03T20:35:31Z" level=info msg="Testing certificate renew..." providerName=tlsChallenge_letsencrypt.acme
time="2020-01-03T20:35:31Z" level=info msg="Starting provider *docker.Provider {\"watch\":true,\"endpoint\":\"unix:///var/run/docker.sock\",\"defaultRule\":\"Host(`{{ normalize .Name }}`)\",\"exposedByDefault\":true,\"swarmModeRefreshSeconds\":15000000000}"
time="2020-01-03T20:35:31Z" level=info msg="Starting provider *traefik.Provider {}"
time="2020-01-03T20:35:31Z" level=debug msg="Configuration received from provider tlsChallenge_letsencrypt.acme: {\"http\":{},\"tls\":{}}" providerName=tlsChallenge_letsencrypt.acme
time="2020-01-03T20:35:31Z" level=debug msg="Configuration received from provider internal: {\"http\":{\"routers\":{\"api\":{\"entryPoints\":[\"traefik\"],\"service\":\"api@internal\",\"rule\":\"PathPrefix(`/api`)\",\"priority\":2147483646},\"dashboard\":{\"entryPoints\":[\"traefik\"],\"middlewares\":[\"dashboard_redirect@internal\",\"dashboard_stripprefix@internal\"],\"service\":\"dashboard@internal\",\"rule\":\"PathPrefix(`/`)\",\"priority\":2147483645},\"debug\":{\"entryPoints\":[\"traefik\"],\"service\":\"api@internal\",\"rule\":\"PathPrefix(`/debug`)\",\"priority\":2147483646}},\"middlewares\":{\"dashboard_redirect\":{\"redirectRegex\":{\"regex\":\"^(http:\\\\/\\\\/[^:]+(:\\\\d+)?)/$\",\"replacement\":\"${1}/dashboard/\",\"permanent\":true}},\"dashboard_stripprefix\":{\"stripPrefix\":{\"prefixes\":[\"/dashboard/\",\"/dashboard\"]}}},\"services\":{\"api\":{},\"dashboard\":{}}},\"tcp\":{},\"tls\":{}}" providerName=internal
time="2020-01-03T20:35:31Z" level=debug msg="Adding certificate for domain(s) forum.fairbnb.community"
time="2020-01-03T20:35:31Z" level=debug msg="No default certificate, generating one"
time="2020-01-03T20:35:31Z" level=debug msg="Provider connection established with docker 19.03.5 (API 1.40)" providerName=docker
time="2020-01-03T20:35:31Z" level=debug msg="Configuration received from provider docker: {\"http\":{\"routers\":{\"discourse\":{\"entryPoints\":[\"web\"],\"service\":\"discourse\",\"rule\":\"Host(`forum.fairbnb.community`)\",\"tls\":{\"certResolver\":\"tlsChallenge_letsencrypt\"}},\"traefik_dashboard\":{\"entryPoints\":[\"web\"],\"service\":\"api@internal\",\"rule\":\"Host(`traefik.fairbnb.community`)\"},\"whoami_sub\":{\"entryPoints\":[\"web\"],\"service\":\"whoami-sub-10-docker-composeyml-files\",\"rule\":\"Host(`whoami.fairbnb.community`)\"}},\"services\":{\"discourse\":{\"loadBalancer\":{\"servers\":[{\"url\":\"http://172.20.0.4:80\"}],\"passHostHeader\":true}},\"traefik-reverse-proxy-10-docker-composeyml-files\":{\"loadBalancer\":{\"servers\":[{\"url\":\"http://172.20.0.3:80\"}],\"passHostHeader\":true}},\"whoami-sub-10-docker-composeyml-files\":{\"loadBalancer\":{\"servers\":[{\"url\":\"http://172.20.0.2:80\"}],\"passHostHeader\":true}}}},\"tcp\":{}}" providerName=docker
time="2020-01-03T20:35:31Z" level=debug msg="Adding certificate for domain(s) forum.fairbnb.community"
time="2020-01-03T20:35:31Z" level=debug msg="No default certificate, generating one"
time="2020-01-03T20:35:31Z" level=debug msg="Added outgoing tracing middleware api@internal" middlewareName=tracing middlewareType=TracingForwarder entryPointName=traefik routerName=api@internal
time="2020-01-03T20:35:31Z" level=debug msg="Added outgoing tracing middleware dashboard@internal" entryPointName=traefik routerName=dashboard@internal middlewareName=tracing middlewareType=TracingForwarder
time="2020-01-03T20:35:31Z" level=debug msg="Creating middleware" routerName=dashboard@internal middlewareName=dashboard_stripprefix@internal middlewareType=StripPrefix entryPointName=traefik
time="2020-01-03T20:35:31Z" level=debug msg="Adding tracing to middleware" middlewareName=dashboard_stripprefix@internal entryPointName=traefik routerName=dashboard@internal
time="2020-01-03T20:35:31Z" level=debug msg="Creating middleware" entryPointName=traefik routerName=dashboard@internal middlewareName=dashboard_redirect@internal middlewareType=RedirectRegex
time="2020-01-03T20:35:31Z" level=debug msg="Setting up redirection from ^(http:\\/\\/[^:]+(:\\d+)?)/$ to ${1}/dashboard/" middlewareName=dashboard_redirect@internal middlewareType=RedirectRegex entryPointName=traefik routerName=dashboard@internal
time="2020-01-03T20:35:31Z" level=debug msg="Adding tracing to middleware" routerName=dashboard@internal middlewareName=dashboard_redirect@internal entryPointName=traefik
time="2020-01-03T20:35:31Z" level=debug msg="Added outgoing tracing middleware api@internal" entryPointName=traefik routerName=debug@internal middlewareName=tracing middlewareType=TracingForwarder
time="2020-01-03T20:35:31Z" level=debug msg="Creating middleware" entryPointName=traefik middlewareName=traefik-internal-recovery middlewareType=Recovery
time="2020-01-03T20:35:31Z" level=debug msg="Adding certificate for domain(s) forum.fairbnb.community"
time="2020-01-03T20:35:31Z" level=debug msg="No default certificate, generating one"
time="2020-01-03T20:35:32Z" level=debug msg="Added outgoing tracing middleware api@internal" routerName=debug@internal entryPointName=traefik middlewareType=TracingForwarder middlewareName=tracing
time="2020-01-03T20:35:32Z" level=debug msg="Added outgoing tracing middleware api@internal" entryPointName=traefik routerName=api@internal middlewareName=tracing middlewareType=TracingForwarder
time="2020-01-03T20:35:32Z" level=debug msg="Added outgoing tracing middleware dashboard@internal" routerName=dashboard@internal middlewareName=tracing middlewareType=TracingForwarder entryPointName=traefik
time="2020-01-03T20:35:32Z" level=debug msg="Creating middleware" middlewareType=StripPrefix entryPointName=traefik routerName=dashboard@internal middlewareName=dashboard_stripprefix@internal
time="2020-01-03T20:35:32Z" level=debug msg="Adding tracing to middleware" entryPointName=traefik routerName=dashboard@internal middlewareName=dashboard_stripprefix@internal
time="2020-01-03T20:35:32Z" level=debug msg="Creating middleware" entryPointName=traefik routerName=dashboard@internal middlewareType=RedirectRegex middlewareName=dashboard_redirect@internal
time="2020-01-03T20:35:32Z" level=debug msg="Setting up redirection from ^(http:\\/\\/[^:]+(:\\d+)?)/$ to ${1}/dashboard/" routerName=dashboard@internal middlewareType=RedirectRegex middlewareName=dashboard_redirect@internal entryPointName=traefik
time="2020-01-03T20:35:32Z" level=debug msg="Adding tracing to middleware" middlewareName=dashboard_redirect@internal entryPointName=traefik routerName=dashboard@internal
time="2020-01-03T20:35:32Z" level=debug msg="Creating middleware" middlewareType=Recovery entryPointName=traefik middlewareName=traefik-internal-recovery
time="2020-01-03T20:35:32Z" level=debug msg="Creating middleware" middlewareName=pipelining middlewareType=Pipelining entryPointName=web routerName=whoami_sub@docker serviceName=whoami-sub-10-docker-composeyml-files
time="2020-01-03T20:35:32Z" level=debug msg="Creating load-balancer" serviceName=whoami-sub-10-docker-composeyml-files entryPointName=web routerName=whoami_sub@docker
time="2020-01-03T20:35:32Z" level=debug msg="Creating server 0 http://172.20.0.2:80" serviceName=whoami-sub-10-docker-composeyml-files serverName=0 entryPointName=web routerName=whoami_sub@docker
time="2020-01-03T20:35:32Z" level=debug msg="Added outgoing tracing middleware whoami-sub-10-docker-composeyml-files" middlewareName=tracing middlewareType=TracingForwarder entryPointName=web routerName=whoami_sub@docker
time="2020-01-03T20:35:32Z" level=debug msg="Added outgoing tracing middleware api@internal" routerName=traefik_dashboard@docker middlewareName=tracing middlewareType=TracingForwarder entryPointName=web
time="2020-01-03T20:35:32Z" level=debug msg="Creating middleware" entryPointName=web middlewareName=traefik-internal-recovery middlewareType=Recovery
time="2020-01-03T20:35:32Z" level=debug msg="Creating middleware" middlewareName=pipelining middlewareType=Pipelining routerName=discourse@docker serviceName=discourse entryPointName=web
time="2020-01-03T20:35:32Z" level=debug msg="Creating load-balancer" routerName=discourse@docker serviceName=discourse entryPointName=web
time="2020-01-03T20:35:32Z" level=debug msg="Creating server 0 http://172.20.0.4:80" serverName=0 entryPointName=web routerName=discourse@docker serviceName=discourse
time="2020-01-03T20:35:32Z" level=debug msg="Added outgoing tracing middleware discourse" middlewareName=tracing middlewareType=TracingForwarder entryPointName=web routerName=discourse@docker
time="2020-01-03T20:35:32Z" level=debug msg="Creating middleware" entryPointName=web middlewareName=traefik-internal-recovery middlewareType=Recovery
time="2020-01-03T20:35:32Z" level=debug msg="Try to challenge certificate for domain [forum.fairbnb.community] found in HostSNI rule" providerName=tlsChallenge_letsencrypt.acme rule="Host(`forum.fairbnb.community`)" routerName=discourse@docker
time="2020-01-03T20:35:32Z" level=debug msg="Looking for provided certificate(s) to validate [\"forum.fairbnb.community\"]..." rule="Host(`forum.fairbnb.community`)" routerName=discourse@docker providerName=tlsChallenge_letsencrypt.acme
time="2020-01-03T20:35:32Z" level=debug msg="No ACME certificate generation required for domains [\"forum.fairbnb.community\"]." routerName=discourse@docker providerName=tlsChallenge_letsencrypt.acme rule="Host(`forum.fairbnb.community`)"
time="2020-01-03T20:36:19Z" level=debug msg="vulcand/oxy/roundrobin/rr: begin ServeHttp on request" Request="{\"Method\":\"GET\",\"URL\":{\"Scheme\":\"\",\"Opaque\":\"\",\"User\":null,\"Host\":\"\",\"Path\":\"/\",\"RawPath\":\"\",\"ForceQuery\":false,\"RawQuery\":\"\",\"Fragment\":\"\"},\"Proto\":\"HTTP/1.1\",\"ProtoMajor\":1,\"ProtoMinor\":1,\"Header\":{\"Accept\":[\"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\"],\"Accept-Encoding\":[\"gzip, deflate\"],\"Accept-Language\":[\"en-US,en;q=0.9,de;q=0.8,fr;q=0.7\"],\"Cache-Control\":[\"max-age=0\"],\"Connection\":[\"keep-alive\"],\"Cookie\":[\"_sm_au_d=1\"],\"Dnt\":[\"1\"],\"Upgrade-Insecure-Requests\":[\"1\"],\"User-Agent\":[\"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36\"],\"X-Forwarded-Host\":[\"whoami.fairbnb.community\"],\"X-Forwarded-Port\":[\"80\"],\"X-Forwarded-Proto\":[\"http\"],\"X-Forwarded-Server\":[\"85e95979203a\"],\"X-Real-Ip\":[\"185.46.214.116\"]},\"ContentLength\":0,\"TransferEncoding\":null,\"Host\":\"whoami.fairbnb.community\",\"Form\":null,\"PostForm\":null,\"MultipartForm\":null,\"Trailer\":null,\"RemoteAddr\":\"185.46.214.116:59966\",\"RequestURI\":\"/\",\"TLS\":null}"
time="2020-01-03T20:36:19Z" level=debug msg="vulcand/oxy/roundrobin/rr: Forwarding this request to URL" Request="{\"Method\":\"GET\",\"URL\":{\"Scheme\":\"\",\"Opaque\":\"\",\"User\":null,\"Host\":\"\",\"Path\":\"/\",\"RawPath\":\"\",\"ForceQuery\":false,\"RawQuery\":\"\",\"Fragment\":\"\"},\"Proto\":\"HTTP/1.1\",\"ProtoMajor\":1,\"ProtoMinor\":1,\"Header\":{\"Accept\":[\"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\"],\"Accept-Encoding\":[\"gzip, deflate\"],\"Accept-Language\":[\"en-US,en;q=0.9,de;q=0.8,fr;q=0.7\"],\"Cache-Control\":[\"max-age=0\"],\"Connection\":[\"keep-alive\"],\"Cookie\":[\"_sm_au_d=1\"],\"Dnt\":[\"1\"],\"Upgrade-Insecure-Requests\":[\"1\"],\"User-Agent\":[\"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36\"],\"X-Forwarded-Host\":[\"whoami.fairbnb.community\"],\"X-Forwarded-Port\":[\"80\"],\"X-Forwarded-Proto\":[\"http\"],\"X-Forwarded-Server\":[\"85e95979203a\"],\"X-Real-Ip\":[\"185.46.214.116\"]},\"ContentLength\":0,\"TransferEncoding\":null,\"Host\":\"whoami.fairbnb.community\",\"Form\":null,\"PostForm\":null,\"MultipartForm\":null,\"Trailer\":null,\"RemoteAddr\":\"185.46.214.116:59966\",\"RequestURI\":\"/\",\"TLS\":null}" ForwardURL="http://172.20.0.2:80"
time="2020-01-03T20:36:19Z" level=debug msg="vulcand/oxy/roundrobin/rr: completed ServeHttp on request" Request="{\"Method\":\"GET\",\"URL\":{\"Scheme\":\"\",\"Opaque\":\"\",\"User\":null,\"Host\":\"\",\"Path\":\"/\",\"RawPath\":\"\",\"ForceQuery\":false,\"RawQuery\":\"\",\"Fragment\":\"\"},\"Proto\":\"HTTP/1.1\",\"ProtoMajor\":1,\"ProtoMinor\":1,\"Header\":{\"Accept\":[\"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\"],\"Accept-Encoding\":[\"gzip, deflate\"],\"Accept-Language\":[\"en-US,en;q=0.9,de;q=0.8,fr;q=0.7\"],\"Cache-Control\":[\"max-age=0\"],\"Connection\":[\"keep-alive\"],\"Cookie\":[\"_sm_au_d=1\"],\"Dnt\":[\"1\"],\"Upgrade-Insecure-Requests\":[\"1\"],\"User-Agent\":[\"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36\"],\"X-Forwarded-Host\":[\"whoami.fairbnb.community\"],\"X-Forwarded-Port\":[\"80\"],\"X-Forwarded-Proto\":[\"http\"],\"X-Forwarded-Server\":[\"85e95979203a\"],\"X-Real-Ip\":[\"185.46.214.116\"]},\"ContentLength\":0,\"TransferEncoding\":null,\"Host\":\"whoami.fairbnb.community\",\"Form\":null,\"PostForm\":null,\"MultipartForm\":null,\"Trailer\":null,\"RemoteAddr\":\"185.46.214.116:59966\",\"RequestURI\":\"/\",\"TLS\":null}"

Could you clean your configuration (remove all commented parts), it's pretty hard to read.


I repeat: I strongly recommend to use the secure mode for routing, the insecure mode is not made to do routing.

To understand the concept:

The infinite loop (/dashboard/dashboard/...):

If you use the api@internal the infinite loop will disappear.

1 Like

Thx for quick and nice answer will clean up the files and repost tomorrow (~12h)
Need to :sleeping: know

bit delayed, my head has felt like going to exploded this morning

In

I substituted
- "traefik.http.services.traefik_dashboard.loadBalancer.server.port=8080"
by
- "traefik.http.routers.traefik_dashboard.service=api@internal"
and deactivated insecure by comment
#insecure: true

done

root@Ubuntu18:/opt/10_docker-compose.yml-files# docker exec -it traefik traefik version
Version:      2.1.1
Codename:     cantal
Go version:   go1.13.5
Built:        2019-12-12T19:01:37Z
OS/Arch:      linux/amd64

Here are now the configs without comments

docker-compose: traefikV2.yaml
root@Ubuntu18:/opt/10_docker-compose.yml-files# cat traefikV2.yaml | grep -v "#"
version: "3.7"

services:
  traefik-reverse-proxy:
    image: traefik:v2.1.1
    container_name: "traefik"
    command:
    - --configFile=/etc/traefik/traefik-config.yaml

    ports:
      - "80:80"
      - "443:443"
      - "8080:8080"

    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /var/log/traefik:/var/log
      - /etc/ssl/certs/traefik/letsencrypt:/etc/ssl/certs/letsencrypt
      - /opt/traefik/traefik-config.yaml:/etc/traefik/traefik-config.yaml

    labels:
      - "traefik.enable=true"
      - "traefik.docker.network=bridge_proxy_traefikv2"
      - "traefik.http.routers.traefik_dashboard-router.rule=Host(`traefik.fairbnb.community`)"
      - "traefik.http.routers.traefik_dashboard-router.entrypoints=web"
      - "traefik.http.routers.traefik_dashboard-router.service=api@internal"

    networks:
      - traefik


  whoami_viaSubdomain:
    image: "containous/whoami"
    container_name: "whoami_viaSubdomain"
    labels:
      - "traefik.enable=true"
      - "traefik.docker.network=bridge_proxy_traefikv2"
      - "traefik.http.routers.whoami_viaSubdomain-router.rule=Host(`whoami.fairbnb.community`)"
      - "traefik.http.routers.whoami_viaSubdomain-router.entrypoints=web"
    networks:
      - traefik

networks:
  traefik:
    external:
      name: bridge_proxy_traefikv2
Traefik configuration: traefik-config.yaml
root@Ubuntu18:/opt/traefik# cat traefik-config.yaml | grep -v "#"
global:
  checkNewVersion: true

entryPoints:
  web:
    address: ":80"
  websecure:
     address: ":443"

api:
  dashboard: true
  debug: true

providers:
  docker:
    watch: true

log:
  level: DEBUG
  filePath: /var/log/traefik-log.log

accessLog:
  filePath: /var/log/traefik-access.log

certificatesResolvers:
  tlsChallenge_letsencrypt:
    acme:
      email: my.secret@gmail.com
      storage: /etc/ssl/certs/letsencrypt/acme.json
      tlsChallenge: true

but still

http://traefik.fairbnb.community/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/

log:

time="2020-01-04T13:00:43Z" level=info msg="I have to go..."
time="2020-01-04T13:00:43Z" level=info msg="Stopping server gracefully"
time="2020-01-04T13:00:43Z" level=debug msg="Waiting 10s seconds before killing connections." entryPointName=traefik
time="2020-01-04T13:00:43Z" level=debug msg="Waiting 10s seconds before killing connections." entryPointName=web
time="2020-01-04T13:00:43Z" level=debug msg="Waiting 10s seconds before killing connections." entryPointName=websecure
time="2020-01-04T13:00:43Z" level=error msg="accept tcp [::]:8080: use of closed network connection" entryPointName=traefik
time="2020-01-04T13:00:43Z" level=debug msg="Entry point traefik closed" entryPointName=traefik
time="2020-01-04T13:00:43Z" level=error msg="accept tcp [::]:80: use of closed network connection" entryPointName=web
time="2020-01-04T13:00:43Z" level=debug msg="Entry point web closed" entryPointName=web
time="2020-01-04T13:00:43Z" level=error msg="accept tcp [::]:443: use of closed network connection" entryPointName=websecure
time="2020-01-04T13:00:43Z" level=debug msg="Entry point websecure closed" entryPointName=websecure
time="2020-01-04T13:00:43Z" level=info msg="Server stopped"
time="2020-01-04T13:00:43Z" level=info msg="Shutting down"
time="2020-01-04T13:01:15Z" level=info msg="Traefik version 2.1.1 built on 2019-12-12T19:01:37Z"
time="2020-01-04T13:01:15Z" level=debug msg="Static configuration loaded {\"global\":{\"checkNewVersion\":true},\"serversTransport\":{\"maxIdleConnsPerHost\":200},\"entryPoints\":{\"web\":{\"address\":\":80\",\"transport\":{\"lifeCycle\":{\"graceTimeOut\":10000000000},\"respondingTimeouts\":{\"idleTimeout\":180000000000}},\"forwardedHeaders\":{}},\"websecure\":{\"address\":\":443\",\"transport\":{\"lifeCycle\":{\"graceTimeOut\":10000000000},\"respondingTimeouts\":{\"idleTimeout\":180000000000}},\"forwardedHeaders\":{}}},\"providers\":{\"providersThrottleDuration\":2000000000,\"docker\":{\"watch\":true,\"endpoint\":\"unix:///var/run/docker.sock\",\"defaultRule\":\"Host(`{{ normalize .Name }}`)\",\"exposedByDefault\":true,\"swarmModeRefreshSeconds\":15000000000}},\"api\":{\"dashboard\":true,\"debug\":true},\"log\":{\"level\":\"DEBUG\",\"filePath\":\"/var/log/traefik-log.log\",\"format\":\"common\"},\"accessLog\":{\"filePath\":\"/var/log/traefik-access.log\",\"format\":\"common\",\"filters\":{},\"fields\":{\"defaultMode\":\"keep\",\"headers\":{\"defaultMode\":\"drop\"}}},\"certificatesResolvers\":{\"tlsChallenge_letsencrypt\":{\"acme\":{\"email\":\"my.secret@gmail.com\",\"caServer\":\"https://acme-v02.api.letsencrypt.org/directory\",\"storage\":\"/etc/ssl/certs/letsencrypt/acme.json\",\"keyType\":\"RSA4096\",\"tlsChallenge\":{}}}}}"
time="2020-01-04T13:01:15Z" level=info msg="\nStats collection is disabled.\nHelp us improve Traefik by turning this feature on :)\nMore details on: https://docs.traefik.io/v2.0/contributing/data-collection/\n"
time="2020-01-04T13:01:15Z" level=info msg="Starting provider aggregator.ProviderAggregator {}"
time="2020-01-04T13:01:15Z" level=debug msg="Start TCP Server" entryPointName=web
time="2020-01-04T13:01:15Z" level=debug msg="Start TCP Server" entryPointName=websecure
time="2020-01-04T13:01:15Z" level=info msg="Starting provider *acme.Provider {\"email\":\"my.secret@gmail.com\",\"caServer\":\"https://acme-v02.api.letsencrypt.org/directory\",\"storage\":\"/etc/ssl/certs/letsencrypt/acme.json\",\"keyType\":\"RSA4096\",\"tlsChallenge\":{},\"ResolverName\":\"tlsChallenge_letsencrypt\",\"store\":{},\"ChallengeStore\":{}}"
time="2020-01-04T13:01:15Z" level=info msg="Testing certificate renew..." providerName=tlsChallenge_letsencrypt.acme
time="2020-01-04T13:01:15Z" level=info msg="Starting provider *docker.Provider {\"watch\":true,\"endpoint\":\"unix:///var/run/docker.sock\",\"defaultRule\":\"Host(`{{ normalize .Name }}`)\",\"exposedByDefault\":true,\"swarmModeRefreshSeconds\":15000000000}"
time="2020-01-04T13:01:15Z" level=info msg="Starting provider *traefik.Provider {}"
time="2020-01-04T13:01:15Z" level=debug msg="Configuration received from provider tlsChallenge_letsencrypt.acme: {\"http\":{},\"tls\":{}}" providerName=tlsChallenge_letsencrypt.acme
time="2020-01-04T13:01:15Z" level=debug msg="Configuration received from provider internal: {\"http\":{\"services\":{\"api\":{},\"dashboard\":{}}},\"tcp\":{},\"tls\":{}}" providerName=internal
time="2020-01-04T13:01:15Z" level=debug msg="Adding certificate for domain(s) forum.fairbnb.community"
time="2020-01-04T13:01:15Z" level=debug msg="No default certificate, generating one"
time="2020-01-04T13:01:15Z" level=debug msg="Provider connection established with docker 19.03.5 (API 1.40)" providerName=docker
time="2020-01-04T13:01:15Z" level=debug msg="Configuration received from provider docker: {\"http\":{\"routers\":{\"discourse\":{\"entryPoints\":[\"web\"],\"service\":\"discourse\",\"rule\":\"Host(`forum.fairbnb.community`)\",\"tls\":{\"certResolver\":\"tlsChallenge_letsencrypt\"}},\"traefik_dashboard-router\":{\"entryPoints\":[\"web\"],\"service\":\"api@internal\",\"rule\":\"Host(`traefik.fairbnb.community`)\"}},\"services\":{\"discourse\":{\"loadBalancer\":{\"servers\":[{\"url\":\"http://172.20.0.4:80\"}],\"passHostHeader\":true}},\"traefik-reverse-proxy-10-docker-composeyml-files\":{\"loadBalancer\":{\"servers\":[{\"url\":\"http://172.20.0.3:80\"}],\"passHostHeader\":true}}}},\"tcp\":{}}" providerName=docker
time="2020-01-04T13:01:15Z" level=debug msg="Adding certificate for domain(s) forum.fairbnb.community"
time="2020-01-04T13:01:15Z" level=debug msg="No default certificate, generating one"
time="2020-01-04T13:01:16Z" level=debug msg="Provider event received {Status:start ID:d1af64943981c009df8183eb648ee6f28631e3a6fbbbffc7f189aaa348d7f3a3 From:containous/whoami Type:container Action:start Actor:{ID:d1af64943981c009df8183eb648ee6f28631e3a6fbbbffc7f189aaa348d7f3a3 Attributes:map[com.docker.compose.config-hash:6d6120866b11d1ca121fd826ec5b2f33c7fe1b62cbeded5f75aa44b9dc88a435 com.docker.compose.container-number:1 com.docker.compose.oneoff:False com.docker.compose.project:10_docker-composeyml-files com.docker.compose.service:whoami_viaSubdomain com.docker.compose.version:1.24.1 image:containous/whoami name:whoami_viaSubdomain traefik.docker.network:bridge_proxy_traefikv2 traefik.enable:true traefik.http.routers.whoami_viaSubdomain-router.entrypoints:web traefik.http.routers.whoami_viaSubdomain-router.rule:Host(`whoami.fairbnb.community`)]} Scope:local Time:1578142876 TimeNano:1578142876035189842}" providerName=docker
time="2020-01-04T13:01:16Z" level=debug msg="Adding certificate for domain(s) forum.fairbnb.community"
time="2020-01-04T13:01:16Z" level=debug msg="No default certificate, generating one"
time="2020-01-04T13:01:16Z" level=debug msg="Configuration received from provider docker: {\"http\":{\"routers\":{\"discourse\":{\"entryPoints\":[\"web\"],\"service\":\"discourse\",\"rule\":\"Host(`forum.fairbnb.community`)\",\"tls\":{\"certResolver\":\"tlsChallenge_letsencrypt\"}},\"traefik_dashboard-router\":{\"entryPoints\":[\"web\"],\"service\":\"api@internal\",\"rule\":\"Host(`traefik.fairbnb.community`)\"},\"whoami_viaSubdomain-router\":{\"entryPoints\":[\"web\"],\"service\":\"whoami-viaSubdomain-10-docker-composeyml-files\",\"rule\":\"Host(`whoami.fairbnb.community`)\"}},\"services\":{\"discourse\":{\"loadBalancer\":{\"servers\":[{\"url\":\"http://172.20.0.4:80\"}],\"passHostHeader\":true}},\"traefik-reverse-proxy-10-docker-composeyml-files\":{\"loadBalancer\":{\"servers\":[{\"url\":\"http://172.20.0.3:80\"}],\"passHostHeader\":true}},\"whoami-viaSubdomain-10-docker-composeyml-files\":{\"loadBalancer\":{\"servers\":[{\"url\":\"http://172.20.0.2:80\"}],\"passHostHeader\":true}}}},\"tcp\":{}}" providerName=docker
time="2020-01-04T13:01:16Z" level=debug msg="Added outgoing tracing middleware api@internal" routerName=traefik_dashboard-router@docker middlewareName=tracing middlewareType=TracingForwarder entryPointName=web
time="2020-01-04T13:01:16Z" level=debug msg="Creating middleware" entryPointName=web middlewareName=traefik-internal-recovery middlewareType=Recovery
time="2020-01-04T13:01:16Z" level=debug msg="Creating middleware" serviceName=discourse routerName=discourse@docker entryPointName=web middlewareName=pipelining middlewareType=Pipelining
time="2020-01-04T13:01:16Z" level=debug msg="Creating load-balancer" serviceName=discourse routerName=discourse@docker entryPointName=web
time="2020-01-04T13:01:16Z" level=debug msg="Creating server 0 http://172.20.0.4:80" entryPointName=web serviceName=discourse routerName=discourse@docker serverName=0
time="2020-01-04T13:01:16Z" level=debug msg="Added outgoing tracing middleware discourse" entryPointName=web routerName=discourse@docker middlewareName=tracing middlewareType=TracingForwarder
time="2020-01-04T13:01:16Z" level=debug msg="Creating middleware" middlewareName=traefik-internal-recovery entryPointName=web middlewareType=Recovery
time="2020-01-04T13:01:16Z" level=debug msg="Try to challenge certificate for domain [forum.fairbnb.community] found in HostSNI rule" rule="Host(`forum.fairbnb.community`)" providerName=tlsChallenge_letsencrypt.acme routerName=discourse@docker
time="2020-01-04T13:01:16Z" level=debug msg="Looking for provided certificate(s) to validate [\"forum.fairbnb.community\"]..." rule="Host(`forum.fairbnb.community`)" providerName=tlsChallenge_letsencrypt.acme routerName=discourse@docker
time="2020-01-04T13:01:16Z" level=debug msg="No ACME certificate generation required for domains [\"forum.fairbnb.community\"]." rule="Host(`forum.fairbnb.community`)" providerName=tlsChallenge_letsencrypt.acme routerName=discourse@docker
time="2020-01-04T13:01:17Z" level=debug msg="Adding certificate for domain(s) forum.fairbnb.community"
time="2020-01-04T13:01:17Z" level=debug msg="No default certificate, generating one"
time="2020-01-04T13:01:17Z" level=debug msg="Added outgoing tracing middleware api@internal" entryPointName=web routerName=traefik_dashboard-router@docker middlewareName=tracing middlewareType=TracingForwarder
time="2020-01-04T13:01:17Z" level=debug msg="Creating middleware" middlewareType=Pipelining middlewareName=pipelining entryPointName=web routerName=whoami_viaSubdomain-router@docker serviceName=whoami-viaSubdomain-10-docker-composeyml-files
time="2020-01-04T13:01:17Z" level=debug msg="Creating load-balancer" entryPointName=web routerName=whoami_viaSubdomain-router@docker serviceName=whoami-viaSubdomain-10-docker-composeyml-files
time="2020-01-04T13:01:17Z" level=debug msg="Creating server 0 http://172.20.0.2:80" entryPointName=web routerName=whoami_viaSubdomain-router@docker serviceName=whoami-viaSubdomain-10-docker-composeyml-files serverName=0
time="2020-01-04T13:01:17Z" level=debug msg="Added outgoing tracing middleware whoami-viaSubdomain-10-docker-composeyml-files" entryPointName=web routerName=whoami_viaSubdomain-router@docker middlewareName=tracing middlewareType=TracingForwarder
time="2020-01-04T13:01:17Z" level=debug msg="Creating middleware" middlewareName=traefik-internal-recovery middlewareType=Recovery entryPointName=web
time="2020-01-04T13:01:17Z" level=debug msg="Creating middleware" routerName=discourse@docker serviceName=discourse middlewareType=Pipelining middlewareName=pipelining entryPointName=web
time="2020-01-04T13:01:17Z" level=debug msg="Creating load-balancer" entryPointName=web routerName=discourse@docker serviceName=discourse
time="2020-01-04T13:01:17Z" level=debug msg="Creating server 0 http://172.20.0.4:80" entryPointName=web routerName=discourse@docker serviceName=discourse serverName=0
time="2020-01-04T13:01:17Z" level=debug msg="Added outgoing tracing middleware discourse" middlewareName=tracing middlewareType=TracingForwarder entryPointName=web routerName=discourse@docker
time="2020-01-04T13:01:17Z" level=debug msg="Creating middleware" middlewareName=traefik-internal-recovery middlewareType=Recovery entryPointName=web
time="2020-01-04T13:01:17Z" level=debug msg="Try to challenge certificate for domain [forum.fairbnb.community] found in HostSNI rule" providerName=tlsChallenge_letsencrypt.acme routerName=discourse@docker rule="Host(`forum.fairbnb.community`)"
time="2020-01-04T13:01:17Z" level=debug msg="Looking for provided certificate(s) to validate [\"forum.fairbnb.community\"]..." providerName=tlsChallenge_letsencrypt.acme routerName=discourse@docker rule="Host(`forum.fairbnb.community`)"
time="2020-01-04T13:01:17Z" level=debug msg="No ACME certificate generation required for domains [\"forum.fairbnb.community\"]." providerName=tlsChallenge_letsencrypt.acme routerName=discourse@docker rule="Host(`forum.fairbnb.community`)"
time="2020-01-04T13:07:48Z" level=error msg="Error while Peeking first byte: read tcp 172.20.0.3:443->78.158.205.169:33806: read: connection reset by peer"
time="2020-01-04T13:07:48Z" level=error msg="Error while Peeking first byte: read tcp 172.20.0.3:443->78.158.205.169:33807: read: connection reset by peer"

access log:

185.46.214.116 - - [04/Jan/2020:13:03:31 +0000] "GET /dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/ HTTP/1.1" 404 19 "-" "-" 1 "traefik_dashboard-router@docker" - 2ms
185.46.214.116 - - [04/Jan/2020:13:03:44 +0000] "GET /dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/ HTTP/1.1" 404 19 "-" "-" 2 "traefik_dashboard-router@docker" - 0ms
185.46.214.116 - - [04/Jan/2020:13:07:37 +0000] "GET /api/rawdata HTTP/1.1" 404 19 "-" "-" 3 - - 0ms
185.46.214.116 - - [04/Jan/2020:13:14:57 +0000] "GET /api/rawdata HTTP/1.1" 404 19 "-" "-" 4 - - 2ms

Your approach based on | grep -v "#" don't really work, some line are missing (by example volumes:)

But I cannot reproduce the /dashboard loop.

So I recommend to clean your environment (images, volumes, network), at least you have to run a docker-compose down, because I think you are running an old configuration.

I created a clean and working version:

global:
  checkNewVersion: true

entryPoints:
  web:
    address: :80
  websecure:
    address: :443  

api: {}

providers:
  docker:
    exposedByDefault: false
    network: bridge_proxy_traefikv2

log:
  level: DEBUG
  filePath: /var/log/traefik-log.log

accessLog: 
  filePath: /var/log/traefik-access.log

certificatesResolvers:
  tlsChallenge_letsencrypt:
    acme:
      email: my.secret@gmail.com
      storage: /etc/ssl/certs/letsencrypt/acme.json
      tlsChallenge: {}
version: "3.7"

services:
  traefik-reverse-proxy:   
    image: traefik:v2.1.1 
    container_name: traefik
    ports:
      - 80:80
      - 443:443
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /var/log/traefik:/var/log
      - /etc/ssl/certs/traefik/letsencrypt:/etc/ssl/certs/letsencrypt
      - /opt/traefik/traefik-config.yaml:/etc/traefik/traefik.yaml
    labels:
      traefik.enable: true
      traefik.http.routers.traefik_dashboard.rule: Host(`traefik.fairbnb.community`)
      traefik.http.routers.traefik_dashboard.entrypoints: web
      traefik.http.routers.traefik_dashboard.service: api@internal
    networks:
      - traefik
  
  whoami_sub:
    image: containous/whoami:v1.4.0
    container_name: whoami_sub
    labels:
      traefik.enable: true
      traefik.http.routers.whoami_sub.rule: Host(`whoami.fairbnb.community`)
      traefik.http.routers.whoami_sub.entrypoints: web
      # traefik.http.services.whoami_sub.loadBalancer.server.port: 80
    networks:
      - traefik

networks:
  traefik:
    external:
      name: bridge_proxy_traefikv2

Please take my files as this, without trying to add or change something.

my mind hasn't been fully up this morning, I missed that there was a comment behind volumes: but that is the only one, I added that one to my previous post
I did a line by compare in Notepadd++ here is the result:

  • You don't use quotes so I removed them, e.g. address: :80 instead address: ":80"

  • don't expose 8080
    - "8080:8080"

  • didn't know that I can change the file name when a file is mapped, so
    /opt/traefik/traefik-config.yaml:/etc/traefik/traefik.yaml
    instead of
    - /opt/traefik/traefik-config.yaml:/etc/traefik/traefik-config.yaml
    and remove the command
    - --configFile=/etc/traefik/traefik-config.yaml

  • don't label the network, this is only neccessary if a conteiner is in a different network isn't it?
    #- "traefik.docker.network=bridge_proxy_traefikv2"

  • use default settings for the api node.
    Does the {} in api: {} to activate the api node and use all default values for api.settingXY? It is the same case for tlsChallenge: {} isnt't it?

  • don't expose container by default, what is overriden on contaienr base by- traefik.enable=true, so
    exposedByDefault: false

  • What is the purposed of network: bridge_proxy_traefikv2. I read the docks where is said

    Defines a default docker network to use for connections to all containers.
    and

    traefik.docker.network

    - "traefik.docker.network=mynetwork"
    

    Overrides the default docker network to use for connections to the container.

    If a container is linked to several networks, be sure to set the proper network name (you can check this with docker inspect <container_id> ), otherwise it will randomly pick one (depending on how docker is returning them).

    What does it mean? It only defines the network, through which network traefic is routed through by Traefik if Traefik and the service container is linked to the same multiple networks?



I did always docker-compose traefikV2 down. This resulted in always in an empty docker ps -a. Occasionally, docker-compose froze but even after down/reboot/up the behaviour is the same.

Chrome network screenshot

the log is in the next reply


Did again a reboot. In addition, I cleared the browser cache et voilà:


:partying_face: :partying_face: :partying_face: :partying_face: :partying_face: :partying_face:

There are two challenges remaining:

  1. what happend to the Middleware, shown before

    Are the they somehow related to:
    Dashboard behind PathPrefix in 2.0 fails to load static assets · Issue #5374 · containous/traefik
    How to add path prefix to api endpoints? - Traefik v2 (latest) - Traefik Labs Community Forum

  2. I still have an error in the log
    time="2020-01-04T20:27:59Z" level=error msg="Error while Peeking first byte: read tcp 172.20.0.4:80->178.57.212.200:51542: read: connection reset by peer"

    access log
    
    185.45.238.16 - - [04/Jan/2020:20:26:14 +0000] "GET /api/overview HTTP/1.1" 200 334 "-" "-" 1 "traefik_dashboard-router@docker" - 2ms
    185.45.238.16 - - [04/Jan/2020:20:26:19 +0000] "GET /api/overview HTTP/1.1" 200 334 "-" "-" 2 "traefik_dashboard-router@docker" - 0ms
    185.45.238.16 - - [04/Jan/2020:20:26:23 +0000] "GET /api/overview HTTP/1.1" 200 334 "-" "-" 3 "traefik_dashboard-router@docker" - 0ms
    185.45.238.16 - - [04/Jan/2020:20:26:26 +0000] "GET /api/overview HTTP/1.1" 200 334 "-" "-" 4 "traefik_dashboard-router@docker" - 0ms
    185.46.214.116 - - [04/Jan/2020:20:26:26 +0000] "GET /api/http/services?search=&status=&per_page=10&page=1 HTTP/1.1" 200 939 "-" "-" 5 "traefik_dashboard-router@docker" - 0ms
    185.46.214.116 - - [04/Jan/2020:20:26:28 +0000] "GET /api/http/routers?search=&status=&per_page=10&page=1 HTTP/1.1" 200 631 "-" "-" 6 "traefik_dashboard-router@docker" - 0ms
    185.46.214.116 - - [04/Jan/2020:20:26:29 +0000] "GET /api/http/middlewares?search=&status=&per_page=10&page=1 HTTP/1.1" 200 3 "-" "-" 7 "traefik_dashboard-router@docker" - 0ms
    185.46.214.116 - - [04/Jan/2020:20:26:31 +0000] "GET /api/http/routers?search=&status=&per_page=10&page=1 HTTP/1.1" 200 631 "-" "-" 8 "traefik_dashboard-router@docker" - 0ms
    185.46.214.116 - - [04/Jan/2020:20:27:04 +0000] "GET / HTTP/1.1" 200 740 "-" "-" 9 "whoami_viaSubdomain-router@docker" "http://172.20.0.3:80" 13ms
    185.46.214.116 - - [04/Jan/2020:20:27:15 +0000] "GET /api/version HTTP/1.1" 200 39 "-" "-" 10 "traefik_dashboard-router@docker" - 0ms
    185.46.214.116 - - [04/Jan/2020:20:27:23 +0000] "GET /debug/vars HTTP/1.1" 200 4084 "-" "-" 11 "traefik_dashboard-router@docker" - 0ms
    
    traefik log
    time="2020-01-04T20:26:09Z" level=info msg="Traefik version 2.1.1 built on 2019-12-12T19:01:37Z"
    time="2020-01-04T20:26:09Z" level=debug msg="Static configuration loaded {\"global\":{\"checkNewVersion\":true},\"serversTransport\":{\"maxIdleConnsPerHost\":200},\"entryPoints\":{\"web\":{\"address\":\":80\",\"transport\":{\"lifeCycle\":{\"graceTimeOut\":10000000000},\"respondingTimeouts\":{\"idleTimeout\":180000000000}},\"forwardedHeaders\":{}},\"websecure\":{\"address\":\":443\",\"transport\":{\"lifeCycle\":{\"graceTimeOut\":10000000000},\"respondingTimeouts\":{\"idleTimeout\":180000000000}},\"forwardedHeaders\":{}}},\"providers\":{\"providersThrottleDuration\":2000000000,\"docker\":{\"watch\":true,\"endpoint\":\"unix:///var/run/docker.sock\",\"defaultRule\":\"Host(`{{ normalize .Name }}`)\",\"network\":\"bridge_proxy_traefikv2\",\"swarmModeRefreshSeconds\":15000000000}},\"api\":{\"dashboard\":true,\"debug\":true},\"log\":{\"level\":\"DEBUG\",\"filePath\":\"/var/log/traefik-log.log\",\"format\":\"common\"},\"accessLog\":{\"filePath\":\"/var/log/traefik-access.log\",\"format\":\"common\",\"filters\":{},\"fields\":{\"defaultMode\":\"keep\",\"headers\":{\"defaultMode\":\"drop\"}}},\"certificatesResolvers\":{\"tlsChallenge_letsencrypt\":{\"acme\":{\"email\":\"my.secret@gmail.com\",\"caServer\":\"https://acme-v02.api.letsencrypt.org/directory\",\"storage\":\"/etc/ssl/certs/letsencrypt/acme.json\",\"keyType\":\"RSA4096\",\"tlsChallenge\":{}}}}}"
    time="2020-01-04T20:26:09Z" level=info msg="\nStats collection is disabled.\nHelp us improve Traefik by turning this feature on :)\nMore details on: https://docs.traefik.io/v2.0/contributing/data-collection/\n"
    time="2020-01-04T20:26:09Z" level=info msg="Starting provider aggregator.ProviderAggregator {}"
    time="2020-01-04T20:26:09Z" level=debug msg="Start TCP Server" entryPointName=websecure
    time="2020-01-04T20:26:09Z" level=debug msg="Start TCP Server" entryPointName=web
    time="2020-01-04T20:26:09Z" level=info msg="Starting provider *acme.Provider {\"email\":\"my.secret@gmail.com\",\"caServer\":\"https://acme-v02.api.letsencrypt.org/directory\",\"storage\":\"/etc/ssl/certs/letsencrypt/acme.json\",\"keyType\":\"RSA4096\",\"tlsChallenge\":{},\"ResolverName\":\"tlsChallenge_letsencrypt\",\"store\":{},\"ChallengeStore\":{}}"
    time="2020-01-04T20:26:09Z" level=info msg="Testing certificate renew..." providerName=tlsChallenge_letsencrypt.acme
    time="2020-01-04T20:26:09Z" level=info msg="Starting provider *docker.Provider {\"watch\":true,\"endpoint\":\"unix:///var/run/docker.sock\",\"defaultRule\":\"Host(`{{ normalize .Name }}`)\",\"network\":\"bridge_proxy_traefikv2\",\"swarmModeRefreshSeconds\":15000000000}"
    time="2020-01-04T20:26:09Z" level=info msg="Starting provider *traefik.Provider {}"
    time="2020-01-04T20:26:09Z" level=debug msg="Configuration received from provider tlsChallenge_letsencrypt.acme: {\"http\":{},\"tls\":{}}" providerName=tlsChallenge_letsencrypt.acme
    time="2020-01-04T20:26:09Z" level=debug msg="Configuration received from provider internal: {\"http\":{\"services\":{\"api\":{},\"dashboard\":{}}},\"tcp\":{},\"tls\":{}}" providerName=internal
    time="2020-01-04T20:26:09Z" level=debug msg="Adding certificate for domain(s) forum.fairbnb.community"
    time="2020-01-04T20:26:09Z" level=debug msg="No default certificate, generating one"
    time="2020-01-04T20:26:09Z" level=debug msg="Provider connection established with docker 19.03.5 (API 1.40)" providerName=docker
    time="2020-01-04T20:26:09Z" level=debug msg="Configuration received from provider docker: {\"http\":{\"routers\":{\"discourse\":{\"entryPoints\":[\"web\"],\"service\":\"discourse\",\"rule\":\"Host(`forum.fairbnb.community`)\",\"tls\":{\"certResolver\":\"tlsChallenge_letsencrypt\"}},\"traefik_dashboard-router\":{\"entryPoints\":[\"web\"],\"service\":\"api@internal\",\"rule\":\"Host(`traefik.fairbnb.community`)\"},\"whoami_viaSubdomain-router\":{\"entryPoints\":[\"web\"],\"service\":\"whoami-viaSubdomain-10-docker-composeyml-files\",\"rule\":\"Host(`whoami.fairbnb.community`)\"}},\"services\":{\"discourse\":{\"loadBalancer\":{\"servers\":[{\"url\":\"http://172.20.0.2:80\"}],\"passHostHeader\":true}},\"traefik-reverse-proxy-10-docker-composeyml-files\":{\"loadBalancer\":{\"servers\":[{\"url\":\"http://172.20.0.4:80\"}],\"passHostHeader\":true}},\"whoami-viaSubdomain-10-docker-composeyml-files\":{\"loadBalancer\":{\"servers\":[{\"url\":\"http://172.20.0.3:80\"}],\"passHostHeader\":true}}}},\"tcp\":{}}" providerName=docker
    time="2020-01-04T20:26:09Z" level=debug msg="Adding certificate for domain(s) forum.fairbnb.community"
    time="2020-01-04T20:26:09Z" level=debug msg="No default certificate, generating one"
    time="2020-01-04T20:26:10Z" level=debug msg="Adding certificate for domain(s) forum.fairbnb.community"
    time="2020-01-04T20:26:10Z" level=debug msg="No default certificate, generating one"
    time="2020-01-04T20:26:10Z" level=debug msg="Creating middleware" routerName=whoami_viaSubdomain-router@docker entryPointName=web middlewareName=pipelining middlewareType=Pipelining serviceName=whoami-viaSubdomain-10-docker-composeyml-files
    time="2020-01-04T20:26:10Z" level=debug msg="Creating load-balancer" entryPointName=web serviceName=whoami-viaSubdomain-10-docker-composeyml-files routerName=whoami_viaSubdomain-router@docker
    time="2020-01-04T20:26:10Z" level=debug msg="Creating server 0 http://172.20.0.3:80" entryPointName=web serviceName=whoami-viaSubdomain-10-docker-composeyml-files routerName=whoami_viaSubdomain-router@docker serverName=0
    time="2020-01-04T20:26:10Z" level=debug msg="Added outgoing tracing middleware whoami-viaSubdomain-10-docker-composeyml-files" entryPointName=web routerName=whoami_viaSubdomain-router@docker middlewareName=tracing middlewareType=TracingForwarder
    time="2020-01-04T20:26:10Z" level=debug msg="Added outgoing tracing middleware api@internal" middlewareName=tracing middlewareType=TracingForwarder entryPointName=web routerName=traefik_dashboard-router@docker
    time="2020-01-04T20:26:10Z" level=debug msg="Creating middleware" middlewareName=traefik-internal-recovery middlewareType=Recovery entryPointName=web
    time="2020-01-04T20:26:10Z" level=debug msg="Creating middleware" serviceName=discourse middlewareName=pipelining middlewareType=Pipelining entryPointName=web routerName=discourse@docker
    time="2020-01-04T20:26:10Z" level=debug msg="Creating load-balancer" serviceName=discourse entryPointName=web routerName=discourse@docker
    time="2020-01-04T20:26:10Z" level=debug msg="Creating server 0 http://172.20.0.2:80" routerName=discourse@docker serviceName=discourse serverName=0 entryPointName=web
    time="2020-01-04T20:26:10Z" level=debug msg="Added outgoing tracing middleware discourse" entryPointName=web routerName=discourse@docker middlewareName=tracing middlewareType=TracingForwarder
    time="2020-01-04T20:26:10Z" level=debug msg="Creating middleware" middlewareName=traefik-internal-recovery entryPointName=web middlewareType=Recovery
    time="2020-01-04T20:26:10Z" level=debug msg="Try to challenge certificate for domain [forum.fairbnb.community] found in HostSNI rule" routerName=discourse@docker rule="Host(`forum.fairbnb.community`)" providerName=tlsChallenge_letsencrypt.acme
    time="2020-01-04T20:26:10Z" level=debug msg="Looking for provided certificate(s) to validate [\"forum.fairbnb.community\"]..." providerName=tlsChallenge_letsencrypt.acme routerName=discourse@docker rule="Host(`forum.fairbnb.community`)"
    time="2020-01-04T20:26:10Z" level=debug msg="No ACME certificate generation required for domains [\"forum.fairbnb.community\"]." providerName=tlsChallenge_letsencrypt.acme routerName=discourse@docker rule="Host(`forum.fairbnb.community`)"
    time="2020-01-04T20:26:32Z" level=error msg="Error while Peeking first byte: read tcp 172.20.0.4:80->178.57.212.200:51388: read: connection reset by peer"
    time="2020-01-04T20:26:33Z" level=error msg="Error while Peeking first byte: read tcp 172.20.0.4:80->178.57.212.200:51391: read: connection reset by peer"
    time="2020-01-04T20:26:35Z" level=error msg="Error while Peeking first byte: read tcp 172.20.0.4:80->178.57.212.200:51395: read: connection reset by peer"
    time="2020-01-04T20:26:39Z" level=error msg="Error while Peeking first byte: read tcp 172.20.0.4:80->178.57.212.200:51398: read: connection reset by peer"
    time="2020-01-04T20:27:04Z" level=error msg="Error while Peeking first byte: read tcp 172.20.0.4:80->178.57.212.200:51436: read: connection reset by peer"
    time="2020-01-04T20:27:04Z" level=debug msg="vulcand/oxy/roundrobin/rr: begin ServeHttp on request" Request="{\"Method\":\"GET\",\"URL\":{\"Scheme\":\"\",\"Opaque\":\"\",\"User\":null,\"Host\":\"\",\"Path\":\"/\",\"RawPath\":\"\",\"ForceQuery\":false,\"RawQuery\":\"\",\"Fragment\":\"\"},\"Proto\":\"HTTP/1.1\",\"ProtoMajor\":1,\"ProtoMinor\":1,\"Header\":{\"Accept\":[\"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\"],\"Accept-Encoding\":[\"gzip, deflate\"],\"Accept-Language\":[\"en-US,en;q=0.9,de;q=0.8,fr;q=0.7\"],\"Cache-Control\":[\"max-age=0\"],\"Connection\":[\"keep-alive\"],\"Cookie\":[\"_sm_au_d=1\"],\"Dnt\":[\"1\"],\"Upgrade-Insecure-Requests\":[\"1\"],\"User-Agent\":[\"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36\"],\"X-Forwarded-Host\":[\"whoami.fairbnb.community\"],\"X-Forwarded-Port\":[\"80\"],\"X-Forwarded-Proto\":[\"http\"],\"X-Forwarded-Server\":[\"db4ffe07f7f3\"],\"X-Real-Ip\":[\"185.46.214.116\"]},\"ContentLength\":0,\"TransferEncoding\":null,\"Host\":\"whoami.fairbnb.community\",\"Form\":null,\"PostForm\":null,\"MultipartForm\":null,\"Trailer\":null,\"RemoteAddr\":\"185.46.214.116:20479\",\"RequestURI\":\"/\",\"TLS\":null}"
    time="2020-01-04T20:27:04Z" level=debug msg="vulcand/oxy/roundrobin/rr: Forwarding this request to URL" Request="{\"Method\":\"GET\",\"URL\":{\"Scheme\":\"\",\"Opaque\":\"\",\"User\":null,\"Host\":\"\",\"Path\":\"/\",\"RawPath\":\"\",\"ForceQuery\":false,\"RawQuery\":\"\",\"Fragment\":\"\"},\"Proto\":\"HTTP/1.1\",\"ProtoMajor\":1,\"ProtoMinor\":1,\"Header\":{\"Accept\":[\"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\"],\"Accept-Encoding\":[\"gzip, deflate\"],\"Accept-Language\":[\"en-US,en;q=0.9,de;q=0.8,fr;q=0.7\"],\"Cache-Control\":[\"max-age=0\"],\"Connection\":[\"keep-alive\"],\"Cookie\":[\"_sm_au_d=1\"],\"Dnt\":[\"1\"],\"Upgrade-Insecure-Requests\":[\"1\"],\"User-Agent\":[\"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36\"],\"X-Forwarded-Host\":[\"whoami.fairbnb.community\"],\"X-Forwarded-Port\":[\"80\"],\"X-Forwarded-Proto\":[\"http\"],\"X-Forwarded-Server\":[\"db4ffe07f7f3\"],\"X-Real-Ip\":[\"185.46.214.116\"]},\"ContentLength\":0,\"TransferEncoding\":null,\"Host\":\"whoami.fairbnb.community\",\"Form\":null,\"PostForm\":null,\"MultipartForm\":null,\"Trailer\":null,\"RemoteAddr\":\"185.46.214.116:20479\",\"RequestURI\":\"/\",\"TLS\":null}" ForwardURL="http://172.20.0.3:80"
    time="2020-01-04T20:27:04Z" level=debug msg="vulcand/oxy/roundrobin/rr: completed ServeHttp on request" Request="{\"Method\":\"GET\",\"URL\":{\"Scheme\":\"\",\"Opaque\":\"\",\"User\":null,\"Host\":\"\",\"Path\":\"/\",\"RawPath\":\"\",\"ForceQuery\":false,\"RawQuery\":\"\",\"Fragment\":\"\"},\"Proto\":\"HTTP/1.1\",\"ProtoMajor\":1,\"ProtoMinor\":1,\"Header\":{\"Accept\":[\"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\"],\"Accept-Encoding\":[\"gzip, deflate\"],\"Accept-Language\":[\"en-US,en;q=0.9,de;q=0.8,fr;q=0.7\"],\"Cache-Control\":[\"max-age=0\"],\"Connection\":[\"keep-alive\"],\"Cookie\":[\"_sm_au_d=1\"],\"Dnt\":[\"1\"],\"Upgrade-Insecure-Requests\":[\"1\"],\"User-Agent\":[\"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36\"],\"X-Forwarded-Host\":[\"whoami.fairbnb.community\"],\"X-Forwarded-Port\":[\"80\"],\"X-Forwarded-Proto\":[\"http\"],\"X-Forwarded-Server\":[\"db4ffe07f7f3\"],\"X-Real-Ip\":[\"185.46.214.116\"]},\"ContentLength\":0,\"TransferEncoding\":null,\"Host\":\"whoami.fairbnb.community\",\"Form\":null,\"PostForm\":null,\"MultipartForm\":null,\"Trailer\":null,\"RemoteAddr\":\"185.46.214.116:20479\",\"RequestURI\":\"/\",\"TLS\":null}"
    time="2020-01-04T20:27:12Z" level=error msg="Error while Peeking first byte: read tcp 172.20.0.4:80->178.57.212.200:51450: read: connection reset by peer"
    time="2020-01-04T20:27:12Z" level=error msg="Error while Peeking first byte: read tcp 172.20.0.4:80->178.57.212.200:51454: read: connection reset by peer"
    time="2020-01-04T20:27:13Z" level=error msg="Error while Peeking first byte: read tcp 172.20.0.4:80->178.57.212.200:51457: read: connection reset by peer"
    time="2020-01-04T20:27:15Z" level=error msg="Error while Peeking first byte: read tcp 172.20.0.4:80->178.57.212.200:51461: read: connection reset by peer"
    time="2020-01-04T20:27:19Z" level=error msg="Error while Peeking first byte: read tcp 172.20.0.4:80->178.57.212.200:51464: read: connection reset by peer"
    time="2020-01-04T20:27:20Z" level=error msg="Error while Peeking first byte: read tcp 172.20.0.4:80->178.57.212.200:51467: read: connection reset by peer"
    time="2020-01-04T20:27:28Z" level=error msg="Error while Peeking first byte: read tcp 172.20.0.4:80->178.57.212.200:51481: read: connection reset by peer"
    time="2020-01-04T20:27:36Z" level=error msg="Error while Peeking first byte: read tcp 172.20.0.4:80->178.57.212.200:51497: read: connection reset by peer"
    time="2020-01-04T20:27:44Z" level=error msg="Error while Peeking first byte: read tcp 172.20.0.4:80->178.57.212.200:51511: read: connection reset by peer"
    time="2020-01-04T20:27:52Z" level=error msg="Error while Peeking first byte: read tcp 172.20.0.4:80->178.57.212.200:51527: read: connection reset by peer"
    time="2020-01-04T20:27:52Z" level=error msg="Error while Peeking first byte: read tcp 172.20.0.4:80->178.57.212.200:51531: read: connection reset by peer"
    time="2020-01-04T20:27:53Z" level=error msg="Error while Peeking first byte: read tcp 172.20.0.4:80->178.57.212.200:51534: read: connection reset by peer"
    time="2020-01-04T20:27:55Z" level=error msg="Error while Peeking first byte: read tcp 172.20.0.4:80->178.57.212.200:51539: read: connection reset by peer"
    time="2020-01-04T20:27:59Z" level=error msg="Error while Peeking first byte: read tcp 172.20.0.4:80->178.57.212.200:51542: read: connection reset by peer"
    
    

    Is that related to When I use traefik 2.0-rc1 to expose the service(type: NodePort), traefik will keeps reporting errors in the pod · Issue #5297 · containous/traefik?


Here are my configs

docker-compose: traefikV2_docker-compose.yaml
root@Ubuntu18:/opt/10_docker-compose.yml-files# cat traefikV2_docker-compose.yaml | grep -v "#"
version: "3.7"

services:
  traefik-reverse-proxy:
    image: traefik:v2.1.1
    container_name: traefik

    ports:
      - 80:80
      - 443:443

    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /var/log/traefik:/var/log
      - /etc/ssl/certs/traefik/letsencrypt:/etc/ssl/certs/letsencrypt
      - /opt/traefik/traefik-config.yaml:/etc/traefik/traefik.yaml

    labels:
      - traefik.enable=true
      - traefik.http.routers.traefik_dashboard-router.rule=Host(`traefik.fairbnb.community`)
      - traefik.http.routers.traefik_dashboard-router.entrypoints=web
      - traefik.http.routers.traefik_dashboard-router.service=api@internal

    networks:
      - traefik


  whoami_viaSubdomain:
    image: "containous/whoami"
    container_name: "whoami_viaSubdomain"
    labels:
      - traefik.enable=true
      - traefik.docker.network=bridge_proxy_traefikv2
      - traefik.http.routers.whoami_viaSubdomain-router.rule=Host(`whoami.fairbnb.community`)
      - traefik.http.routers.whoami_viaSubdomain-router.entrypoints=web
    networks:
      - traefik

networks:
  traefik:
    external:
      name: bridge_proxy_traefikv2

Traefik configuration: traefik-config.yaml
root@Ubuntu18:/opt/traefik# cat traefik-config.yaml | grep -v "#"
global:
  checkNewVersion: true

entryPoints:
  web:
    address: :80
  websecure:
    address: :443

api:
   debug: true

providers:
  docker:
    exposedByDefault: false
    network: bridge_proxy_traefikv2

log:
  level: DEBUG
  filePath: /var/log/traefik-log.log

accessLog:
  filePath: /var/log/traefik-access.log

certificatesResolvers:
  tlsChallenge_letsencrypt:
    acme:
      email: my.secret@gmail.com
      storage: /etc/ssl/certs/letsencrypt/acme.json
      tlsChallenge: {}

Chrome network inspector - part 1
{
  "log": {
    "version": "1.2",
    "creator": {
      "name": "WebInspector",
      "version": "537.36"
    },
    "pages": [
      {
        "startedDateTime": "2020-01-04T13:37:21.937Z",
        "id": "page_1",
        "title": "http://traefik.fairbnb.community/",
        "pageTimings": {
          "onContentLoad": 709.5459999982268,
          "onLoad": 1009.7880000248551
        }
      }
    ],
    "entries": [
      {
        "startedDateTime": "2020-01-04T13:37:21.926Z",
        "time": 17.197999986819923,
        "request": {
          "method": "GET",
          "url": "http://traefik.fairbnb.community/",
          "httpVersion": "http/1.1",
          "headers": [
            {
              "name": "Host",
              "value": "traefik.fairbnb.community"
            },
            {
              "name": "Connection",
              "value": "keep-alive"
            },
            {
              "name": "DNT",
              "value": "1"
            },
            {
              "name": "Upgrade-Insecure-Requests",
              "value": "1"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36"
            },
            {
              "name": "Accept",
              "value": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9"
            },
            {
              "name": "Accept-Encoding",
              "value": "gzip, deflate"
            },
            {
              "name": "Accept-Language",
              "value": "en-US,en;q=0.9,de;q=0.8,fr;q=0.7"
            },
            {
              "name": "Cookie",
              "value": "_sm_au_d=1"
            }
          ],
          "queryString": [],
          "cookies": [
            {
              "name": "_sm_au_d",
              "value": "1",
              "expires": null,
              "httpOnly": false,
              "secure": false
            }
          ],
          "headersSize": -1,
          "bodySize": 0
        },
        "response": {
          "status": 301,
          "statusText": "Moved Permanently",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Content-Length",
              "value": "17"
            },
            {
              "name": "Content-Type",
              "value": "text/plain; charset=utf-8"
            },
            {
              "name": "Date",
              "value": "Fri, 03 Jan 2020 08:37:49 GMT"
            },
            {
              "name": "Location",
              "value": "http://traefik.fairbnb.community/dashboard/"
            }
          ],
          "cookies": [],
          "content": {
            "size": 0,
            "mimeType": "text/plain"
          },
          "redirectURL": "http://traefik.fairbnb.community/dashboard/",
          "headersSize": 187,
          "bodySize": 0,
          "_transferSize": 0
        },
        "cache": {},
        "timings": {
          "blocked": 12.191999943383038,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0,
          "wait": 0.6839999627172947,
          "receive": 4.32200008071959,
          "_blocked_queueing": 11.932999943383038
        },
        "serverIPAddress": "157.245.67.230",
        "_initiator": {
          "type": "other"
        },
        "_priority": "VeryHigh",
        "_resourceType": "other",
        "_fromCache": "disk",
        "pageref": "page_1"
      },
      {
        "startedDateTime": "2020-01-04T13:37:21.942Z",
        "time": 9.854000061750412,
        "request": {
          "method": "GET",
          "url": "http://traefik.fairbnb.community/dashboard/",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "DNT",
              "value": "1"
            },
            {
              "name": "Upgrade-Insecure-Requests",
              "value": "1"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36"
            }
          ],
          "queryString": [],
          "cookies": [],
          "headersSize": 187,
          "bodySize": 0
        },
        "response": {
          "status": 301,
          "statusText": "Moved Permanently",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Content-Length",
              "value": "17"
            },
            {
              "name": "Content-Type",
              "value": "text/plain; charset=utf-8"
            },
            {
              "name": "Date",
              "value": "Fri, 03 Jan 2020 08:37:49 GMT"
            },
            {
              "name": "Location",
              "value": "http://traefik.fairbnb.community/dashboard/dashboard/"
            }
          ],
          "cookies": [],
          "content": {
            "size": 0,
            "mimeType": "text/plain"
          },
          "redirectURL": "http://traefik.fairbnb.community/dashboard/dashboard/",
          "headersSize": 197,
          "bodySize": 0,
          "_transferSize": 0
        },
        "cache": {},
        "timings": {
          "blocked": 2.234999954715371,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0,
          "wait": 1.2510000467151403,
          "receive": 6.3680000603199005,
          "_blocked_queueing": 1.9509999547153711
        },
        "serverIPAddress": "157.245.67.230",
        "_initiator": {
          "type": "other"
        },
        "_priority": "VeryHigh",
        "_resourceType": "other",
        "_fromCache": "disk",
        "pageref": "page_1"
      },
      {
        "startedDateTime": "2020-01-04T13:37:21.952Z",
        "time": 5.814999924041331,
        "request": {
          "method": "GET",
          "url": "http://traefik.fairbnb.community/dashboard/dashboard/",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "DNT",
              "value": "1"
            },
            {
              "name": "Upgrade-Insecure-Requests",
              "value": "1"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36"
            }
          ],
          "queryString": [],
          "cookies": [],
          "headersSize": 197,
          "bodySize": 0
        },
        "response": {
          "status": 301,
          "statusText": "Moved Permanently",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Content-Length",
              "value": "17"
            },
            {
              "name": "Content-Type",
              "value": "text/plain; charset=utf-8"
            },
            {
              "name": "Date",
              "value": "Fri, 03 Jan 2020 08:37:49 GMT"
            },
            {
              "name": "Location",
              "value": "http://traefik.fairbnb.community/dashboard/dashboard/dashboard/"
            }
          ],
          "cookies": [],
          "content": {
            "size": 0,
            "mimeType": "text/plain"
          },
          "redirectURL": "http://traefik.fairbnb.community/dashboard/dashboard/dashboard/",
          "headersSize": 207,
          "bodySize": 0,
          "_transferSize": 0
        },
        "cache": {},
        "timings": {
          "blocked": 2.484999988079071,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0,
          "wait": 1.3469999704137445,
          "receive": 1.9829999655485153,
          "_blocked_queueing": 2.199999988079071
        },
        "serverIPAddress": "157.245.67.230",
        "_initiator": {
          "type": "other"
        },
        "_priority": "VeryHigh",
        "_resourceType": "other",
        "_fromCache": "disk",
        "pageref": "page_1"
      },
      {
        "startedDateTime": "2020-01-04T13:37:21.958Z",
        "time": 5.168000003322959,
        "request": {
          "method": "GET",
          "url": "http://traefik.fairbnb.community/dashboard/dashboard/dashboard/",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "DNT",
              "value": "1"
            },
            {
              "name": "Upgrade-Insecure-Requests",
              "value": "1"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36"
            }
          ],
          "queryString": [],
          "cookies": [],
          "headersSize": 207,
          "bodySize": 0
        },
        "response": {
          "status": 301,
          "statusText": "Moved Permanently",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Content-Length",
              "value": "17"
            },
            {
              "name": "Content-Type",
              "value": "text/plain; charset=utf-8"
            },
            {
              "name": "Date",
              "value": "Fri, 03 Jan 2020 08:37:49 GMT"
            },
            {
              "name": "Location",
              "value": "http://traefik.fairbnb.community/dashboard/dashboard/dashboard/dashboard/"
            }
          ],
          "cookies": [],
          "content": {
            "size": 0,
            "mimeType": "text/plain"
          },
          "redirectURL": "http://traefik.fairbnb.community/dashboard/dashboard/dashboard/dashboard/",
          "headersSize": 217,
          "bodySize": 0,
          "_transferSize": 0
        },
        "cache": {},
        "timings": {
          "blocked": 1.5490000045597554,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0,
          "wait": 0.3200000242590904,
          "receive": 3.298999974504113,
          "_blocked_queueing": 1.3460000045597553
        },
        "serverIPAddress": "157.245.67.230",
        "_initiator": {
          "type": "other"
        },
        "_priority": "VeryHigh",
        "_resourceType": "other",
        "_fromCache": "disk",
        "pageref": "page_1"
      },
      {
        "startedDateTime": "2020-01-04T13:37:21.963Z",
        "time": 10.788000072352588,
        "request": {
          "method": "GET",
          "url": "http://traefik.fairbnb.community/dashboard/dashboard/dashboard/dashboard/",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "DNT",
              "value": "1"
            },
            {
              "name": "Upgrade-Insecure-Requests",
              "value": "1"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36"
            }
          ],
          "queryString": [],
          "cookies": [],
          "headersSize": 217,
          "bodySize": 0
        },
        "response": {
          "status": 301,
          "statusText": "Moved Permanently",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Content-Length",
              "value": "17"
            },
            {
              "name": "Content-Type",
              "value": "text/plain; charset=utf-8"
            },
            {
              "name": "Date",
              "value": "Fri, 03 Jan 2020 08:37:49 GMT"
            },
            {
              "name": "Location",
              "value": "http://traefik.fairbnb.community/dashboard/dashboard/dashboard/dashboard/dashboard/"
            }
          ],
          "cookies": [],
          "content": {
            "size": 0,
            "mimeType": "text/plain"
          },
          "redirectURL": "http://traefik.fairbnb.community/dashboard/dashboard/dashboard/dashboard/dashboard/",
          "headersSize": 227,
          "bodySize": 0,
          "_transferSize": 0
        },
        "cache": {},
        "timings": {
          "blocked": 1.5150000732466578,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0,
          "wait": 7.018000057891011,
          "receive": 2.254999941214919,
          "_blocked_queueing": 1.2480000732466578
        },
        "serverIPAddress": "157.245.67.230",
        "_initiator": {
          "type": "other"
        },
        "_priority": "VeryHigh",
        "_resourceType": "other",
        "_fromCache": "disk",
        "pageref": "page_1"
      },
      {
        "startedDateTime": "2020-01-04T13:37:21.974Z",
        "time": 12.84099998883903,
        "request": {
          "method": "GET",
          "url": "http://traefik.fairbnb.community/dashboard/dashboard/dashboard/dashboard/dashboard/",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "DNT",
              "value": "1"
            },
            {
              "name": "Upgrade-Insecure-Requests",
              "value": "1"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36"
            }
          ],
          "queryString": [],
          "cookies": [],
          "headersSize": 227,
          "bodySize": 0
        },
        "response": {
          "status": 301,
          "statusText": "Moved Permanently",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Content-Length",
              "value": "17"
            },
            {
              "name": "Content-Type",
              "value": "text/plain; charset=utf-8"
            },
            {
              "name": "Date",
              "value": "Fri, 03 Jan 2020 08:37:49 GMT"
            },
            {
              "name": "Location",
              "value": "http://traefik.fairbnb.community/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/"
            }
          ],
          "cookies": [],
          "content": {
            "size": 0,
            "mimeType": "text/plain"
          },
          "redirectURL": "http://traefik.fairbnb.community/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/",
          "headersSize": 237,
          "bodySize": 0,
          "_transferSize": 0
        },
        "cache": {},
        "timings": {
          "blocked": 1.8469999282583593,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0,
          "wait": 0.5729999887794256,
          "receive": 10.421000071801245,
          "_blocked_queueing": 1.4429999282583594
        },
        "serverIPAddress": "157.245.67.230",
        "_initiator": {
          "type": "other"
        },
        "_priority": "VeryHigh",
        "_resourceType": "other",
        "_fromCache": "disk",
        "pageref": "page_1"
      },
      {
        "startedDateTime": "2020-01-04T13:37:21.987Z",
        "time": 24.965999997220933,
        "request": {
          "method": "GET",
          "url": "http://traefik.fairbnb.community/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "DNT",
              "value": "1"
            },
            {
              "name": "Upgrade-Insecure-Requests",
              "value": "1"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36"
            }
          ],
          "queryString": [],
          "cookies": [],
          "headersSize": 237,
          "bodySize": 0
        },
        "response": {
          "status": 301,
          "statusText": "Moved Permanently",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Content-Length",
              "value": "17"
            },
            {
              "name": "Content-Type",
              "value": "text/plain; charset=utf-8"
            },
            {
              "name": "Date",
              "value": "Fri, 03 Jan 2020 08:37:49 GMT"
            },
            {
              "name": "Location",
              "value": "http://traefik.fairbnb.community/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/"
            }
          ],
          "cookies": [],
          "content": {
            "size": 0,
            "mimeType": "text/plain"
          },
          "redirectURL": "http://traefik.fairbnb.community/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/",
          "headersSize": 247,
          "bodySize": 0,
          "_transferSize": 0
        },
        "cache": {},
        "timings": {
          "blocked": 5.937999943271279,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0,
          "wait": 15.807999982498586,
          "receive": 3.220000071451068,
          "_blocked_queueing": 5.312999943271279
        },
        "serverIPAddress": "157.245.67.230",
        "_initiator": {
          "type": "other"
        },
        "_priority": "VeryHigh",
        "_resourceType": "other",
        "_fromCache": "disk",
        "pageref": "page_1"
      },
      {
        "startedDateTime": "2020-01-04T13:37:22.011Z",
        "time": 7.4139999924227595,
        "request": {
          "method": "GET",
          "url": "http://traefik.fairbnb.community/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "DNT",
              "value": "1"
            },
            {
              "name": "Upgrade-Insecure-Requests",
              "value": "1"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36"
            }
          ],
          "queryString": [],
          "cookies": [],
          "headersSize": 247,
          "bodySize": 0
        },
        "response": {
          "status": 301,
          "statusText": "Moved Permanently",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Content-Length",
              "value": "17"
            },
            {
              "name": "Content-Type",
              "value": "text/plain; charset=utf-8"
            },
            {
              "name": "Date",
              "value": "Fri, 03 Jan 2020 08:37:50 GMT"
            },
            {
              "name": "Location",
              "value": "http://traefik.fairbnb.community/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/"
            }
          ],
          "cookies": [],
          "content": {
            "size": 0,
            "mimeType": "text/plain"
          },
          "redirectURL": "http://traefik.fairbnb.community/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/",
          "headersSize": 257,
          "bodySize": 0,
          "_transferSize": 0
        },
        "cache": {},
        "timings": {
          "blocked": 3.22299997395277,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0,
          "wait": 0.9370000373721123,
          "receive": 3.253999981097877,
          "_blocked_queueing": 2.9319999739527702
        },
        "serverIPAddress": "157.245.67.230",
        "_initiator": {
          "type": "other"
        },
        "_priority": "VeryHigh",
        "_resourceType": "other",
        "_fromCache": "disk",
        "pageref": "page_1"
      },
      {
        "startedDateTime": "2020-01-04T13:37:22.019Z",
        "time": 5.620999960228801,
        "request": {
          "method": "GET",
          "url": "http://traefik.fairbnb.community/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "DNT",
              "value": "1"
            },
            {
              "name": "Upgrade-Insecure-Requests",
              "value": "1"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36"
            }
          ],
          "queryString": [],
          "cookies": [],
          "headersSize": 257,
          "bodySize": 0
        },
        "response": {
          "status": 301,
          "statusText": "Moved Permanently",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Content-Length",
              "value": "17"
            },
            {
              "name": "Content-Type",
              "value": "text/plain; charset=utf-8"
            },
            {
              "name": "Date",
              "value": "Fri, 03 Jan 2020 08:37:50 GMT"
            },
            {
              "name": "Location",
              "value": "http://traefik.fairbnb.community/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/"
            }
          ],
          "cookies": [],
          "content": {
            "size": 0,
            "mimeType": "text/plain"
          },
          "redirectURL": "http://traefik.fairbnb.community/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/",
          "headersSize": 267,
          "bodySize": 0,
          "_transferSize": 0
        },
        "cache": {},
        "timings": {
          "blocked": 2.050999931007624,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0,
          "wait": 1.307000027090311,
          "receive": 2.263000002130866,
          "_blocked_queueing": 1.7949999310076237
        },
        "serverIPAddress": "157.245.67.230",
        "_initiator": {
          "type": "other"
        },
        "_priority": "VeryHigh",
        "_resourceType": "other",
        "_fromCache": "disk",
        "pageref": "page_1"
      },
      {
        "startedDateTime": "2020-01-04T13:37:22.025Z",
        "time": 4.202999989502132,
        "request": {
          "method": "GET",
          "url": "http://traefik.fairbnb.community/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "DNT",
              "value": "1"
            },
            {
              "name": "Upgrade-Insecure-Requests",
              "value": "1"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36"
            }
          ],
          "queryString": [],
          "cookies": [],
          "headersSize": 267,
          "bodySize": 0
        },
        "response": {
          "status": 301,
          "statusText": "Moved Permanently",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Content-Length",
              "value": "17"
            },
            {
              "name": "Content-Type",
              "value": "text/plain; charset=utf-8"
            },
            {
              "name": "Date",
              "value": "Fri, 03 Jan 2020 08:37:50 GMT"
            },
            {
              "name": "Location",
              "value": "http://traefik.fairbnb.community/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/"
            }
          ],
          "cookies": [],
          "content": {
            "size": 0,
            "mimeType": "text/plain"
          },
          "redirectURL": "http://traefik.fairbnb.community/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/",
          "headersSize": 277,
          "bodySize": 0,
          "_transferSize": 0
        },
        "cache": {},
        "timings": {
          "blocked": 1.6599999751225114,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0,
          "wait": 0.4589999782592058,
          "receive": 2.0840000361204147,
          "_blocked_queueing": 1.3879999751225114
        },
        "serverIPAddress": "157.245.67.230",
        "_initiator": {
          "type": "other"
        },
        "_priority": "VeryHigh",
        "_resourceType": "other",
        "_fromCache": "disk",
        "pageref": "page_1"
      },

Chrome network inspector - part 2
      {
        "startedDateTime": "2020-01-04T13:37:22.029Z",
        "time": 11.612000060267746,
        "request": {
          "method": "GET",
          "url": "http://traefik.fairbnb.community/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "DNT",
              "value": "1"
            },
            {
              "name": "Upgrade-Insecure-Requests",
              "value": "1"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36"
            }
          ],
          "queryString": [],
          "cookies": [],
          "headersSize": 277,
          "bodySize": 0
        },
        "response": {
          "status": 301,
          "statusText": "Moved Permanently",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Content-Length",
              "value": "17"
            },
            {
              "name": "Content-Type",
              "value": "text/plain; charset=utf-8"
            },
            {
              "name": "Date",
              "value": "Fri, 03 Jan 2020 08:37:51 GMT"
            },
            {
              "name": "Location",
              "value": "http://traefik.fairbnb.community/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/"
            }
          ],
          "cookies": [],
          "content": {
            "size": 0,
            "mimeType": "text/plain"
          },
          "redirectURL": "http://traefik.fairbnb.community/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/",
          "headersSize": 287,
          "bodySize": 0,
          "_transferSize": 0
        },
        "cache": {},
        "timings": {
          "blocked": 1.6860000708922744,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0,
          "wait": 6.407999977111817,
          "receive": 3.5180000122636557,
          "_blocked_queueing": 1.3700000708922744
        },
        "serverIPAddress": "157.245.67.230",
        "_initiator": {
          "type": "other"
        },
        "_priority": "VeryHigh",
        "_resourceType": "other",
        "_fromCache": "disk",
        "pageref": "page_1"
      },
      {
        "startedDateTime": "2020-01-04T13:37:22.040Z",
        "time": 4.2549999197945,
        "request": {
          "method": "GET",
          "url": "http://traefik.fairbnb.community/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "DNT",
              "value": "1"
            },
            {
              "name": "Upgrade-Insecure-Requests",
              "value": "1"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36"
            }
          ],
          "queryString": [],
          "cookies": [],
          "headersSize": 287,
          "bodySize": 0
        },
        "response": {
          "status": 301,
          "statusText": "Moved Permanently",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Content-Length",
              "value": "17"
            },
            {
              "name": "Content-Type",
              "value": "text/plain; charset=utf-8"
            },
            {
              "name": "Date",
              "value": "Fri, 03 Jan 2020 08:37:51 GMT"
            },
            {
              "name": "Location",
              "value": "http://traefik.fairbnb.community/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/"
            }
          ],
          "cookies": [],
          "content": {
            "size": 0,
            "mimeType": "text/plain"
          },
          "redirectURL": "http://traefik.fairbnb.community/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/",
          "headersSize": 297,
          "bodySize": 0,
          "_transferSize": 0
        },
        "cache": {},
        "timings": {
          "blocked": 1.8719999062791466,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0,
          "wait": 0.4140000381544232,
          "receive": 1.96899997536093,
          "_blocked_queueing": 1.5929999062791467
        },
        "serverIPAddress": "157.245.67.230",
        "_initiator": {
          "type": "other"
        },
        "_priority": "VeryHigh",
        "_resourceType": "other",
        "_fromCache": "disk",
        "pageref": "page_1"
      },
      {
        "startedDateTime": "2020-01-04T13:37:22.045Z",
        "time": 6.257000030018389,
        "request": {
          "method": "GET",
          "url": "http://traefik.fairbnb.community/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "DNT",
              "value": "1"
            },
            {
              "name": "Upgrade-Insecure-Requests",
              "value": "1"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36"
            }
          ],
          "queryString": [],
          "cookies": [],
          "headersSize": 297,
          "bodySize": 0
        },
        "response": {
          "status": 301,
          "statusText": "Moved Permanently",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Content-Length",
              "value": "17"
            },
            {
              "name": "Content-Type",
              "value": "text/plain; charset=utf-8"
            },
            {
              "name": "Date",
              "value": "Fri, 03 Jan 2020 08:37:51 GMT"
            },
            {
              "name": "Location",
              "value": "http://traefik.fairbnb.community/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/"
            }
          ],
          "cookies": [],
          "content": {
            "size": 0,
            "mimeType": "text/plain"
          },
          "redirectURL": "http://traefik.fairbnb.community/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/",
          "headersSize": 307,
          "bodySize": 0,
          "_transferSize": 0
        },
        "cache": {},
        "timings": {
          "blocked": 1.6819999871328473,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0,
          "wait": 0.8799999634250999,
          "receive": 3.695000079460442,
          "_blocked_queueing": 1.3589999871328473
        },
        "serverIPAddress": "157.245.67.230",
        "_initiator": {
          "type": "other"
        },
        "_priority": "VeryHigh",
        "_resourceType": "other",
        "_fromCache": "disk",
        "pageref": "page_1"
      },
      {
        "startedDateTime": "2020-01-04T13:37:22.051Z",
        "time": 6.0189999639987946,
        "request": {
          "method": "GET",
          "url": "http://traefik.fairbnb.community/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "DNT",
              "value": "1"
            },
            {
              "name": "Upgrade-Insecure-Requests",
              "value": "1"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36"
            }
          ],
          "queryString": [],
          "cookies": [],
          "headersSize": 307,
          "bodySize": 0
        },
        "response": {
          "status": 301,
          "statusText": "Moved Permanently",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Content-Length",
              "value": "17"
            },
            {
              "name": "Content-Type",
              "value": "text/plain; charset=utf-8"
            },
            {
              "name": "Date",
              "value": "Fri, 03 Jan 2020 08:37:51 GMT"
            },
            {
              "name": "Location",
              "value": "http://traefik.fairbnb.community/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/"
            }
          ],
          "cookies": [],
          "content": {
            "size": 0,
            "mimeType": "text/plain"
          },
          "redirectURL": "http://traefik.fairbnb.community/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/",
          "headersSize": 317,
          "bodySize": 0,
          "_transferSize": 0
        },
        "cache": {},
        "timings": {
          "blocked": 3.186999954640865,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0,
          "wait": 0.650000041924417,
          "receive": 2.181999967433512,
          "_blocked_queueing": 2.7459999546408653
        },
        "serverIPAddress": "157.245.67.230",
        "_initiator": {
          "type": "other"
        },
        "_priority": "VeryHigh",
        "_resourceType": "other",
        "_fromCache": "disk",
        "pageref": "page_1"
      },
      {
        "startedDateTime": "2020-01-04T13:37:22.057Z",
        "time": 6.16200000513345,
        "request": {
          "method": "GET",
          "url": "http://traefik.fairbnb.community/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "DNT",
              "value": "1"
            },
            {
              "name": "Upgrade-Insecure-Requests",
              "value": "1"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36"
            }
          ],
          "queryString": [],
          "cookies": [],
          "headersSize": 317,
          "bodySize": 0
        },
        "response": {
          "status": 301,
          "statusText": "Moved Permanently",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Content-Length",
              "value": "17"
            },
            {
              "name": "Content-Type",
              "value": "text/plain; charset=utf-8"
            },
            {
              "name": "Date",
              "value": "Fri, 03 Jan 2020 08:37:51 GMT"
            },
            {
              "name": "Location",
              "value": "http://traefik.fairbnb.community/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/"
            }
          ],
          "cookies": [],
          "content": {
            "size": 0,
            "mimeType": "text/plain"
          },
          "redirectURL": "http://traefik.fairbnb.community/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/",
          "headersSize": 327,
          "bodySize": 0,
          "_transferSize": 0
        },
        "cache": {},
        "timings": {
          "blocked": 3.4670001041069627,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0,
          "wait": 0.555000020571053,
          "receive": 2.1399998804554343,
          "_blocked_queueing": 3.2090001041069627
        },
        "serverIPAddress": "157.245.67.230",
        "_initiator": {
          "type": "other"
        },
        "_priority": "VeryHigh",
        "_resourceType": "other",
        "_fromCache": "disk",
        "pageref": "page_1"
      },
      {
        "startedDateTime": "2020-01-04T13:37:22.063Z",
        "time": 10.617000050842762,
        "request": {
          "method": "GET",
          "url": "http://traefik.fairbnb.community/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "DNT",
              "value": "1"
            },
            {
              "name": "Upgrade-Insecure-Requests",
              "value": "1"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36"
            }
          ],
          "queryString": [],
          "cookies": [],
          "headersSize": 327,
          "bodySize": 0
        },
        "response": {
          "status": 301,
          "statusText": "Moved Permanently",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Content-Length",
              "value": "17"
            },
            {
              "name": "Content-Type",
              "value": "text/plain; charset=utf-8"
            },
            {
              "name": "Date",
              "value": "Fri, 03 Jan 2020 08:37:51 GMT"
            },
            {
              "name": "Location",
              "value": "http://traefik.fairbnb.community/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/"
            }
          ],
          "cookies": [],
          "content": {
            "size": 0,
            "mimeType": "text/plain"
          },
          "redirectURL": "http://traefik.fairbnb.community/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/",
          "headersSize": 337,
          "bodySize": 0,
          "_transferSize": 0
        },
        "cache": {},
        "timings": {
          "blocked": 7.980000064879656,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0,
          "wait": 0.5439999977275729,
          "receive": 2.0929999882355332,
          "_blocked_queueing": 7.714000064879656
        },
        "serverIPAddress": "157.245.67.230",
        "_initiator": {
          "type": "other"
        },
        "_priority": "VeryHigh",
        "_resourceType": "other",
        "_fromCache": "disk",
        "pageref": "page_1"
      },
      {
        "startedDateTime": "2020-01-04T13:37:22.074Z",
        "time": 4.2990000220015645,
        "request": {
          "method": "GET",
          "url": "http://traefik.fairbnb.community/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "DNT",
              "value": "1"
            },
            {
              "name": "Upgrade-Insecure-Requests",
              "value": "1"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36"
            }
          ],
          "queryString": [],
          "cookies": [],
          "headersSize": 337,
          "bodySize": 0
        },
        "response": {
          "status": 301,
          "statusText": "Moved Permanently",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Content-Length",
              "value": "17"
            },
            {
              "name": "Content-Type",
              "value": "text/plain; charset=utf-8"
            },
            {
              "name": "Date",
              "value": "Fri, 03 Jan 2020 08:37:51 GMT"
            },
            {
              "name": "Location",
              "value": "http://traefik.fairbnb.community/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/"
            }
          ],
          "cookies": [],
          "content": {
            "size": 0,
            "mimeType": "text/plain"
          },
          "redirectURL": "http://traefik.fairbnb.community/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/",
          "headersSize": 347,
          "bodySize": 0,
          "_transferSize": 0
        },
        "cache": {},
        "timings": {
          "blocked": 1.7050000054240226,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0,
          "wait": 0.3689999545514584,
          "receive": 2.2250000620260835,
          "_blocked_queueing": 1.4990000054240227
        },
        "serverIPAddress": "157.245.67.230",
        "_initiator": {
          "type": "other"
        },
        "_priority": "VeryHigh",
        "_resourceType": "other",
        "_fromCache": "disk",
        "pageref": "page_1"
      },
      {
        "startedDateTime": "2020-01-04T13:37:22.078Z",
        "time": 3.7460000021383166,
        "request": {
          "method": "GET",
          "url": "http://traefik.fairbnb.community/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "DNT",
              "value": "1"
            },
            {
              "name": "Upgrade-Insecure-Requests",
              "value": "1"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36"
            }
          ],
          "queryString": [],
          "cookies": [],
          "headersSize": 347,
          "bodySize": 0
        },
        "response": {
          "status": 301,
          "statusText": "Moved Permanently",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Content-Length",
              "value": "17"
            },
            {
              "name": "Content-Type",
              "value": "text/plain; charset=utf-8"
            },
            {
              "name": "Date",
              "value": "Fri, 03 Jan 2020 08:37:51 GMT"
            },
            {
              "name": "Location",
              "value": "http://traefik.fairbnb.community/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/"
            }
          ],
          "cookies": [],
          "content": {
            "size": 0,
            "mimeType": "text/plain"
          },
          "redirectURL": "http://traefik.fairbnb.community/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/",
          "headersSize": 357,
          "bodySize": 0,
          "_transferSize": 0
        },
        "cache": {},
        "timings": {
          "blocked": 1.4489999241754412,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0,
          "wait": 0.3650000350922346,
          "receive": 1.9320000428706408,
          "_blocked_queueing": 1.2589999241754413
        },
        "serverIPAddress": "157.245.67.230",
        "_initiator": {
          "type": "other"
        },
        "_priority": "VeryHigh",
        "_resourceType": "other",
        "_fromCache": "disk",
        "pageref": "page_1"
      },
      {
        "startedDateTime": "2020-01-04T13:37:22.082Z",
        "time": 7.48499995097518,
        "request": {
          "method": "GET",
          "url": "http://traefik.fairbnb.community/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "DNT",
              "value": "1"
            },
            {
              "name": "Upgrade-Insecure-Requests",
              "value": "1"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36"
            }
          ],
          "queryString": [],
          "cookies": [],
          "headersSize": 357,
          "bodySize": 0
        },
        "response": {
          "status": 301,
          "statusText": "Moved Permanently",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Content-Length",
              "value": "17"
            },
            {
              "name": "Content-Type",
              "value": "text/plain; charset=utf-8"
            },
            {
              "name": "Date",
              "value": "Fri, 03 Jan 2020 08:37:52 GMT"
            },
            {
              "name": "Location",
              "value": "http://traefik.fairbnb.community/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/"
            }
          ],
          "cookies": [],
          "content": {
            "size": 0,
            "mimeType": "text/plain"
          },
          "redirectURL": "http://traefik.fairbnb.community/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/",
          "headersSize": 367,
          "bodySize": 0,
          "_transferSize": 0
        },
        "cache": {},
        "timings": {
          "blocked": 4.514999928586185,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0,
          "wait": 0.8699999808520078,
          "receive": 2.100000041536987,
          "_blocked_queueing": 4.194999928586185
        },
        "serverIPAddress": "157.245.67.230",
        "_initiator": {
          "type": "other"
        },
        "_priority": "VeryHigh",
        "_resourceType": "other",
        "_fromCache": "disk",
        "pageref": "page_1"
      },
      {
        "startedDateTime": "2020-01-04T13:37:22.089Z",
        "time": 32.700999989174306,
        "request": {
          "method": "GET",
          "url": "http://traefik.fairbnb.community/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/dashboard/",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Host",
              "value": "traefik.fairbnb.community"
            },
            {
              "name": "Connection",
              "value": "keep-alive"
            },
            {
              "name": "DNT",
              "value": "1"
            },
            {
              "name": "Upgrade-Insecure-Requests",
              "value": "1"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36"
            },
            {
              "name": "Accept",
              "value": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9"
            },
            {
              "name": "Accept-Encoding",
              "value": "gzip, deflate"
            },
            {
              "name": "Accept-Language",
              "value": "en-US,en;q=0.9,de;q=0.8,fr;q=0.7"
            },
            {
              "name": "Cookie",
              "value": "_sm_au_d=1"
            }
          ],
          "queryString": [],
          "cookies": [
            {
              "name": "_sm_au_d",
              "value": "1",
              "expires": null,
              "httpOnly": false,
              "secure": false
            }
          ],
          "headersSize": 661,
          "bodySize": 0
        },
        "response": {
          "status": 404,
          "statusText": "Not Found",
          "httpVersion": "HTTP/1.1",
          "headers": [
            {
              "name": "Content-Type",
              "value": "text/plain; charset=utf-8"
            },
            {
              "name": "X-Content-Type-Options",
              "value": "nosniff"
            },
            {
              "name": "Date",
              "value": "Sat, 04 Jan 2020 13:37:21 GMT"
            },
            {
              "name": "Content-Length",
              "value": "19"
            }
          ],
          "cookies": [],
          "content": {
            "size": 19,
            "mimeType": "text/plain",
            "compression": 0
          },
          "redirectURL": "",
          "headersSize": 157,
          "bodySize": 19,
          "_transferSize": 176
        },
        "cache": {},
        "timings": {
          "blocked": 2.5189999806955456,
          "dns": -1,
          "ssl": -1,
          "connect": -1,
          "send": 0.3900000000000001,
          "wait": 29.058000007376073,
          "receive": 0.7340000011026859,
          "_blocked_queueing": 1.2969999806955457,
          "_blocked_proxy": 0.362
        },
        "serverIPAddress": "157.245.67.230",
        "_initiator": {
          "type": "other"
        },
        "_priority": "VeryHigh",
        "_resourceType": "document",
        "connection": "1264251",
        "pageref": "page_1"
      }
    ]
  }
}

The network option (providers.docker.network in the static configuration or traefik.docker.network labels in the dynamic configuration) allow to manage the same thing: the way for traefik to get the container IP.

The traefik.docker.network label (in the dynamic configuration) overrides the providers.docker.network option (in the static configuration )

The network option is used by traefik to know on which network the container IP must be taken.
FYI the IP is different following the network.

This network need to be accessible by Traefik, because the routing of a request will call this IP.


api: {} is the YAML syntax for an empty object, so yes this activate the API with the default values. Same thing for tlsChallenge: {}


what happen to the Middleware, shown before

When you are using the insecure mode for the API/dashboard, Traefik creates some configuration (internal provider) to handle the API and the dashboard. If you don't use the insecure mode, Traefik doesn't create those elements.

It's not related to the issue you linked.


Also note that I use a different syntax for labels, because in YAML you can use both syntax to define the value of a map (labels are a map)

Syntax with - at the beginning of the line and = as separator between the key and the value:

myMap:
  - "key1=value1"
  - "key2=value2"
  - "key3=value3"

Syntax without - and with : as separator between the key and the value:

myMap:
  key1: value1
  key2: value2
  key3: value3

I prefer the second syntax because, for me, it's a better representation of the real type (a map).

It is accessible as soon as it linked to same network, although I noticed that you ping containers what are not on the same network, still trying to find out. It gonna be posted in Followed "quick start" but http "whoami" returns 404, what is wrong ? [help needed] [in progress] - Traefik v2 (latest) - Traefik Labs Community Forum but the proper heading would be The story of my ordeal, how I tried to get Traefik running and how I learned the basics of containers and namespace.


by the way are you on a PC 24h/7?
You always reply within minutes, what HIGHLY HIGHLY APPRECIATED :heart_eyes: :star_struck:

so https works :partying_face: :partying_face: :partying_face: :partying_face: :partying_face:
and I think I understood how that all works :slight_smile:.
@ldez can you tell me what app you use for the drawings?

my config

Treafik dynamic config

# https://stackoverflow.com/questions/49718431/docker-compose-yml-file-naming-convention
version: "3.7"

services:
  traefikV2:   
    # The official v2.0 Traefik docker image
    #image: traefik:latest 
    #image: traefik:v2.0
    image: traefik:v2.1.1
    container_name: traefik
    #command: 
    ## to work with custom traefik configuration file you have to declare the local path and mount the location on the host, see volume section
    #- --configFile=/etc/traefik/traefik-config.yaml
    
    ports:
      # The HTTP port
      - 80:80
      # The HTTPS port
      - 443:443
      # The Web UI (enabled by --api.insecure=true)
      #- "8080:8080"
    
    volumes:         
    # syntax --> host-location:path-in-container, see https://docs.docker.com/compose/compose-file/#volumes
      # So that Traefik can listen to the Docker events
      - /var/run/docker.sock:/var/run/docker.sock
      # mount the location for the log files to the host, so that I can read them on the host
        # chosen based on https://unix.stackexchange.com/questions/104936/where-are-all-the-posibilities-of-storing-a-log-file
      - /var/log/traefik:/var/log
      # mount the location for the certifcates to the host, so that I can read them on the host
        #based on https://www.getpagespeed.com/server-setup/ssl-directory and https://serverfault.com/questions/62496/ssl-certificate-location-on-unix-linux
      - /etc/ssl/certs/traefik/letsencrypt:/etc/ssl/certs/letsencrypt
      # I use a customized "traefik.toml", so it has to be mounted into the traefik container (or stored there), combine 
        # https://stackoverflow.com/questions/47382756/why-is-my-traefik-toml-file-not-be-read-by-docker-compose-configuration
        # https://stackoverflow.com/questions/57200728/can-the-default-location-of-the-traefik-configuration-file-be-changed-in-the-off
        # https://stackoverflow.com/questions/45902133/how-to-use-custom-traefik-toml-file
        # https://docs.traefik.io/getting-started/configuration-overview/
      - /opt/traefik/traefik-config.yaml:/etc/traefik/traefik.yaml
    
    labels:
      - traefik.enable=true
      #- "traefik.docker.network=bridge_proxy_traefikv2"
      
      #---HTTP ROUTER SECTION
      - traefik.http.routers.traefik_dashboard.rule=Host(`traefik.fairbnb.community`)
      - traefik.http.routers.traefik_dashboard.service=api@internal
      
         #---HTTP SECTION
      -  traefik.http.routers.traefik_dashboard.entrypoints=web
      -  traefik.http.routers.traefik_dashboard.middlewares=traefik_dashboard_redirect2https      
      #-  traefik.http.services.traefik_dashboard-service.loadBalancer.server.port=8080
      
      #---HTTPS ROUTER SECTION
      - traefik.http.routers.traefik_dashboard_secure.rule=Host(`traefik.fairbnb.community`)
      - traefik.http.routers.traefik_dashboard_secure.service=api@internal
           
         #---HTTPS SECTION
      -  traefik.http.routers.traefik_dashboard_secure.entrypoints=websecure      
      
         #---TLS SECTION
      -  traefik.http.routers.traefik_dashboard_secure.tls.certresolver=tlsChallenge_letsencrypt
      
      #---MIDDLEWARE SECTION redirect http to https
      - traefik.http.middlewares.traefik_dashboard_redirect2https.redirectscheme.scheme=https

    networks:
      - traefik

      
networks:
  traefik:
    external:
      name: bridge_proxy_traefikv2

Treafik Static Config

global:
  checkNewVersion: true
entryPoints:
  web:
    address: :80
  websecure:
    address: :443

api:
   debug: true

providers:
  docker:
    exposedByDefault: false
    network: bridge_proxy_traefikv2

log:
  level: DEBUG
  filePath: /var/log/traefik-log.log

accessLog:
  filePath: /var/log/traefik-access.log

certificatesResolvers:
  tlsChallenge_letsencrypt:
    acme:
      email: my.secret@gmail.com
      storage: /etc/ssl/certs/letsencrypt/acme.json
      tlsChallenge: {}

For the drawings, I use my phone (Samsung Galaxy Note 9 with SPen) and the S Note app (it's just a simple app made by Samsung to take notes), so I can draw by hand, it's quick and easy.

1 Like

as I now have

  1. Traefik dashboard
  2. discourse
  3. Mattermost

on https, thus I'm almost done with my first stage.
The last action on Traefik is authentication of the dashboard and whoami.
It is explained in https://containo.us/blog/traefik-2-0-docker-101-fc2893944b9d. I can either use [BasicAuth]-(https://docs.traefik.io/v2.0/middlewares/basicauth/) or DigestAuth whereby BasicAuth should be enough according to https://stackoverflow.com/questions/9534602/what-is-the-difference-between-digest-and-basic-authentication.
What it does not tell me, is how the user/password prompt is happening.
Will be there a browser built-in pop-up asking me for user and password?

yep, so that topic can be closed