Hi. Basically what im trying to do is a stateless traefik, where a dynamic configuration would be defined in Traefiks own docker compose file. Im not 100% sure if its possible, but been googling around and found mixed responses.This is from my Traefik docker compose:
\# Docker Provider
TRAEFIK_PROVIDERS_DOCKER: "true"
TRAEFIK_PROVIDERS_DOCKER_ENDPOINT: "tcp://traefik-socket-proxy:2375" TRAEFIK_PROVIDERS_DOCKER_EXPOSEDBYDEFAULT: "false"
TRAEFIK_PROVIDERS_DOCKER_NETWORK: "traefik"
# Middleware: Security Headers (secHeaders)
traefik.http.middlewares.securityHeaders.headers.browserXssFilter: "true"
traefik.http.middlewares.securityHeaders.headers.contentTypeNosniff: "true"
traefik.http.middlewares.securityHeaders.headers.forceSTSHeader: "true"
traefik.http.middlewares.securityHeaders.headers.stsIncludeSubdomains: "true"
traefik.http.middlewares.securityHeaders.headers.stsPreload: "true"
traefik.http.middlewares.securityHeaders.headers.stsSeconds: "31536000"
traefik.http.middlewares.securityHeaders.headers.customFrameOptionsValue: "SAMEORIGIN"
traefik.http.middlewares.securityHeaders.headers.customResponseHeaders.Content-Security-Policy: 'default-src ''self''; media-src ''self'' blob:; script-src ''self'' ''unsafe-inline'' ''unsafe-eval''; style-src ''self'' ''unsafe-inline''; img-src ''self'' data: cdn.jsdelivr.net; font-src ''self'' data:; object-src ''none''; frame-ancestors ''self''; connect-src ''self'';'
traefik.http.middlewares.securityHeaders.headers.customResponseHeaders.Referrer-Policy: 'strict-origin-when-cross-origin'
traefik.http.middlewares.securityHeaders.headers.customResponseHeaders.Permissions-Policy: 'microphone=(), geolocation=(), payment=(), usb=(), vr=(), camera=(), display-capture=(), accelerometer=(), gyroscope=(), magnetometer=(), midi=(), xr-spatial-tracking=(), screen-wake-lock=()'
traefik.http.middlewares.securityHeaders.headers.customResponseHeaders.X-Robots-Tag: 'noindex, nofollow, noarchive, nosnippet'
traefik.http.middlewares.securityHeaders.headers.customResponseHeaders.X-Frame-Options: 'SAMEORIGIN'
and now in the container ive got this:
traefik.http.routers.frigate.entrypoints: websecure
traefik.http.routers.frigate.rule: Host(`cctv.${DOMAIN_NAME}`)
traefik.http.routers.frigate.tls: "true"
traefik.http.routers.frigate.tls.certresolver: letsencrypt
traefik.http.routers.frigate.tls.domains[0].main: "${DOMAIN_NAME}"
traefik.http.routers.frigate.tls.domains[0].sans: "*.${DOMAIN_NAME}"
traefik.http.routers.frigate.middlewares: "securityHeaders@docker"
traefik.http.services.frigate.loadbalancer.server.port: "8971"
traefik.docker.network: "traefik"
Whenever i try to access that service via Traefik im getting 404 error. The middleware itself is fine, if i put exactly same middleware configuration in a dynamic configuration file and change securityHeaders@docker to securityHeaders@file, it works fine.
So my question really is - is it possible to reference a middleware defined in the Traefiks own stack from a different stack, and if so - what am i doing wrong?