74 lines
2.9 KiB
YAML
74 lines
2.9 KiB
YAML
|
|
x-logging: &default-logging
|
|
options:
|
|
max-size: 32m
|
|
max-file: 4
|
|
|
|
services:
|
|
traefik:
|
|
container_name: traefik
|
|
image: traefik:3.5.1
|
|
restart: unless-stopped
|
|
env_file: .env
|
|
logging: *default-logging
|
|
depends_on:
|
|
- authelia
|
|
command:
|
|
- --api.insecure=true
|
|
- --providers.docker=true
|
|
- --providers.docker.watch=true
|
|
- --providers.docker.exposedbydefault=false
|
|
- --providers.file.directory=/config
|
|
- --providers.file.watch=true
|
|
|
|
- --accesslog
|
|
- --accesslog.format=json
|
|
|
|
- --entryPoints.http.address=:80
|
|
|
|
- --entryPoints.http.forwardedHeaders.trustedIPs=10.0.0.0/8,172.16.0.0/14,192.168.0.0/16,fc00::/7
|
|
- --entryPoints.http.proxyProtocol.trustedIPs=192.168.0.0/16
|
|
- --entryPoints.http.forwardedHeaders.insecure=false
|
|
- --entryPoints.http.proxyProtocol.insecure=false
|
|
|
|
- --entryPoints.https=true
|
|
- --entryPoints.https.address=:443
|
|
- --entryPoints.https.forwardedHeaders.trustedIPs=10.0.0.0/8,172.16.0.0/14,192.168.0.0/16,fc00::/7
|
|
- --entryPoints.https.proxyProtocol.trustedIPs=192.168.0.0/16
|
|
- --entryPoints.https.forwardedHeaders.insecure=false
|
|
- --entryPoints.https.proxyProtocol.insecure=false
|
|
|
|
- --entryPoints.http.http.redirections.entrypoint.to=https
|
|
- --entryPoints.http.http.redirections.entrypoint.scheme=https
|
|
|
|
- --certificatesresolvers.letsencrypt
|
|
- --certificatesresolvers.letsencrypt.acme.storage=acme.json
|
|
- --certificatesresolvers.letsencrypt.acme.email=joemonk@hotmail.co.uk
|
|
- --certificatesresolvers.letsencrypt.acme.dnsChallenge.provider=route53
|
|
# Uncomment to use the staging env for testing volumes etc
|
|
- --certificatesresolvers.letsencrypt.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory
|
|
ports:
|
|
- 80:80
|
|
- 443:443
|
|
- 8080:8080
|
|
volumes:
|
|
- /mnt/cache/appdata/traefik/config:/config
|
|
- /mnt/user/appdata/traefik/letsencrypt/acme.json:/acme.json
|
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
|
labels:
|
|
- traefik.enable=true
|
|
|
|
- traefik.http.middlewares.authelia.forwardAuth.address=http://authelia:9091/api/authz/forward-auth
|
|
- traefik.http.middlewares.authelia.forwardAuth.trustForwardHeader=true
|
|
- traefik.http.middlewares.authelia.forwardAuth.authResponseHeaders=Remote-User,Remote-Groups,Remote-Name,Remote-Email
|
|
|
|
- traefik.http.routers.traefik.entryPoints=https
|
|
- traefik.http.routers.traefik.rule=Host(`traefik.home.joemonk.co.uk`)
|
|
- traefik.http.routers.traefik.tls=true
|
|
- traefik.http.routers.traefik.tls.certresolver=letsencrypt
|
|
- traefik.http.routers.traefik.tls.domains[0].main=traefik.home.joemonk.co.uk
|
|
- traefik.http.routers.traefik.service=traefik
|
|
- traefik.http.routers.traefik.middlewares=authentik-traefik@docker
|
|
|
|
- traefik.http.services.traefik.loadbalancer.server.port=8080
|