Skip to content

Instantly share code, notes, and snippets.

@LeandroBarral
Created May 1, 2020 15:04
Show Gist options
  • Save LeandroBarral/a75bc75954a48412934887a8f5992c15 to your computer and use it in GitHub Desktop.
Save LeandroBarral/a75bc75954a48412934887a8f5992c15 to your computer and use it in GitHub Desktop.
Medium: Traefik 2 - Setup Reverse Proxy with Let's Encrypt and Cloudflare Support
version: '3'
services:
traefik-reverse-proxy:
container_name: traefik
image: traefik:v2.2.1
command:
- --api=true
- --api.dashboard=true
- --entrypoints.web.address=:80
- --entrypoints.websecure.address=:443
- --entrypoints.websecure.http.tls.domains[0].main=$TRAEFIK_BASE_DNS
- --entrypoints.websecure.http.tls.domains[0].sans=*.$TRAEFIK_BASE_DNS
- --certificatesresolvers.cloudflare.acme.email=$TRAEFIK_ACME_EMAIL
- --certificatesresolvers.cloudflare.acme.dnschallenge=true
- --certificatesresolvers.cloudflare.acme.dnschallenge.delaybeforecheck=0
- --certificatesresolvers.cloudflare.acme.dnschallenge.provider=cloudflare
- --certificatesresolvers.cloudflare.acme.dnschallenge.resolvers[0]=1.1.1.1:53
- --certificatesresolvers.cloudflare.acme.dnschallenge.resolvers[1]=8.8.8.8:53
- --certificatesresolvers.cloudflare.acme.caServer=$TRAEFIK_ACME_CASERVER
- --certificatesresolvers.cloudflare.acme.storage=/acme.json
- --api.debug=$TRAEFIK_DEBUG
- --log=$TRAEFIK_LOG
- --log.level=ERROR
- --providers.docker=true
- --providers.docker.exposedbydefault=false
- --providers.docker.network=web
restart: unless-stopped
networks:
- web
ports:
- '80:80'
- '443:443'
expose:
- 8080
labels:
- traefik.enable=true
- traefik.network=web
- traefik.port=8080
- traefik.http.routers.traefik.service=api@internal
- traefik.http.routers.traefik.rule=Host(`$TRAEFIK_DASHBOARD_HOST`)
- traefik.http.routers.traefik.middlewares=traefik-auth
- traefik.http.middlewares.traefik-auth.basicauth.users=$TRAEFIK_USER_PASS
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- /opt/traefik/acme.json:/acme.json
environment:
- CLOUDFLARE_EMAIL=$CLOUDFLARE_EMAIL
- CLOUDFLARE_API_KEY=$CLOUDFLARE_API_KEY
networks:
web:
external: true
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment