I am having trouble uploading larger files to my services behind traefik. In this case the service is pwndrop and the filesize is 970MB. It breaks somewhere between 64MB (works) and 100MB (does not work).
This is the error I get in Edge:
This is the error I get in Firefox:
With Firefox the upload doesn't even start and in Edge it starts but stops at the exact same time every time. Without traefik the upload works just fine in Firefox and Edge. Do I have to change some settings to make this work with traefik?
Here are my config files:
docker-compose.yml
version: '3.8'
networks:
internal:
external: false
proxy:
external: true
services:
traefik:
image: traefik
container_name: traefik
restart: always
networks:
- proxy
ports:
- 443:443/tcp
- 80:80/tcp
environment:
- CF_API_EMAIL=$CLOUDFLARE_EMAIL
- CF_API_KEY=$CLOUDFLARE_API_KEY
volumes:
- /var/run/docker.sock:/var/run/docker.sock:rw
- $DOCKERDIR/traefik/acme.json:/acme.json:rw
- $DOCKERDIR/traefik/dynamic.toml:/dynamic.toml:rw
- $DOCKERDIR/traefik/traefik.toml:/traefik.toml:rw
command:
- --entrypoints.web-secure.http.tls.domains[0].main=$DOMAINNAME
- --entrypoints.web-secure.http.tls.domains[0].sans=*.$DOMAINNAME
labels:
traefik.enable: true
traefik.http.routers.traefik.entrypoints: web-secure
traefik.http.routers.traefik.rule: Host(`traefik-vps.$DOMAINNAME`)
traefik.http.routers.traefik.service: api@internal
pwndrop:
image: ghcr.io/linuxserver/pwndrop
container_name: pwndrop
networks:
- proxy
environment:
- PGID=$PGID
- PUID=$PUID
- TZ=$TZ
volumes:
- $DOCKERDIR/pwndrop:/config
restart: unless-stopped
ports:
- 8080:8080
labels:
traefik.enable: true
traefik.http.routers.pwndrop.entrypoints: web-secure
traefik.http.routers.pwndrop.rule: Host(`pwndrop.$DOMAINNAME`)
traefik.http.services.pwndrop.loadbalancer.server.port: 8080
traefik.http.services.pwndrop.loadbalancer.server.scheme: http
traefik.toml
[global]
checkNewVersion = true
sendAnonymousUsage = false
[serversTransport]
insecureSkipVerify = true
maxIdleConnsPerHost = 0
################################################################
# Entrypoints configuration
################################################################
[entryPoints]
[entryPoints.web]
address = ":80"
[entryPoints.web.http.redirections]
[entryPoints.web.http.redirections.entryPoint]
to = "web-secure"
scheme = "https"
[entryPoints.web-secure]
address = ":443"
[entryPoints.web-secure.http.tls]
certResolver = "default"
[entryPoints.metrics]
address = ":8082"
################################################################
# Traefik logs configuration
################################################################
[log]
level = "ERROR"
################################################################
# Access logs configuration
################################################################
[accessLog]
filePath = "/var/log/access.log"
################################################################
# Metrics configuration
################################################################
[metrics]
[metrics.prometheus]
entryPoint = "metrics"
################################################################
# API and dashboard configuration
################################################################
[api]
dashboard = true
insecure = false
################################################################
# Providers
################################################################
[providers.docker]
endpoint = "unix:///var/run/docker.sock"
exposedByDefault = false
network = "proxy"
watch = true
[providers.file]
filename = "dynamic.toml"
watch = true
################################################################
# TLS
################################################################
[tls]
[tls.options]
[tls.options.default]
minVersion = "VersionTLS12"
sniStrict = true
################################################################
# Cert Resolver
################################################################
[certificatesResolvers]
[certificatesResolvers.default]
[certificatesResolvers.default.acme]
email = "****@*****.***"
storage = "acme.json"
[certificatesResolvers.default.acme.dnsChallenge]
provider = "cloudflare"
delayBeforeCheck = "90"
resolvers = ["1.1.1.1:53", "8.8.8.8:53"]