Files
containers/traefik/traefik.toml
2025-09-21 20:20:44 +02:00

141 lines
3.8 KiB
TOML

[global]
checkNewVersion = true
sendAnonymousUsage = false
[entryPoints]
[entryPoints.web]
address = ":80"
[entryPoints.websecure]
address = ":443"
[entryPoints.metrics]
address = ":8082" # Dedicated port for Prometheus metrics
[entryPoints.ssh]
address = ":2222"
[entryPoints.ssh.transport]
[entryPoints.ssh.transport.lifeCycle]
graceTimeOut = "30s"
[entryPoints.ssh.transport.respondingTimeouts]
idleTimeout = "3m"
readTimeout = "1m"
[api]
dashboard = true
[metrics.prometheus]
entryPoint = "metrics"
addEntryPointsLabels = true
addServicesLabels = true
manualRouting = true
[log]
level = "INFO"
filePath = "/var/log/traefik/traefik.log"
[accessLog]
filePath = "/var/log/traefik/access.log"
[providers.docker]
endpoint = "unix:///var/run/docker.sock"
exposedByDefault = false
[certificatesResolvers.variomedia.acme]
email = "tim@unkrig.dev"
storage = "/letsencrypt/acme.json"
caServer = "https://acme-v02.api.letsencrypt.org/directory"
[certificatesResolvers.variomedia.acme.dnsChallenge]
provider = "variomedia"
delayBeforeCheck = 0
[providers]
[providers.file]
filename = "/etc/traefik/traefik.toml"
watch = true
[http.routers]
[http.routers.traefik]
rule = "Host(`traefik.unkrig.dev`)"
entryPoints = ["websecure"]
service = "api@internal"
tls.certresolver = "variomedia"
[http.routers.cloud_unkrig_dev]
rule = "Host(`cloud.unkrig.dev`)"
entryPoints = ["websecure"]
service = "cloud_unkrig_dev"
tls.certresolver = "variomedia"
middlewares = ["nextcloud-headers"]
[http.routers.git_unkrig_dev]
rule = "Host(`git.unkrig.dev`)"
entryPoints = ["websecure"]
service = "git_unkrig_dev"
tls.certresolver = "variomedia"
[http.routers.ha_unkrig_dev]
rule = "Host(`homeassistant.unkrig.dev`)"
entryPoints = ["websecure"]
service = "ha_unkrig_dev"
tls.certresolver = "variomedia"
[http.routers.auth_unkrig_dev]
rule = "Host(`auth.unkrig.dev`)"
entryPoints = ["websecure"]
service = "auth_unkrig_dev"
tls.certresolver = "variomedia"
middlewares = ["auth-headers"]
[http.routers.photos_unkrig_dev]
rule = "Host(`photos.unkrig.dev`)"
entryPoints = ["websecure"]
service = "photos_unkrig_dev"
tls.certresolver = "variomedia"
[http.services]
[http.services.cloud_unkrig_dev.loadBalancer]
[[http.services.cloud_unkrig_dev.loadBalancer.servers]]
url = "http://10.20.1.8:11000"
[http.services.git_unkrig_dev.loadBalancer]
[[http.services.git_unkrig_dev.loadBalancer.servers]]
url = "http://10.20.1.6:2345"
[http.services.ha_unkrig_dev.loadBalancer]
[[http.services.ha_unkrig_dev.loadBalancer.servers]]
url = "http://10.20.1.20:8123"
[http.services.auth_unkrig_dev.loadBalancer]
[[http.services.rss_unkrig_dev.loadBalancer.servers]]
url = "http://10.20.1.1:9000"
[http.services.rss_unkrig_dev.loadBalancer]
[[http.services.rss_unkrig_dev.loadBalancer.servers]]
url = "http://10.20.1.5:2283"
[http.middlewares]
[http.middlewares.nextcloud-headers.headers]
# stsSeconds = 15552000
# stsIncludeSubdomains = true
# stsPreload = true
# customFrameOptionsValue = "SAMEORIGIN"
# contentTypeNosniff = true
# browserXssFilter = true
# referrerPolicy = "no-referrer"
hostsProxyHeaders = [ "X-Forwarded-Host" ]
referrerPolicy = "same-origin"
[http.middlewares.auth-headers.headers]
hostsProxyHeaders = [ "X-Forwarded-Host" ]
referrerPolicy = "same-origin"
[tcp.routers]
[tcp.routers.git_ssh]
entryPoints = ["ssh"]
service = "git_ssh_service"
rule = "HostSNI(`*`)"
[tcp.services]
[tcp.services.git_ssh_service.loadBalancer]
[[tcp.services.git_ssh_service.loadBalancer.servers]]
address = "10.20.1.6:2346"