Skip to content

Instantly share code, notes, and snippets.

@bastiitsab
Created November 6, 2023 11:45
Show Gist options
  • Save bastiitsab/55be1f93ec1f136ae9e4f95103889fac to your computer and use it in GitHub Desktop.
Save bastiitsab/55be1f93ec1f136ae9e4f95103889fac to your computer and use it in GitHub Desktop.
traefik dahsboard publish
[+] Running 3/3
✔ Network traefik_default Created 0.0s
✔ Container traefik Created 0.1s
✔ Container simple-service Created 0.1s
Attaching to simple-service, traefik
simple-service | 2023/11/06 11:34:26 Starting up on port 80
traefik | time="2023-11-06T11:34:26Z" level=info msg="Configuration loaded from flags."
traefik | time="2023-11-06T11:34:26Z" level=info msg="Traefik version 2.10.5 built on 2023-10-11T13:54:02Z"
traefik | time="2023-11-06T11:34:26Z" level=debug msg="Static configuration loaded {\"global\":{\"checkNewVersion\":true},\"serversTransport\":{\"maxIdleConnsPerHost\":200},\"entryPoints\":{\"traefik\":{\"address\":\":8080\",\"transport\":{\"lifeCycle\":{\"graceTimeOut\":\"10s\"},\"respondingTimeouts\":{\"idleTimeout\":\"3m0s\"}},\"forwardedHeaders\":{},\"http\":{},\"http2\":{\"maxConcurrentStreams\":250},\"udp\":{\"timeout\":\"3s\"}},\"web\":{\"address\":\":80\",\"transport\":{\"lifeCycle\":{\"graceTimeOut\":\"10s\"},\"respondingTimeouts\":{\"idleTimeout\":\"3m0s\"}},\"forwardedHeaders\":{},\"http\":{},\"http2\":{\"maxConcurrentStreams\":250},\"udp\":{\"timeout\":\"3s\"}},\"websecure\":{\"address\":\":443\",\"transport\":{\"lifeCycle\":{\"graceTimeOut\":\"10s\"},\"respondingTimeouts\":{\"idleTimeout\":\"3m0s\"}},\"forwardedHeaders\":{},\"http\":{},\"http2\":{\"maxConcurrentStreams\":250},\"udp\":{\"timeout\":\"3s\"}}},\"providers\":{\"providersThrottleDuration\":\"2s\",\"docker\":{\"watch\":true,\"endpoint\":\"unix:///var/run/docker.sock\",\"defaultRule\":\"Host(`{{ normalize .Name }}`)\",\"swarmModeRefreshSeconds\":\"15s\"}},\"api\":{\"insecure\":true,\"dashboard\":true},\"log\":{\"level\":\"DEBUG\",\"format\":\"common\"},\"certificatesResolvers\":{\"myresolver\":{\"acme\":{\"email\":\"admin@tld.de\",\"caServer\":\"https://acme-v02.api.letsencrypt.org/directory\",\"storage\":\"/letsencrypt/acme.json\",\"keyType\":\"RSA4096\",\"certificatesDuration\":2160,\"dnsChallenge\":{\"provider\":\"cloudflare\"}}}}}"
traefik | time="2023-11-06T11:34:26Z" level=info msg="\nStats collection is disabled.\nHelp us improve Traefik by turning this feature on :)\nMore details on: https://doc.traefik.io/traefik/contributing/data-collection/\n"
traefik | time="2023-11-06T11:34:26Z" level=info msg="Starting provider aggregator aggregator.ProviderAggregator"
traefik | time="2023-11-06T11:34:26Z" level=debug msg="Starting TCP Server" entryPointName=web
traefik | time="2023-11-06T11:34:26Z" level=debug msg="Starting TCP Server" entryPointName=websecure
traefik | time="2023-11-06T11:34:26Z" level=debug msg="Starting TCP Server" entryPointName=traefik
traefik | time="2023-11-06T11:34:26Z" level=info msg="Starting provider *docker.Provider"
traefik | time="2023-11-06T11:34:26Z" level=debug msg="*docker.Provider provider configuration: {\"watch\":true,\"endpoint\":\"unix:///var/run/docker.sock\",\"defaultRule\":\"Host(`{{ normalize .Name }}`)\",\"swarmModeRefreshSeconds\":\"15s\"}"
traefik | time="2023-11-06T11:34:26Z" level=info msg="Starting provider *acme.ChallengeTLSALPN"
traefik | time="2023-11-06T11:34:26Z" level=debug msg="*acme.ChallengeTLSALPN provider configuration: {}"
traefik | time="2023-11-06T11:34:26Z" level=info msg="Starting provider *acme.Provider"
traefik | time="2023-11-06T11:34:26Z" level=debug msg="*acme.Provider provider configuration: {\"email\":\"admin@tld.de\",\"caServer\":\"https://acme-v02.api.letsencrypt.org/directory\",\"storage\":\"/letsencrypt/acme.json\",\"keyType\":\"RSA4096\",\"certificatesDuration\":2160,\"dnsChallenge\":{\"provider\":\"cloudflare\"},\"ResolverName\":\"myresolver\",\"store\":{},\"TLSChallengeProvider\":{},\"HTTPChallengeProvider\":{}}"
traefik | time="2023-11-06T11:34:26Z" level=debug msg="Attempt to renew certificates \"720h0m0s\" before expiry and check every \"24h0m0s\"" providerName=myresolver.acme ACME CA="https://acme-v02.api.letsencrypt.org/directory"
traefik | time="2023-11-06T11:34:26Z" level=info msg="Testing certificate renew..." providerName=myresolver.acme ACME CA="https://acme-v02.api.letsencrypt.org/directory"
traefik | time="2023-11-06T11:34:26Z" level=info msg="Starting provider *traefik.Provider"
traefik | time="2023-11-06T11:34:26Z" level=debug msg="*traefik.Provider provider configuration: {}"
traefik | time="2023-11-06T11:34:26Z" level=debug msg="Configuration received: {\"http\":{},\"tcp\":{},\"udp\":{},\"tls\":{}}" providerName=myresolver.acme
traefik | time="2023-11-06T11:34:26Z" level=debug msg="Configuration received: {\"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}},\"services\":{\"api\":{},\"dashboard\":{},\"noop\":{}},\"middlewares\":{\"dashboard_redirect\":{\"redirectRegex\":{\"regex\":\"^(http:\\\\/\\\\/(\\\\[[\\\\w:.]+\\\\]|[\\\\w\\\\._-]+)(:\\\\d+)?)\\\\/$\",\"replacement\":\"${1}/dashboard/\",\"permanent\":true}},\"dashboard_stripprefix\":{\"stripPrefix\":{\"prefixes\":[\"/dashboard/\",\"/dashboard\"]}}},\"serversTransports\":{\"default\":{\"maxIdleConnsPerHost\":200}}},\"tcp\":{},\"udp\":{},\"tls\":{}}" providerName=internal
traefik | time="2023-11-06T11:34:26Z" level=debug msg="Adding certificate for domain(s) whoami.my.tld"
traefik | time="2023-11-06T11:34:26Z" level=debug msg="Provider connection established with docker 24.0.7 (API 1.43)" providerName=docker
traefik | time="2023-11-06T11:34:26Z" level=debug msg="Filtering disabled container" providerName=docker container=traefik-traefik-bbf1aa9d7263a87d0361301da2c35a171c582a6deec16fd1ad5732ee1cd3c3cd
traefik | time="2023-11-06T11:34:26Z" level=debug msg="Filtering disabled container" providerName=docker container=portainer-portainer-d70bf2471a5f536de58d94680459f8522d2f50cf0a879e28e1c869cf2d6a831b
traefik | time="2023-11-06T11:34:26Z" level=debug msg="Configuration received: {\"http\":{\"routers\":{\"whoami\":{\"entryPoints\":[\"websecure\"],\"service\":\"whoami-traefik\",\"rule\":\"Host(`whoami.my.tld`)\",\"tls\":{\"certResolver\":\"myresolver\"}}},\"services\":{\"whoami-traefik\":{\"loadBalancer\":{\"servers\":[{\"url\":\"http://172.24.0.3:80\"}],\"passHostHeader\":true}}}},\"tcp\":{},\"udp\":{}}" providerName=docker
traefik | time="2023-11-06T11:34:26Z" level=debug msg="No default certificate, fallback to the internal generated certificate" tlsStoreName=default
traefik | time="2023-11-06T11:34:26Z" level=debug msg="Added outgoing tracing middleware dashboard@internal" middlewareType=TracingForwarder entryPointName=traefik routerName=dashboard@internal middlewareName=tracing
traefik | time="2023-11-06T11:34:26Z" level=debug msg="Creating middleware" routerName=dashboard@internal entryPointName=traefik middlewareName=dashboard_stripprefix@internal middlewareType=StripPrefix
traefik | time="2023-11-06T11:34:26Z" level=debug msg="Adding tracing to middleware" routerName=dashboard@internal middlewareName=dashboard_stripprefix@internal entryPointName=traefik
traefik | time="2023-11-06T11:34:26Z" level=debug msg="Creating middleware" middlewareName=dashboard_redirect@internal middlewareType=RedirectRegex entryPointName=traefik routerName=dashboard@internal
traefik | time="2023-11-06T11:34:26Z" level=debug msg="Setting up redirection from ^(http:\\/\\/(\\[[\\w:.]+\\]|[\\w\\._-]+)(:\\d+)?)\\/$ to ${1}/dashboard/" middlewareType=RedirectRegex entryPointName=traefik routerName=dashboard@internal middlewareName=dashboard_redirect@internal
traefik | time="2023-11-06T11:34:26Z" level=debug msg="Adding tracing to middleware" middlewareName=dashboard_redirect@internal entryPointName=traefik routerName=dashboard@internal
traefik | time="2023-11-06T11:34:26Z" level=debug msg="Added outgoing tracing middleware api@internal" entryPointName=traefik routerName=api@internal middlewareName=tracing middlewareType=TracingForwarder
traefik | time="2023-11-06T11:34:26Z" level=debug msg="Creating middleware" middlewareName=traefik-internal-recovery middlewareType=Recovery entryPointName=traefik
traefik | time="2023-11-06T11:34:26Z" level=debug msg="Adding certificate for domain(s) whoami.my.tld"
traefik | time="2023-11-06T11:34:27Z" level=debug msg="No default certificate, fallback to the internal generated certificate" tlsStoreName=default
traefik | time="2023-11-06T11:34:27Z" level=debug msg="Added outgoing tracing middleware api@internal" routerName=api@internal middlewareName=tracing middlewareType=TracingForwarder entryPointName=traefik
traefik | time="2023-11-06T11:34:27Z" level=debug msg="Added outgoing tracing middleware dashboard@internal" entryPointName=traefik routerName=dashboard@internal middlewareName=tracing middlewareType=TracingForwarder
traefik | time="2023-11-06T11:34:27Z" level=debug msg="Creating middleware" middlewareName=dashboard_stripprefix@internal middlewareType=StripPrefix entryPointName=traefik routerName=dashboard@internal
traefik | time="2023-11-06T11:34:27Z" level=debug msg="Adding tracing to middleware" entryPointName=traefik routerName=dashboard@internal middlewareName=dashboard_stripprefix@internal
traefik | time="2023-11-06T11:34:27Z" level=debug msg="Creating middleware" entryPointName=traefik routerName=dashboard@internal middlewareName=dashboard_redirect@internal middlewareType=RedirectRegex
traefik | time="2023-11-06T11:34:27Z" level=debug msg="Setting up redirection from ^(http:\\/\\/(\\[[\\w:.]+\\]|[\\w\\._-]+)(:\\d+)?)\\/$ to ${1}/dashboard/" entryPointName=traefik routerName=dashboard@internal middlewareName=dashboard_redirect@internal middlewareType=RedirectRegex
traefik | time="2023-11-06T11:34:27Z" level=debug msg="Adding tracing to middleware" entryPointName=traefik middlewareName=dashboard_redirect@internal routerName=dashboard@internal
traefik | time="2023-11-06T11:34:27Z" level=debug msg="Creating middleware" entryPointName=traefik middlewareName=traefik-internal-recovery middlewareType=Recovery
traefik | time="2023-11-06T11:34:27Z" level=debug msg="Creating middleware" routerName=whoami@docker entryPointName=websecure serviceName=whoami-traefik middlewareName=pipelining middlewareType=Pipelining
traefik | time="2023-11-06T11:34:27Z" level=debug msg="Creating load-balancer" routerName=whoami@docker entryPointName=websecure serviceName=whoami-traefik
traefik | time="2023-11-06T11:34:27Z" level=debug msg="Creating server 0 http://172.24.0.3:80" entryPointName=websecure serviceName=whoami-traefik routerName=whoami@docker serverName=0
traefik | time="2023-11-06T11:34:27Z" level=debug msg="child http://172.24.0.3:80 now UP"
traefik | time="2023-11-06T11:34:27Z" level=debug msg="Propagating new UP status"
traefik | time="2023-11-06T11:34:27Z" level=debug msg="Added outgoing tracing middleware whoami-traefik" middlewareType=TracingForwarder entryPointName=websecure routerName=whoami@docker middlewareName=tracing
traefik | time="2023-11-06T11:34:27Z" level=debug msg="Creating middleware" middlewareName=traefik-internal-recovery middlewareType=Recovery entryPointName=websecure
traefik | time="2023-11-06T11:34:27Z" level=debug msg="Adding route for whoami.my.tld with TLS options default" entryPointName=websecure
traefik | time="2023-11-06T11:34:27Z" level=debug msg="Trying to challenge certificate for domain [whoami.my.tld] found in HostSNI rule" rule="Host(`whoami.my.tld`)" routerName=whoami@docker providerName=myresolver.acme ACME CA="https://acme-v02.api.letsencrypt.org/directory"
traefik | time="2023-11-06T11:34:27Z" level=debug msg="Looking for provided certificate(s) to validate [\"whoami.my.tld\"]..." ACME CA="https://acme-v02.api.letsencrypt.org/directory" rule="Host(`whoami.my.tld`)" routerName=whoami@docker providerName=myresolver.acme
traefik | time="2023-11-06T11:34:27Z" level=debug msg="No ACME certificate generation required for domains [\"whoami.my.tld\"]." rule="Host(`whoami.my.tld`)" routerName=whoami@docker providerName=myresolver.acme ACME CA="https://acme-v02.api.letsencrypt.org/directory"
version: "3.3"
secrets:
CF_DNS_API_TOKEN:
file: "/etc/docker/.secrets/.CF_DNS_API_TOKEN"
services:
traefik:
image: "traefik:v2.10"
container_name: "traefik"
command:
- "--log.level=DEBUG"
- "--api.insecure=true" # - "--api"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.web.address=:80"
- "--entrypoints.websecure.address=:443"
- "--certificatesresolvers.myresolver.acme.dnschallenge=true"
- "--certificatesresolvers.myresolver.acme.dnschallenge.provider=cloudflare"
#- "--certificatesresolvers.myresolver.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory"
- "--certificatesresolvers.myresolver.acme.email=admin@my.tld"
- "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
labels:
- "traefik.http.middlewares.httpsonly.redirectscheme.scheme=https"
- "traefik.http.middlewares.httpsonly.redirectscheme.permanent=true"
- "traefik.http.routers.httpsonly.rule=HostRegexp(`{any:.*}`)"
- "traefik.http.routers.httpsonly.middlewares=httpsonly"
- "traefik.http.routers.dashboard.rule=Host(`traefik.my.tld`)"
- "traefik.http.routers.dashboard.service=dashboard@internal"
- "traefik.http.routers.api.rule=Host(`traefik.my.tld`) && PathPrefix(`/api`)"
- "traefik.http.routers.api.service=api@internal"
- "traefik.http.routers.dashboard.tls=true"
- "traefik.http.routers.dashboard.tls.certresolver=myresolver"
- "traefik.http.routers.dashboard.entrypoints=websecure"
- "traefik.http.routers.api.tls=true"
- "traefik.http.routers.api.tls.certresolver=myresolver"
ports:
- "80:80"
- "443:443"
- "8080:8080"
secrets:
- "CF_DNS_API_TOKEN"
environment:
- "CF_DNS_API_TOKEN_FILE=/run/secrets/CF_DNS_API_TOKEN"
volumes:
- "./letsencrypt:/letsencrypt"
- "/var/run/docker.sock:/var/run/docker.sock:ro"
whoami:
image: "traefik/whoami"
container_name: "simple-service"
labels:
- "traefik.enable=true"
- "traefik.http.routers.whoami.rule=Host(`whoami.my.tld`)"
- "traefik.http.routers.whoami.entrypoints=websecure"
- "traefik.http.routers.whoami.tls.certresolver=myresolver"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment