I use traefik on OMV and have different container and file-provider, which works well. But one file-provider leads to "Gateway Timeout". The traefik.log says:
time="2024-04-22T12:01:50+02:00" level=debug msg="'504 Gateway Timeout' caused by: dial tcp 192.168.105.161:80: i/o timeout"
Here is my compose-file:
services:
traefik:
container_name: traefik
image: traefik:latest
volumes:
- /etc/localtime:/etc/localtime:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
- /srv/dev-disk-by-uuid-xxx/appdata/traefik/data/traefik.yml:/traefik.yml:ro
- /srv/dev-disk-by-uuid-xxx/appdata/traefik/data/acme_letsencrypt.json:/acme_letsencrypt.json
- /srv/dev-disk-by-uuid-xxx/appdata/traefik/data/conf:/conf
- /srv/dev-disk-by-uuid-xxx/appdata/traefik/logs:/logs
labels:
- "com.centurylinklabs.watchtower.enable=true"
- "traefik.enable=true"
- "traefik.http.routers.traefik.entrypoints=https"
- "traefik.http.routers.traefik.rule=Host(`traefik.xxxx.de`)"
- "traefik.http.routers.traefik.middlewares=traefikAuth@file,default@file"
- "traefik.http.routers.traefik.tls=true"
- "traefik.http.routers.traefik.tls.certresolver=http"
- "traefik.http.routers.traefik.service=api@internal"
- "traefik.http.services.traefik.loadbalancer.server.port=80"
- "traefik.http.services.traefik.loadbalancer.sticky.cookie.httpOnly=true"
- "traefik.http.services.traefik.loadbalancer.sticky.cookie.secure=true"
- "traefik.docker.network=proxy"
restart: unless-stopped
security_opt:
- no-new-privileges:true
networks:
proxy:
hostname: traefik
ports:
- "880:80"
- "8083:8080"
- "443:443/tcp"
- "443:443/udp"
Here my traefik.yml:
api:
dashboard: true
experimental:
http3: true
certificatesResolvers:
http:
acme:
email: "xx@xxx.de"
storage: "acme_letsencrypt.json"
httpChallenge:
entryPoint: http
entryPoints:
http:
address: ":80"
http:
redirections:
entryPoint:
to: "https"
scheme: "https"
https:
address: ":443"
http:
http3:
advertisedPort: "443"
global:
checknewversion: true
sendanonymoususage: false
providers:
docker:
endpoint: "unix:///var/run/docker.sock"
exposedByDefault: false
network: "proxy"
file:
directory: "/conf"
watch: true
providersThrottleDuration: 10
log:
level: "DEBUG"
filePath: "/logs/traefik.log"
accessLog:
filePath: "/logs/access.log"
Here the conf/dynamic_conf.yml:
tls:
options:
default:
minVersion: VersionTLS12
cipherSuites:
- TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
- TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
- TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305
- TLS_AES_128_GCM_SHA256
- TLS_AES_256_GCM_SHA384
- TLS_CHACHA20_POLY1305_SHA256
curvePreferences:
- CurveP521
- CurveP384
sniStrict: true
http:
middlewares:
traefikAuth:
basicAuth:
users:
- "xxx@xxx"
default:
chain:
middlewares:
- default-security-headers
- gzip
secHeaders:
chain:
middlewares:
- default-security-headers
- gzip
default-security-headers:
headers:
browserXssFilter: true
contentTypeNosniff: true
forceSTSHeader: true
frameDeny: true
stsIncludeSubdomains: true
stsPreload: true
stsSeconds: 31536000
customFrameOptionsValue: "SAMEORIGIN"
gzip:
compress: {}
And the conf/vuduo2.yml, the configuration for the file-provider:
http:
routers:
vuduo2:
entryPoints:
- "https"
- "http"
rule: "Host (`vuduo2.xxx.de`)"
middlewares:
- https-redirect
tls:
certResolver: http
service: vuduo2
services:
vuduo2:
loadBalancer:
servers:
- url: "http://192.168.105.161:80"
passHostHeader: true
middlewares:
https-redirect:
redirectScheme:
scheme: https
Has anyone an idea, where the problem is? It worked at first configuration, but after updates in OMV it does not. I have a similar file-configuration for pi-hole on a raspberrypi with a different IP, which still works.
Thanks in advance
Matthias