Apply to
traefik:v3.2
Example traefik compose.yaml
See purple4pur/docker_compose .
Example traefik.yaml
log:
level: "WARN"
api:
dashboard: true
providers:
docker:
endpoint: "unix:///var/run/docker.sock"
exposedbydefault: false
entryPoints:
web:
address: ":80"
websecure:
address: ":443"
certificatesResolvers:
cloudflare:
acme:
email: "[email protected]"
storage: "/letsencrypt/acme_cloudflare.json"
dnsChallenge:
provider: "cloudflare"
resolvers:
- "8.8.8.8:53"
- "1.1.1.1:53"
myresolver:
acme:
email: "[email protected]"
storage: "/letsencrypt/acme.json"
httpChallenge:
entryPoint: "web"
Route a https URL to an internal service on :8080
...
labels:
traefik.enable: true
traefik.http.services.SERVICE_X.loadbalancer.server.port: "8080"
traefik.http.routers.ROUTER_X.rule: "..."
traefik.http.routers.ROUTER_X.entrypoints: "websecure"
traefik.http.routers.ROUTER_X.tls.certresolver: "cloudflare"
traefik.http.routers.ROUTER_X.service: "SERVICE_X"
middleware: redirectregex
Redirect dashboard.hostname.com...
to https://hostname.com/dashboard...
:
...
labels:
...
# define redirectregex
traefik.http.middlewares.MIDDLEWARE_X.redirectregex.regex: "^(?:https?:\\/\\/)?dashboard\\.hostname\\.com(.*)"
traefik.http.middlewares.MIDDLEWARE_X.redirectregex.replacement: "https://hostname.com/dashboard$${1}"
...
# use redirectregex
traefik.http.routers.ROUTER_X.service: "noop@internal" # avoid auto linking this middleware to other services
traefik.http.routers.ROUTER_X.middlewares: "MIDDLEWARE_X"
middleware: basicAuth
...
labels:
...
# define basicAuth
traefik.http.middlewares.MIDDLEWARE_X.basicAuth.users: "test:$apr1$7ij1g6q3$WiPOcMX6m/gWCC3kKP9kh0"
...
# use basicAuth
traefik.http.routers.ROUTER_X.middlewares: "MIDDLEWARE_X"
, where users
field is Apache salted MD5 generated by htpasswd
:
htpasswd -n USERNAME
Published under Creative Commons Attribution-ShareAlike (CC-BY-SA) license. Feel free to comment or share :)