SWAG: nginx reverse proxy with certbot and fail2ban built in. Signed; SBOM and SLSA v1 provenance.
1.4K
readystack/swag:5.9.0-CE-ubuntu24.04-r3
Source, recipe and records
5.9.0-ls497): https://github.com/linuxserver/docker-swag/tree/24000edb531a50939fd4e1a9e5943aa659fb2dabA cosign-signed build of github.com/linuxserver/docker-swag 5.9.0 (GPL-3.0) with certbot 5.9.0 (Apache-2.0), nginx 1.30.6 (BSD-2-Clause) and fail2ban 1.1.1 (GPL-2.0), built from source, built clean-room from official upstream source by ReadyStack.
Signature, user and attestations below were measured on the published digest sha256:8274eeb875ba1829a6ea47724acc872f484d51c928a16dcba77f5748566788c1 on 2026-11-13.
04daa92344a52dbc) on this release's index digest sha256:8274eeb875ba1829a6ea47724acc872f484d51c928a16dcba77f5748566788c1; verify with cosign verify --key https://readystack.dev/keys/cosign.pub readystack/swag:5.9.0-CE-ubuntu24.04-r3.swag).This image follows the ReadyStack release-tag convention:
The current release is 5.9.0-CE-ubuntu24.04-r3 — the release listed at readystack.dev. Release tags use the pattern <upstream-version>-CE-<base-os>-r<N>; the current one is signed, attested (SBOM + provenance), and is provided under the ReadyStack Agreement.
Earlier release tags (an older version or revision in the same pattern) are superseded. They stay pullable so existing deployments can pin them, but they are no longer re-graded, and fixes appear only in newer releases: move to the current release. For a superseded release's build kit, ask support.
Release tags never move, so pulling the same tag again never changes the image. To be offered each new release automatically (a new revision r<N+1>, or a new upstream version), use the ReadyStack Renovate preset: https://readystack.dev/updates.html
Any tag beginning with internal- is an engineering-pipeline artifact published for build observability. It is unsupported, may change or disappear without notice, and must not be used in production.
# ✓ current release
docker pull readystack/swag:5.9.0-CE-ubuntu24.04-r3
# ✗ unsupported (do not pull)
docker pull readystack/swag:internal-...
This release is signed; verify it with cosign verify --key https://readystack.dev/keys/cosign.pub readystack/swag:5.9.0-CE-ubuntu24.04-r3 (the signature is recorded in the public Sigstore transparency log). Support: [email protected], as set out in the ReadyStack Agreement.
A single container running nginx as the non-root user swag (uid 999) on ports 8080 and 8443, which you publish as 80 and 443. Everything is in /config, as in linuxserver's image: nginx (nginx.conf, ssl.conf, site-confs/, proxy-confs/), keys (the certificate nginx uses), etc/letsencrypt (certbot's accounts and certificates), dns-conf (DNS provider credentials), www (the default site), fail2ban and log. A certificate is requested at start only when /config holds none for your domain, and renewal is checked every 12 hours. fail2ban runs only when the container is granted NET_ADMIN.
docker run -d --name swag -e URL=example.com -e SUBDOMAINS=www, -e VALIDATION=http -e [email protected] -p 80:8080 -p 443:8443 -v swag-config:/config readystack/swag:5.9.0-CE-ubuntu24.04-r3
Replace example.com with your domain, whose DNS points at this host, and keep ports 80 and 443 reachable for HTTP validation (or use VALIDATION=dns with DNSPLUGIN= and its credentials in /config/dns-conf/.ini, which the first start creates as a template: fill it in and restart). The second command adds --cap-add NET_ADMIN, which turns fail2ban on (its bans are iptables rules); without it fail2ban stays off and everything else works. To proxy an app, copy a sample in /config/nginx/proxy-confs to its name without .sample (keep the .subdomain.conf or .subfolder.conf ending), adjust it, and restart. SWAG_CERTBOT=false keeps the certificate you put in /config/keys and never contacts a certificate authority.
The complete --network=none build kit for this image — plus admin/DB/API handbooks, the build's validation records, and its build provenance records — is a free download for any registered account at readystack.dev/products/swag. A clean-room rebuild from this release's archive on an egress-blocked host reproduced its linux/amd64 digest sha256:581ed81debd1625f6d1f250e6d9131714a211d1edefb874fb9f76fd76619f91b on 2026-11-13.
— ReadyStack · readystack.dev
Content type
Image
Digest
sha256:8274eeb87…
Size
189.3 MB
Last updated
about 12 hours ago
docker pull readystack/swag:5.9.0-CE-ubuntu24.04-r3