Why ReadyStack
Hardened, reproducible, signed images are established practice, and our release process follows it: every release is signed with our published key when it is published, and each release's page shows its signature, whether it runs as non-root, and whether and when its offline rebuild reproduced it bit-for-bit. What we add is everything around the image: Community Edition only, handbooks checked against that exact image, tested seed data, a record of known defects, and a build kit that rebuilds it with the network off. Why we built it · Source or image?
Who it is for
See what was built, from which source, which tests ran against it, and what the database seed did.
Build records, test results, and handbooks with their command transcripts come with each release.
Move fast with experiments, prompts, and features. Your foundation stays stable and reproducible while you iterate above it.
Hand your agent a working base. Need a WordPress instance? Start from our image, with a handbook the agent can follow step by step.
For security and compliance review
The auditor's page, with SOC 2 criteria- Is this the image we published?
- Its digest, and a cosign signature against our published key, recorded in the public Sigstore transparency log. Each release's page on the products page shows both.
- What is in it?
- The SBOM attached to the image, and the build provenance (SLSA v1) where the release carries it; the release's page says which it carries.
- What is known to be wrong with it?
- Its grade on our daily scan and on Docker Scout, each dated with its reasons, and the public defect log with how each defect was found and what happened to it.
- Can we rebuild it ourselves?
- The Hermetic Build Kit rebuilds the release with the network off;
VERIFY_OFFLINE.shcompares the result with the published digest. With--provenanceon your own build platform it produces SLSA provenance signed with your key. - How do we keep it up to date?
- Release tags are exact and never move. A Renovate preset offers each new release, a new revision or a new upstream version, as a pull request, and never an
internal-tag or another base OS. - What does each piece prove?
- What the digest, signature, SBOM, scan, rebuild and handbook checks each establish, and what they do not: the evidence table.
What the image alone doesn't answer
- How do I run it?
- An admin handbook and a database handbook, checked against this exact image, with verification commands run inside it.
- What does a working instance look like?
- Seed data the release was tested with, and the use-case tests that passed and failed.
- What is broken in this release?
- A defects record and a security report, written down instead of left for you to find.
Documented by running it
# traefik v3.7.13-CE-ubuntu24.04-r1: handbook verification # commands, run inside the published image $ traefik version Version: 3.7.13 Go version: go1.26.8 $ curl -fsS http://127.0.0.1:8080/ping OK # docs/validation/PASSED_TESTS.md ✓ traefik_test_001 GET /api/version -> 200 ✓ traefik_test_005 GET /ping -> 200
ReadyStack's approach
Each handbook's verification commands are run inside the published image and their output is kept. Tests, seed data, and defects are recorded the same way.
Bases pinned by digest, timestamps frozen, toolchain vendored. Releases verified reproducible rebuild to the identical linux/amd64 image-manifest digest we published, and each release's page says when that was last verified.
How a release is built
The steps every release goes through today$ ./BUILD_OFFLINE.sh # docker build --network=none $ ./VERIFY_OFFLINE.sh
$ docker buildx build --network=none \ --attest type=provenance,mode=max --attest type=sbom $ cosign sign --key readystack.key readystack/<slug>@sha256:…
What each release documents
Into its build kitBuilt to be the image you move to
How we think about upgradesAn image is only worth switching to if you can move to it from what you run today, and on to its next release, without losing data or meeting a surprise. We design every release around that move.
- Exact tags that never move
- Each release tag names one image and never changes. A fix to the same upstream version is its next revision (
-r4after-r3), so nothing changes under you until you change the tag. Our Renovate preset offers each new release as a pull request. - A revision replaces the last one in place
- Each release's notes name the release it supersedes and say what changed, and a revision's notes say whether it replaces that release on the same volumes.
- Moving from the upstream image, written down
- Each new release's admin handbook compares the image with the upstream image most installs already run, where a single upstream image exists: the runtime user and its uid, the data path, the ports, the entrypoint and default command. For each difference it gives the command that bridges it: the
chown, the mount path, the port mapping. The comparison is generated from measured records, not written by hand. - The upstream user, where upstream runs as non-root
- Our images never run as root by default. Where the upstream image already runs as a non-root user, each product's next release moves to that user's uid, so a volume the upstream image wrote stays writable after a straight swap. That release's notes give the one-time
chownfor a volume an earlier ReadyStack release wrote. - Security revisions go first
- When a fixable critical or high vulnerability appears in a published release, its fix is built as a revision ahead of other work. We publish how long that takes, measured from our records.
- What we don't promise
- Going back. Most products migrate their data the first time a new upstream version starts and do not migrate it back, so back up before a version upgrade. A revision rebuilds the same upstream version, so it does not migrate your data.
[email protected].Email a suggestionWhat's in the Hermetic Build Kit
BUILD_OFFLINE.shRebuild with the network offVERIFY_OFFLINE.shCompare with the published digestDockerfile.offlineBuild recipeCHECKSUMS.sha256Verify integrityvendored/Source and packagesbases/Base images, pinned by digest (not the published image: you rebuild that)toolchain/Build toolsdocs/Handbooks, tests, seed data, defects, SBOM
Trust through transparency
We don't ask for blind trust. We make the process inspectable.