Skip to content

Instantly share code, notes, and snippets.

@IosifZ
Last active January 28, 2024 13:52
Show Gist options
  • Save IosifZ/f85ce274e02692bea100aa0f75e422e9 to your computer and use it in GitHub Desktop.
Save IosifZ/f85ce274e02692bea100aa0f75e422e9 to your computer and use it in GitHub Desktop.
version: '3.7'
services:
traefik_v2.0:
image: 'traefik:2.0'
container_name: traefik_v2.0
hostname: traefik_v2.0
ports:
- '443:443'
- '80:80'
- '8080:8080'
volumes:
- '/var/run/docker.sock:/var/run/docker.sock'
- './letsencrypt:/letsencrypt'
# - '.\traefik_v2\traefik.yml:/etc/traefik/traefik.yml'
- '.\traefik_v2\rules.yml:/rules.yml'
env_file:
- .env
restart: unless-stopped
domainname: '${ZONE}'
labels:
- com.ouroboros.enable=true
- "traefik.enable=true"
- "traefik.http.routers.traefik.entrypoints=web"
- "traefik.http.routers.traefik.rule=Host(`traefik.localhost`)"
- "traefik.http.routers.traefik_https.entrypoints=web-secure"
- "traefik.http.routers.traefik_https.rule=Host(`traefik.localhost`)"
- "traefik.http.routers.traefik_https.tls=true"
- "traefik.http.routers.traefik_https.tls.certresolver=basic"
# - "traefik.http.routers.traefik_https.service=api@internal"
- "traefik.http.routers.traefik_https.tls.domains[0].main=*.${ZONE}"
- "traefik.http.routers.traefik_https.tls.domains[0].sans=${ZONE}"
- "traefik.http.services.traefik.loadbalancer.server.port=8080"
- "traefik.http.middlewares.testHeader.headers.framedeny=true"
- "traefik.http.middlewares.testHeader.headers.sslredirect=true"
# middleware redirect
- "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https"
# global redirect to https
- "traefik.http.routers.redirs.rule=hostregexp(`{host:.+}`)"
- "traefik.http.routers.redirs.entrypoints=web"
- "traefik.http.routers.redirs.middlewares=redirect-to-https"
environment:
- "CLOUDFLARE_EMAIL=${EMAIL}"
- "CLOUDFLARE_API_KEY=${API_KEY}"
- "com.ouroboros.enable=true"
- "TZ=Europe/Bucharest"
command:
- '--log.level=DEBUG'
- '--log.format=json'
- '--global.checkNewVersion=true'
- '--global.sendAnonymousUsage=false'
- '--entryPoints.web.address=:80'
- '--entryPoints.web-secure.address=:443'
- '--api'
- '--api.debug'
- '--api.insecure'
- '--api.dashboard'
- '--ping'
- '--providers.docker.exposedByDefault=false'
- '--providers.docker.watch=true'
- '--providers.docker.swarmMode=false'
- '--providers.file.filename=/rules.yml'
- '--providers.file.watch=true'
# - '--providers.docker.tls.insecureSkipVerify=true'
- '--certificatesresolvers.basic.acme.storage=/acme.json'
- '--certificatesresolvers.basic.acme.dnschallenge=true'
- '--certificatesresolvers.basic.acme.dnschallenge.provider=cloudflare'
- '--certificatesresolvers.basic.acme.email=${EMAIL}'
- '--certificatesresolvers.basic.acme.dnsChallenge.resolvers=1.1.1.1'
- '--certificatesresolvers.basic.acme.dnsChallenge.delayBeforeCheck=0'
- '--certificatesresolvers.basic.acme.dnsChallenge.disablepropagationcheck=true'
# - '--certificatesresolvers.basic.acme.storage=/letsencrypt/acme.json'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment