Files
selfhosting/traefik/docker-compose.yml
T

53 lines
2.3 KiB
YAML
Raw Normal View History

2020-06-27 14:55:16 +02:00
version: '3'
services:
traefik:
container_name: traefik
2020-06-27 16:47:01 +02:00
image: traefik:v2.2.1
2020-06-27 15:36:18 +02:00
command:
- --providers.docker=true
2020-06-27 17:38:40 +02:00
- --providers.docker.exposedbydefault=false
2020-06-27 15:45:25 +02:00
- --api.insecure # Don't do that in production
2020-06-27 17:38:40 +02:00
- --entrypoints.web.address=:80
2020-06-28 12:27:32 +02:00
- --entrypoints.websecure.address=:443
2020-06-28 12:49:38 +02:00
- --certificatesresolvers.letsencrypt.acme.email=${LETSENCRYPT_EMAIL}
- --certificatesresolvers.letsencrypt.acme.storage=/acme.json
2020-06-28 16:43:30 +02:00
- --certificatesResolvers.letsencrypt.acme.dnsChallenge=true
- --certificatesResolvers.letsencrypt.acme.dnsChallenge.resolvers=1.1.1.1:53,8.8.8.8:53
2020-06-28 17:03:17 +02:00
- --certificatesresolvers.letsencrypt.acme.dnschallenge.provider=gandiv5
2020-06-30 19:11:32 +02:00
- --certificatesResolvers.letsencrypt.acme.dnsChallenge.delayBeforeCheck=0
# staging server
2020-06-30 20:19:35 +02:00
#- --certificatesresolvers.letsencrypt.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory
2020-06-28 16:50:41 +02:00
environment:
2020-06-28 17:03:17 +02:00
- GANDIV5_API_KEY=${GANDIV5_API_KEY}
2020-06-28 12:51:37 +02:00
labels:
2020-06-28 13:13:38 +02:00
- traefik.enable=true
2020-06-28 15:50:51 +02:00
- traefik.http.routers.dashboard.rule=Host(`${HOST_TRAEFIK}.${DOMAIN}`)
2020-06-28 16:05:34 +02:00
- traefik.http.routers.dashboard.entrypoints=web
2020-06-28 15:50:51 +02:00
- traefik.http.routers.dashboard.entrypoints=websecure
2020-06-28 16:43:30 +02:00
- traefik.http.routers.dashboard.service=api@internal
2020-06-30 19:11:32 +02:00
#- traefik.http.routers.dashboard.tls=true
2020-06-28 16:43:30 +02:00
- traefik.http.routers.dashboard.tls.certresolver=letsencrypt
- traefik.http.routers.dashboard.tls.domains[0].main=${DOMAIN}
- traefik.http.routers.dashboard.tls.domains[0].sans=*.${DOMAIN}
#- traefik.http.services.dashboard.loadbalancer.server.port=8080
2020-06-28 17:06:40 +02:00
# - traefik.http.routers.dashboard.middlewares=redirect-to-https
2020-06-28 12:41:33 +02:00
# global redirect to https
2020-06-30 19:11:32 +02:00
- traefik.http.routers.http-catchall.rule=hostregexp(`{host:.+}`)
- traefik.http.routers.http-catchall.entrypoints=web
- traefik.http.routers.http-catchall.middlewares=redirect-to-https
2020-06-28 12:56:37 +02:00
# middleware redirect
2020-06-28 13:00:18 +02:00
- traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https
2020-06-28 16:05:34 +02:00
- traefik.http.middlewares.redirect-to-https.redirectscheme.permanent=true
2020-06-27 14:55:16 +02:00
ports:
- 80:80
2020-06-28 12:27:32 +02:00
- 443:443
2020-06-28 15:50:51 +02:00
expose:
- 8080
2020-06-27 14:55:16 +02:00
networks:
2020-06-27 15:06:38 +02:00
- srv
2020-06-27 14:55:16 +02:00
restart: unless-stopped
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
2020-06-30 19:11:32 +02:00
- /srv/hosting/traefik/acme.json:/acme.json