Skip to content

Instantly share code, notes, and snippets.

@markcameron
Last active December 8, 2020 22:59
Show Gist options
  • Save markcameron/ea0fe19fad425722ec646b6e14b3d80c to your computer and use it in GitHub Desktop.
Save markcameron/ea0fe19fad425722ec646b6e14b3d80c to your computer and use it in GitHub Desktop.
docker-compose.yml for traefik v2.2 with LetsEncrypt auto SSL and http -> https redirect - Replace <*> with your settings
version: "3.3"
services:
traefik:
image: "traefik:v2.2"
restart: unless-stopped
command:
- "--entrypoints.http.address=:80"
- "--entrypoints.https.address=:443"
- "--providers.docker"
- "--providers.docker.exposedbydefault=false"
- "--providers.docker.network=traefik"
- "--api"
- "--certificatesresolvers.letsencrypt.acme.email=<EMAIL>"
- "--certificatesresolvers.letsencrypt.acme.storage=/acme.json"
- "--certificatesresolvers.letsencrypt.acme.tlschallenge=true"
networks:
- traefik
ports:
- 80:80
- 443:443
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
# Don't forget to `touch acme.json; chmod 600 acme.json` before running `docker-compose up -d`
- ./acme.json:/acme.json
labels:
- "traefik.enable=true"
# Dashboard
- "traefik.http.routers.traefik.rule=Host(`<DASHBOARD_URL>`)"
- "traefik.http.routers.traefik.service=api@internal"
- "traefik.http.routers.traefik.tls.certresolver=letsencrypt"
- "traefik.http.routers.traefik.entrypoints=https"
- "traefik.http.routers.traefik.middlewares=authtraefik"
- "traefik.http.middlewares.authtraefik.basicauth.users=admin:<BASIC_AUTH_PASSWORD>"
# global redirect to https
- "traefik.http.routers.http-catchall.rule=hostregexp(`{host:.+}`)"
- "traefik.http.routers.http-catchall.entrypoints=http"
- "traefik.http.routers.http-catchall.middlewares=redirect-to-https"
# middleware redirect
- "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https"
networks:
traefik:
external: true
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment