caddy

Caddy web server with automatic HTTPS and Let's Encrypt certificates. Shell-less Go binary built from source, signed and rebuilt daily against CVE fixes.

Vulnerabilities
Compressed size
20 MB
Architectures
amd64, arm64
Default user
caddy (65532)
Last built
today

Pull this image

docker pull ghcr.io/rtvkiz/minimal-caddy:latest
Repository
ghcr.io/rtvkiz/minimal-caddy
Digest
sha256:84c90d36f477ded2a422b747424c1116934912e2dfc9afb361d8076079115c61
Built at
2026-11-12T08:00:56Z
Primary package
caddy
Entrypoint
/usr/bin/caddy run --config /etc/caddy/Caddyfile --adapter caddyfile
User
caddy (65532)
Working dir
/
Architectures
x86_64, aarch64
Environment
PATH=/usr/bin:/bin
Labels
org.opencontainers.image.titleminimal-caddy
org.opencontainers.image.descriptionHardened shell-less Caddy web server image built from source via melange with daily CVE patches
org.opencontainers.image.urlhttps://github.com/rtvkiz/minimal
org.opencontainers.image.sourcehttps://github.com/rtvkiz/minimal/tree/main/images/caddy
org.opencontainers.image.licensesApache-2.0
TagPullPublished
2 ghcr.io/rtvkiz/minimal-caddy:2 2026-11-12
2.11 ghcr.io/rtvkiz/minimal-caddy:2.11 2026-11-12
2.11.9-r0 ghcr.io/rtvkiz/minimal-caddy:2.11.9-r0 2026-11-12
2.11.9-r0-20261112 ghcr.io/rtvkiz/minimal-caddy:2.11.9-r0-20261112 2026-11-12
latest ghcr.io/rtvkiz/minimal-caddy:latest 2026-11-12
2-dev ghcr.io/rtvkiz/minimal-caddy:2-dev 2026-11-12
2.11-dev ghcr.io/rtvkiz/minimal-caddy:2.11-dev 2026-11-12
2.11.9-r0-20261112-dev ghcr.io/rtvkiz/minimal-caddy:2.11.9-r0-20261112-dev 2026-11-12
2.11.9-r0-dev ghcr.io/rtvkiz/minimal-caddy:2.11.9-r0-dev 2026-11-12
latest-dev ghcr.io/rtvkiz/minimal-caddy:latest-dev 2026-11-12
2.11.9-r0-20261111-dev ghcr.io/rtvkiz/minimal-caddy:2.11.9-r0-20261111-dev 2026-11-11
2.11.9-r0-20261111 ghcr.io/rtvkiz/minimal-caddy:2.11.9-r0-20261111 2026-11-11
2.11.9-r0-20261110 ghcr.io/rtvkiz/minimal-caddy:2.11.9-r0-20261110 2026-11-10
2.11.9-r0-20261110-dev ghcr.io/rtvkiz/minimal-caddy:2.11.9-r0-20261110-dev 2026-11-10
2.11.9-r0-20261109 ghcr.io/rtvkiz/minimal-caddy:2.11.9-r0-20261109 2026-11-09
2.11.9-r0-20261109-dev ghcr.io/rtvkiz/minimal-caddy:2.11.9-r0-20261109-dev 2026-11-09
2.11.9-r0-20261108 ghcr.io/rtvkiz/minimal-caddy:2.11.9-r0-20261108 2026-11-08
2.11.9-r0-20261108-dev ghcr.io/rtvkiz/minimal-caddy:2.11.9-r0-20261108-dev 2026-11-08
2.11.9-r0-20261107 ghcr.io/rtvkiz/minimal-caddy:2.11.9-r0-20261107 2026-11-07
2.11.9-r0-20261107-dev ghcr.io/rtvkiz/minimal-caddy:2.11.9-r0-20261107-dev 2026-11-07
2.11.9-r0-20261106 ghcr.io/rtvkiz/minimal-caddy:2.11.9-r0-20261106 2026-11-06
2.11.9-r0-20261106-dev ghcr.io/rtvkiz/minimal-caddy:2.11.9-r0-20261106-dev 2026-11-06
2.11.9-r0-20261105 ghcr.io/rtvkiz/minimal-caddy:2.11.9-r0-20261105 2026-11-05
2.11.9-r0-20261105-dev ghcr.io/rtvkiz/minimal-caddy:2.11.9-r0-20261105-dev 2026-11-05
2.11.7-r0 ghcr.io/rtvkiz/minimal-caddy:2.11.7-r0 2026-11-05
2.11.7-r0-20261105 ghcr.io/rtvkiz/minimal-caddy:2.11.7-r0-20261105 2026-11-05
2.11.7-r0-20261105-dev ghcr.io/rtvkiz/minimal-caddy:2.11.7-r0-20261105-dev 2026-11-05
2.11.7-r0-dev ghcr.io/rtvkiz/minimal-caddy:2.11.7-r0-dev 2026-11-05
2.11.7-r0-20261104 ghcr.io/rtvkiz/minimal-caddy:2.11.7-r0-20261104 2026-11-04
2.11.7-r0-20261104-dev ghcr.io/rtvkiz/minimal-caddy:2.11.7-r0-20261104-dev 2026-11-04
2.11.7-r0-20261029 ghcr.io/rtvkiz/minimal-caddy:2.11.7-r0-20261029 2026-10-29
2.11.7-r0-20261029-dev ghcr.io/rtvkiz/minimal-caddy:2.11.7-r0-20261029-dev 2026-10-29
2.11.7-r0-20261027 ghcr.io/rtvkiz/minimal-caddy:2.11.7-r0-20261027 2026-10-27
2.11.7-r0-20261027-dev ghcr.io/rtvkiz/minimal-caddy:2.11.7-r0-20261027-dev 2026-10-27
2.11.7-r0-20261026 ghcr.io/rtvkiz/minimal-caddy:2.11.7-r0-20261026 2026-10-26
2.11.7-r0-20261026-dev ghcr.io/rtvkiz/minimal-caddy:2.11.7-r0-20261026-dev 2026-10-26
2.11.7-r0-20261025 ghcr.io/rtvkiz/minimal-caddy:2.11.7-r0-20261025 2026-10-25
2.11.7-r0-20261025-dev ghcr.io/rtvkiz/minimal-caddy:2.11.7-r0-20261025-dev 2026-10-25
2.11.7-r0-20261024 ghcr.io/rtvkiz/minimal-caddy:2.11.7-r0-20261024 2026-10-24
2.11.7-r0-20261024-dev ghcr.io/rtvkiz/minimal-caddy:2.11.7-r0-20261024-dev 2026-10-24
2.11.7-r0-20261023 ghcr.io/rtvkiz/minimal-caddy:2.11.7-r0-20261023 2026-10-23
2.11.7-r0-20261023-dev ghcr.io/rtvkiz/minimal-caddy:2.11.7-r0-20261023-dev 2026-10-23
2.11.7-r0-20261022 ghcr.io/rtvkiz/minimal-caddy:2.11.7-r0-20261022 2026-10-22
2.11.7-r0-20261022-dev ghcr.io/rtvkiz/minimal-caddy:2.11.7-r0-20261022-dev 2026-10-22
2.11.7-r0-20261021 ghcr.io/rtvkiz/minimal-caddy:2.11.7-r0-20261021 2026-10-21
2.11.7-r0-20261021-dev ghcr.io/rtvkiz/minimal-caddy:2.11.7-r0-20261021-dev 2026-10-21
2.11.7-r0-20261020 ghcr.io/rtvkiz/minimal-caddy:2.11.7-r0-20261020 2026-10-20
2.11.7-r0-20261020-dev ghcr.io/rtvkiz/minimal-caddy:2.11.7-r0-20261020-dev 2026-10-20
2.11.7-r0-20261019 ghcr.io/rtvkiz/minimal-caddy:2.11.7-r0-20261019 2026-10-19
2.11.7-r0-20261019-dev ghcr.io/rtvkiz/minimal-caddy:2.11.7-r0-20261019-dev 2026-10-19
2.11.7-r0-20261018 ghcr.io/rtvkiz/minimal-caddy:2.11.7-r0-20261018 2026-10-18
2.11.7-r0-20261018-dev ghcr.io/rtvkiz/minimal-caddy:2.11.7-r0-20261018-dev 2026-10-18
2.11.7-r0-20261016 ghcr.io/rtvkiz/minimal-caddy:2.11.7-r0-20261016 2026-10-16
2.11.7-r0-20261017 ghcr.io/rtvkiz/minimal-caddy:2.11.7-r0-20261017 2026-10-16
2.11.7-r0-20261016-dev ghcr.io/rtvkiz/minimal-caddy:2.11.7-r0-20261016-dev 2026-10-16
2.11.7-r0-20261017-dev ghcr.io/rtvkiz/minimal-caddy:2.11.7-r0-20261017-dev 2026-10-16
2.11.7-r0-20261015 ghcr.io/rtvkiz/minimal-caddy:2.11.7-r0-20261015 2026-10-15
2.11.7-r0-20261015-dev ghcr.io/rtvkiz/minimal-caddy:2.11.7-r0-20261015-dev 2026-10-15
2.11.7-r0-20261014 ghcr.io/rtvkiz/minimal-caddy:2.11.7-r0-20261014 2026-10-14
2.11.7-r0-20261014-dev ghcr.io/rtvkiz/minimal-caddy:2.11.7-r0-20261014-dev 2026-10-14

14 packages in the image, resolved from the SPDX SBOM.

PackageVersionLicense
alpine/ca-certificates20261020MPL-2.0 AND MIT
ca-certificates-bundle20261020-r0MPL-2.0 AND MIT
ca-certificates-bundle20261020-r0(MPL-2.0 AND MIT)
ca-certificates-bundle20261020-r0—
ca-certificates.yaml8061afafa65af5a9026707a8880e14120dd6f4a0Apache-2.0
caddy2.11.9-r0Apache-2.0
images/caddy/melange.yaml862101ee7af52b6dfb7db319fbf7c11793a3d433—
sha256:9fe43dddd052f2e38a5db7e3d70909cbaac6fd53213189d8e88fe6ba0a5aa624sha256:9fe43dddd052f2e38a5db7e3d70909cbaac6fd53213189d8e88fe6ba0a5aa624—
sha256:d7f9443c9683190bd8b7a2da6a9080e592f499885554fef674a98924af9f7b5720230201—
wolfi20230201—
wolfi-baselayout20230201-r31MIT
wolfi-baselayout20230201-r31MIT
wolfi-baselayout20230201-r31—
wolfi-baselayout.yamled415005c84750f03c4a9252137813734a224ae7Apache-2.0
1 high2 medium 0 fixable 3 withheld
CVESeverityPackageInstalledFixed in
GHSA-mgcc-cww5-fp2q High github.com/go-jose/go-jose/v3 v3.0.5 —
GHSA-4w3g-jfj2-cw2q Medium github.com/go-jose/go-jose/v3 v3.0.5 —
GHSA-vvm8-gf78-28g4 Medium github.com/go-jose/go-jose/v3 v3.0.5 —

Everything is verifiable without an account. Copy and run:

Build provenance (SLSA v1.0, Build L2)

gh attestation verify oci://ghcr.io/rtvkiz/minimal-caddy:latest --owner rtvkiz

Cosign signature

cosign verify \
  --certificate-identity-regexp='https://github.com/rtvkiz/minimal/' \
  --certificate-oidc-issuer='https://token.actions.githubusercontent.com' \
  ghcr.io/rtvkiz/minimal-caddy:latest

SBOM attestation (SPDX)

cosign verify-attestation --type spdxjson \
  --certificate-identity-regexp='https://github.com/rtvkiz/minimal/' \
  --certificate-oidc-issuer='https://token.actions.githubusercontent.com' \
  ghcr.io/rtvkiz/minimal-caddy:latest \
  | jq -r '.payload | @base64d | fromjson | .predicate'

Signatures are logged in the public Rekor transparency log.

More Web Servers & Proxies images

Weighing this against another provider? The comparison pages publish head-to-head scan data with the raw dataset, including the images where Minimal comes off worse — or read the migration guide for what actually breaks when you switch.