Traefik 3 on a hardened image with ModSecurity CRS and Coraza WAF.
1.6K
A production runtime image of Traefik built on Docker's Hardened Image of Traefik (distroless: no shell, no package manager, runs as UID 65532), with both supported web-application-firewall plugins already inside the image so nothing is downloaded at start:
| Plugin | Version | Mode |
|---|---|---|
madebymode/traefik-modsecurity-plugin | 1.6.0 | forwards requests to an OWASP CRS (ModSecurity) sidecar for a verdict |
jcchavezs/coraza-http-wasm-traefik | 0.3.0 | in-process WebAssembly WAF (Coraza) |
Both are fetched by pinned release URL and verified against a recorded SHA-256 before they are copied into the image; the build fails if the checksum disagrees. Base images are pinned by digest.
linux/amd64, linux/arm64, published as a single manifest index.
<git sha> — every published build, immutable.vX.Y.Z — attached only after the build passed vulnerability and secret scanning and both
end-to-end WAF test lanes.latest. Pull by digest: docker pull steveubiera/traefik@sha256:<digest>.The same digest is published to ghcr.io/steveubiera/traefik; both registries carry identical bytes.
USER 65532; ports 80, 443, 8082 (metrics)./plugins-local/ with both plugins, /letsencrypt/ pre-created for a non-root ACME store.traefik healthcheck --ping against /etc/traefik/traefik.yml.Built once in CI, scanned (Trivy: vulnerabilities and secrets, HIGH/CRITICAL fail the build), exercised by live end-to-end lanes for each WAF engine, then published by digest. SBOM and provenance are generated at build time.
This is not an official Traefik image. Traefik is © Traefik Labs, Apache-2.0; the plugins are Apache-2.0 / MIT under their own repositories. Issues with the image itself: open an issue in the source repository.
Content type
Image
Digest
sha256:7b461b0f9…
Size
44.4 MB
Last updated
13 days ago
docker pull steveubiera/traefik:3.7.13-debian13