Files
infrastructure/hosts/ps09rp/traefik/compose.yaml

73 lines
3.2 KiB
YAML

---
services:
traefik:
image: ghcr.io/traefik/traefik:v3.4.0
container_name: traefik
command:
- "--global.checkNewVersion=false"
- "--global.sendAnonymousUsage=false"
- "--api.insecure=false"
- "--api.dashboard=true"
- "--log.level=INFO"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entryPoints.web.address=:80"
- "--entrypoints.web.http.redirections.entryPoint.to=web-secure"
- "--entrypoints.web.http.redirections.entryPoint.scheme=https"
- "--entryPoints.web-secure.address=:443"
- "--entryPoints.web-secure.http.tls.options=default"
- "--entryPoints.web-secure.http.tls.certResolver=cloudflare"
- "--entryPoints.web-secure.http.tls.domains[0].main=*.alexlebens.net"
- "--entryPoints.web-secure.http.tls.domains[0].sans[0]=alexlebens.net"
- "--certificatesresolvers.cloudflare.acme.dnschallenge=true"
- "--certificatesresolvers.cloudflare.acme.dnschallenge.provider=cloudflare"
- "--certificatesresolvers.cloudflare.acme.dnschallenge.delaybeforecheck=10"
- "--certificatesresolvers.cloudflare.acme.dnschallenge.resolvers=1.1.1.1:53"
- "--certificatesresolvers.cloudflare.acme.email=alexanderlebens@gmail.com"
- "--certificatesresolvers.cloudflare.acme.storage=acme.json"
- "--metrics.prometheus=true"
- "--metrics.prometheus.buckets=0.1,0.3,1.2,5.0"
- "--metrics.prometheus.addEntryPointsLabels=true"
- "--metrics.prometheus.addRoutersLabels=true"
- "--metrics.prometheus.addServicesLabels=true"
- "--metrics.prometheus.entryPoint=web-secure"
- "--metrics.prometheus.manualRouting=true"
env_file:
- .env
environment:
- PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
labels:
traefik.enable: true
traefik.docker.network: internal
traefik.http.routers.dashboard.entrypoints: web-secure
traefik.http.routers.dashboard.rule: (Host(`traefik-ps09rp.alexlebens.net`) && (PathPrefix(`/api/`) || PathPrefix(`/dashboard/`)))
traefik.http.routers.dashboard.service: api@internal
traefik.http.routers.dashboard.tls: true
traefik.http.routers.dashboard.tls.certresolver: cloudflare
traefik.http.routers.metrics.entrypoints: web-secure
traefik.http.routers.metrics.rule: (Host(`traefik-ps09rp.alexlebens.net`) && Path(`/metrics`))
traefik.http.routers.metrics.service: prometheus@internal
traefik.http.routers.metrics.tls: true
traefik.http.routers.metrics.tls.certresolver: cloudflare
networks:
internal: null
ports:
- 80:80
- 443:443
privileged: true
restart: always
volumes:
- letsencrypt:/letsencrypt
- /var/run/docker.sock:/var/run/docker.sock:ro
networks:
internal:
name: internal
driver: bridge
ipam:
config:
- subnet: 172.18.0.0/16
volumes:
letsencrypt: