Ghost v6.75.0-CE-ubuntu24.04-r1 build trail
How ReadyStack built readystack/ghost:v6.75.0-CE-ubuntu24.04-r1 and its build kit, copied record by record: why the release exists, every chain, drive and stage it went through, the model work, the review rounds, the defects, the checks that verified it and when it was published. Each line names the record it comes from in brackets; a record that does not exist for this release says so.
This trail
As JSON- Image
readystack/ghost:v6.75.0-CE-ubuntu24.04-r1 - Index digestsha256:4fbc8f7996f6bcd8c2eb27555d892b6dce5ac0a03fd620dd92d430c22865ff89
- linux/amd64 digestsha256:e0eb2e9983e8ca09c9101cc5652d2d7cdeed22b24e6f9308fcc85b4b61d3a75f
- Archive
ReadyStack-ghost-v6.75.0-CE-ubuntu24.04-r1.tar.gz - Archive SHA-256 nowf2fc370001bf8e6c64fe6c0405aa07b1754c0f0884fd0fe29eacd83c21a2c6fb
- Pins record
docs/PINS.md,docs/provenance/PINS.jsonin the archive (since generated) - Generated2026-11-09T15:28:06Z by KitForge release/build_trail.py
- Sections9 sections, 8 fully recorded; 1 item not recorded
Signed with the release key The trail's signature is a Sigstore bundle beside it. Check it is ours before you rely on it:
cosign verify-blob --key https://readystack.dev/keys/cosign.pub \ --bundle ReadyStack-ghost-v6.75.0-CE-ubuntu24.04-r1.trail.json.sigstore ReadyStack-ghost-v6.75.0-CE-ubuntu24.04-r1.trail.json
IdentityWhy this release existsThe path through the harnessModel work per stageReviewDefectsVerificationPublicationPackages and CPU level
Identity
Fully recorded- ProductGhost (ghost) [MANIFEST.json]
- Release tagv6.75.0-CE-ubuntu24.04-r1 [MANIFEST.json]
- Imagereadystack/ghost:v6.75.0-CE-ubuntu24.04-r1 [MANIFEST.json]
- Image index digestsha256:4fbc8f7996f6bcd8c2eb27555d892b6dce5ac0a03fd620dd92d430c22865ff89 [docs/provenance/LOCKED_DIGEST.txt]
- linux/amd64 image digestsha256:e0eb2e9983e8ca09c9101cc5652d2d7cdeed22b24e6f9308fcc85b4b61d3a75f [ReadyStack-ghost-v6.75.0-CE-ubuntu24.04-r1.rebuild.json, subject.image_manifest_digest]
- ArchiveReadyStack-ghost-v6.75.0-CE-ubuntu24.04-r1.tar.gz (bytes 466735483) [MANIFEST.json]
- Archive sha256 at publishf2fc370001bf8e6c64fe6c0405aa07b1754c0f0884fd0fe29eacd83c21a2c6fb [MANIFEST.json, tarball_sha256]
- Archive records agreeyes [MANIFEST.json, PUBLISH_MANIFEST.json and .cutover.json name the same sha256]
- Repack historynone: the archive is as first published [MANIFEST.json, repack_history]
- Upstream repositoryhttps://github.com/TryGhost/Ghost [docs/provenance/SOURCE_TREE_HASH.json]
- Upstream refv6.75.0 [docs/provenance/SOURCE_TREE_HASH.json]
- Upstream commit9f8def4367a6f375ccf83791497f7319c0f233b2 [docs/provenance/SOURCE_TREE_HASH.json]
- Source tree hash043a80d77755d9ce3eeb5be0e11cc429c364d3a30ab967417e5ee46106c00809 (files 9267) [docs/provenance/SOURCE_TREE_HASH.json, tree_listing_sha256 (sha256 of the sorted file listing)]
- Kit tree hashsha256:4e55fb42a697b71c9818d6596c2c76cfed5f0fa0920a65dc907355bba70fc29a [ReadyStack-ghost-v6.75.0-CE-ubuntu24.04-r1.rebuild.json, inputs.tree_hash]
- SOURCE_DATE_EPOCH1793810743 (utc 2026-11-04T16:45:43Z) [ReadyStack-ghost-v6.75.0-CE-ubuntu24.04-r1.rebuild.json, inputs.source_date_epoch]
- Base images
- ref ubuntu:24.04@sha256:fe81560990fae86dc4743202b2cb4d3df98d0bcf949173cecef15ce1127ef852 · platform digest sha256:78d4744ead1f5b19b04d0df558ab182a5300903900755e515b2ca4d10eb2044d
- BuildKitmoby/buildkit:v0.31.2 (image digest sha256:e0e67ea9c4bb07bdef683e29f70f3b623d1eb9c82274a9ec04e6bb0511449fb0) [ReadyStack-ghost-v6.75.0-CE-ubuntu24.04-r1.rebuild.json, engine]
- Engine commit(s)
- commit 798f30ccf4f536be1bc4856d7801ba79970200c0 · dirty yes · first drive 3909
- commit 92f2f07d6805e851f28fd697333da6ed7c235c16 · dirty yes · first drive 3920
- commit ad5518ca1c1c954ca1b6beaf515310601159f544 · dirty yes · first drive 3937
- commit 837c64ac100d91a0c228a7de2f398e67de10932a · dirty yes · first drive 3949
- commit 222adc4e64adbe156e86c987498df9358fda82f6 · dirty yes · first drive 3959
- commit fcb013a47b6acf007f0393214805da1af5e637f1 · dirty yes · first drive 3966
- commit d731c9e0f6a9f36f56d28d09aead99eb92f2b336 · dirty yes · first drive 4032
- commit 60e683e982890f94be6ec847d4971fb308805ca8 · dirty yes · first drive 4054
Why this release exists
Fully recorded- Chain908 (created 2026-11-09T00:31:39Z · trigger customer_request · upstream version v6.75.0) [chains, chains #908]
- Requestbuild request #602 (rebuild) (requested at 2026-11-09T00:28:35Z · requested by kitforge-agent · version v6.75.0) [build_requests, build_requests #602]
- Reasonnew version v6.75.0-CE-ubuntu24.04-r1: Ghost 6.75.0 (follow-redirects CVE-2026-116689 fixed by its lock), apt and libpcre2 floors, PR #266 [build_requests, build_requests #602 request_reason]
- Supersedesreadystack/ghost:v6.72.0-CE-ubuntu24.04-r5 (chain 796) [chains, chains #796]
The path through the harness
Fully recorded1 chain · 8 drives · 18 stages · 6 rewinds
Chain 908 release · ready_to_ship
Created 2026-11-09T00:31:39Z, upstream v6.75.0, build request 602 [chains, chains #908]
| Drive | Started | Minutes | Build host | How it stopped |
|---|---|---|---|---|
| 3909 | 2026-11-09T00:32:03Z | 66.9 | build host 5 withhold-publish | stage_failed at package_archive; first failed check exists:checksums; 18 ticks [drive_runs, drive_runs #3909] |
| 3920 | 2026-11-09T01:53:14Z | 16.7 | build host 5 withhold-publish | ready_to_ship at package_archive; 2 ticks [drive_runs, drive_runs #3920] |
| 3937 | 2026-11-09T03:28:33Z | 10.6 | build host 5 withhold-publish | ready_to_ship at package_archive; 2 ticks [drive_runs, drive_runs #3937] |
| 3949 | 2026-11-09T04:17:34Z | 9.3 | build host 5 withhold-publish | ready_to_ship at package_archive; 2 ticks [drive_runs, drive_runs #3949] |
| 3959 | 2026-11-09T05:16:14Z | 8.7 | build host 5 withhold-publish | ready_to_ship at package_archive; 2 ticks [drive_runs, drive_runs #3959] |
| 3966 | 2026-11-09T06:02:16Z | 9.1 | build host 5 withhold-publish | ready_to_ship at package_archive; 2 ticks [drive_runs, drive_runs #3966] |
| 4032 | 2026-11-09T14:08:54Z | 8.7 | build host 5 withhold-publish | ready_to_ship at package_archive; 2 ticks [drive_runs, drive_runs #4032] |
| 4054 | 2026-11-09T15:18:07Z | — | build host 5 publish-held | not recorded [drive_runs, drive_runs #4054] |
Stages, in order
| Stage | First start | Passed | Attempts | Gate checks passed | Artifacts (SHA-256) |
|---|---|---|---|---|---|
intake |
2026-11-09T00:32:14Z | 2026-11-09T00:32:15Z | 1 | 4
|
order_json 2283347141be… |
acquire |
2026-11-09T00:32:23Z | 2026-11-09T00:32:24Z | 1 | 12
|
source_tree 1dea23bfaa71…license_file 56df280a2607…custody_inputs c53ebf609685…source_tree_hash 267e9918ea92…source_file_manifest 9d084558a7b1… |
plan |
2026-11-09T00:32:59Z | 2026-11-09T00:33:00Z | 1 | 10
|
recon_report fb58df0ded31…input_pin_plan 834cb07b18ca…toolchain_lock 1aaecb387a85… |
assemble_kit |
2026-11-09T00:45:53Z | 2026-11-09T00:45:54Z | 1 | 27
|
dockerfile 4b8860d1015f…build_recipe 0b1c3541911f…system_pinning 01ba4719c80b…build_offline_sh 6633aa31b6b4…generate_sbom_sh ce0f1e6f1e70…first_boot_health 1b1a679a13dd…verify_offline_sh 3e8184ea230c…base_image_digests ff0edcb8bee3…dockerfile_offline 5cd353afc89e…first_build_digest a79aaf237ec7… |
remediate |
2026-11-09T00:46:21Z | 2026-11-09T00:46:22Z | 1 | 8
|
vendored_apt e3b0c44298fc…remediation_log ef4c047db84a…security_report 0f2eccf7dcec… |
build_kit |
2026-11-09T01:01:53Z | 2026-11-09T01:01:53Z | 1 | 9
|
cosign_stamp fff6e77de0d0…locked_digest 3240ec245e2b…freeze_manifest 762b23075591…offline_rebuild_transcript 44aa912375a4… |
verdict |
2026-11-09T01:04:22Z | 2026-11-09T01:04:23Z | 1 | 8
|
scout_verdict 015108d16e69… |
publish_image |
2026-11-09T01:05:37Z | 2026-11-09T01:05:38Z | 1 | 7
|
hub_readme 90a4c92bf927…promotion_record 05932e3d5fe1… |
boot_instance |
2026-11-09T01:06:36Z | 2026-11-09T01:06:40Z | 2 | 3
|
instance_handle f27257845559… |
sbom |
2026-11-09T01:07:23Z | 2026-11-09T01:07:24Z | 1 | 5
|
sbom_md 42d94ca4665c…sbom_json 8e177a751a43… |
schema_discovery |
2026-11-09T01:07:27Z | 2026-11-09T01:07:27Z | 1 | 7
|
schema_hash 2abb29f42269…dependency_tree 399a71f52f19…table_classification 9e1fa117a322… |
admin_handbook |
2026-11-09T01:21:03Z | 2026-11-09T01:21:04Z | 1 | 7
|
api_map 4339e49cd002…admin_handbook 2253f33c40d6… |
db_handbook |
2026-11-09T01:33:24Z | 2026-11-09T01:33:25Z | 1 | 8
|
db_handbook a86c02de3df5…seed_isolation 91cfe50fb268… |
seed_data |
2026-11-09T01:33:30Z | 2026-11-09T01:33:31Z | 1 | 6
|
seed_data_sql 2d6d2e650613…seed_cases_json 72b23aa7a4e3… |
seed_validate |
2026-11-09T01:33:33Z | 2026-11-09T01:33:34Z | 1 | 3
|
seed_data_contract 03527387cd35… |
usecase_validate |
2026-11-09T01:33:50Z | 2026-11-09T01:33:51Z | 1 | 10
|
failed_tests b2247b16f5f7…passed_tests da9e50c9e120…test_results a30c14e5279d…usecase_contract 70fcbc25d0e6… |
finalize_docs |
2026-11-09T01:33:58Z | 2026-11-09T01:33:59Z | 1 | 9
|
defects_json a76934f814b6…release_notes 771f0bc2fe8d…api_integration_guide 95f4efbdd47f… |
package_archive invalidated 2026-11-09T15:17:38Z |
2026-11-09T01:38:54Z | 2026-11-09T14:17:32Z | 7 | 35 (final gate PASS)
|
sale_tar 5e102f8d046a…checksums aa9538d191b9…verify_md 519754daa026…rebuild_md e9798724f1ca…manifest_txt b1b623d418e6…actions_jsonl 74b4f68e97b8…provenance_md 0a4f35e0d456…assetchain_log_md e9eccaec0c0f…assetchain_log_json fa7f3e04df3c… |
[stage_runs]
Rewinds
- 2026-11-09T02:54:29Z:
package_archivetopackage_archiveon docs_redo (scripts/redo-docs.py --stage package_archive) [stage_events, stage_events #27893] - 2026-11-09T04:10:31Z:
package_archivetopackage_archiveon docs_redo (scripts/redo-docs.py --stage package_archive) [stage_events, stage_events #27967] - 2026-11-09T05:03:01Z:
package_archivetopackage_archiveon docs_redo (scripts/redo-docs.py --stage package_archive) [stage_events, stage_events #28001] - 2026-11-09T05:58:03Z:
package_archivetopackage_archiveon docs_redo (scripts/redo-docs.py --stage package_archive) [stage_events, stage_events #28053] - 2026-11-09T07:05:34Z:
package_archivetopackage_archiveon docs_redo (scripts/redo-docs.py --stage package_archive) [stage_events, stage_events #28160] - 2026-11-09T15:17:38Z:
package_archivetopackage_archiveon docs_redo (scripts/redo-docs.py --stage package_archive) [stage_events, stage_events #29266]
Model work per stage
Fully recordedRole: writer model. Calls up to 2026-11-09T14:17:32Z.
120 calls over 5 stages
| Stage | Calls | Refused | Errors | Max attempt | Forced commits | Real tokens | Lesson rules shown |
|---|---|---|---|---|---|---|---|
plan | 2 | 0 | 0 | 1 | 0 | 7374 | L-A183, L-A15 |
remediate | 2 | 0 | 0 | 1 | 0 | 7425 | L-A183, L-A15 |
admin_handbook | 59 | 19 | 0 | 3 | 4 | 506169 | L-A180, L-A181, L-A182, L-A183, L-A184, L-A155, L-A114, L-A25, L-A15, L-A14 |
db_handbook | 56 | 21 | 0 | 3 | 6 | 449864 | L-A180, L-A181, L-A182, L-A183, L-A184, L-A114, L-A15 |
usecase_validate | 1 | 0 | 0 | 1 | 0 | 1586 | L-A59 |
[micro_step_runs] [lesson_recalls]
Review
Fully recordedRole: review model.
6 rounds, 6 counted, $13.16 recorded cost
| Round | Started | Critical | Major | Minor | Verdict | Cost | Cap in force | Archive reviewed |
|---|---|---|---|---|---|---|---|---|
| 1 | 2026-11-09T02:10:59Z | 1 | 7 | 11 | findings to repackage [held_rounds, held_rounds #1565] | $2.42 | 3 rounds, $40.00 | a66dfede0336… |
| 2 | 2026-11-09T03:40:14Z | 0 | 6 | 8 | findings to repackage [held_rounds, held_rounds #1570] | $1.99 | 3 rounds, $40.00 | 31f38791b64d… |
| 3 | 2026-11-09T04:27:56Z | 0 | 1 | 16 | findings to repackage [held_rounds, held_rounds #1578] | $2.47 | 3 rounds, $40.00 | 1dfb100629f7… |
| 4 | 2026-11-09T05:25:56Z | 0 | 1 | 7 | findings to repackage [held_rounds, held_rounds #1584] | $2.25 | 3 rounds, $40.00 | 4ec1a02b0204… |
| 5 | 2026-11-09T06:12:26Z | 0 | 1 | 7 | findings to repackage [held_rounds, held_rounds #1593] | $2.34 | 3 rounds, $40.00 | 12867b18d075… |
| 6 | 2026-11-09T14:18:26Z | 0 | 0 | 3 | clean to publish [held_rounds, held_rounds #1630] | $1.69 | 3 rounds, $40.00 | 5e102f8d046a… |
Defects
Fully recorded- Ledger entries70 [defects, defects where product_slug=ghost and this tag or chain]
- Disclosed in the archive70 [docs/defects/defects.json, entries]
70 ledger entries: by severity high 17, critical 1, low 52; by status open 1, fixed-before-release 69.
| Defect | Severity | Status | Found by | Fixed in |
|---|---|---|---|---|
RSD-ghost-0303ea13c7First visitor can claim the administrator account until setup is completed [defects, defects #188606] | high | open | build strategy record | — |
RSD-ghost-2f5d99bbc4Admin handbook: The 'Moving to a New MySQL Server' restore command fails: docker exec needs a container name, and the new server is not in a container here, so it must use a throwaway mysql:8.4 client (as the later… [defects, defects #190337] | critical | fixed-before-release | held review (review model) | — |
RSD-ghost-8fde4db8c1Admin handbook: --env-file does not interpret quotes: the quote characters become part of the password, so a customer following this sentence with a special-character password gets 'Access denied' and the container… [defects, defects #190338] | high | fixed-before-release | held review (review model) | — |
RSD-ghost-be7c631273Admin handbook: Same defect as line 408: quoting the password line in the env file makes the quotes part of the password and Ghost cannot connect. [defects, defects #190339] | high | fixed-before-release | held review (review model) | — |
RSD-ghost-bb5269426dDatabase handbook: Tells the customer to quote the --env-file argument and the password line; a quoted password in an env file is taken literally and the database refuses it. [defects, defects #190340] | high | fixed-before-release | held review (review model) | — |
RSD-ghost-4a412db53cDatabase handbook: Confusing statement that mixes the -e form with the env file and hides the rule that env-file values are not quoted. [defects, defects #190341] | low | fixed-before-release | held review (review model) | — |
RSD-ghost-b19af4f201Admin handbook: States that the Owner is an account baked into the image, the opposite of the handbook's own credential facts; a customer may look for default credentials that do not exist. [defects, defects #190342] | high | fixed-before-release | held review (review model) | — |
RSD-ghost-fcf6092cc4Database handbook: Says unauthenticated site, admin and health-endpoint requests are never redirected; a health probe written from this sentence gets 301 instead of 200. [defects, defects #190343] | high | fixed-before-release | held review (review model) | — |
RSD-ghost-b1b44a8623Database handbook: Following the advice loses the file log (Ghost keeps the deleted inode open, disk is not freed, no new file appears) while the handbook promises a new file on the next event. [defects, defects #190344] | high | fixed-before-release | held review (review model) | — |
RSD-ghost-2de93b7c98Admin handbook: The documented connectivity check cannot take the password (no -i/-t), so it always reports 'Access denied (using password: NO)' and sends the customer looking for a credential fault that does not… [defects, defects #190345] | high | fixed-before-release | held review (review model) | — |
RSD-ghost-d32e934895Admin handbook: Contradicts the earlier section of the same handbook, and is false when the user may create the database. [defects, defects #190346] | low | fixed-before-release | held review (review model) | — |
RSD-ghost-46aa2d5ff1Admin handbook: Contradicts the handbook's other health statements: the endpoint does not tell whether the database is accessible. [defects, defects #190347] | low | fixed-before-release | held review (review model) | — |
RSD-ghost-1ea9ea2010Database handbook: Contradicts the handbook's own explanation of the health endpoint. [defects, defects #190348] | low | fixed-before-release | held review (review model) | — |
RSD-ghost-8470f8a5edAdmin handbook: `GET /` takes no Content API key, and the quoted error text is not a fixed answer. [defects, defects #190349] | low | fixed-before-release | held review (review model) | — |
RSD-ghost-9d73a499f7Admin handbook: Confuses the GET answer with the POST payload. [defects, defects #190350] | low | fixed-before-release | held review (review model) | — |
RSD-ghost-fc8a1f0276Admin handbook: Absolute prohibition contradicted by the handbook's own database-password-change and special-character procedures. [defects, defects #190351] | low | fixed-before-release | held review (review model) | — |
RSD-ghost-0bfd159cccDatabase handbook: False: the user comes from the Dockerfile's USER line, not the ENTRYPOINT, and `docker run --user` changes it. [defects, defects #190352] | low | fixed-before-release | held review (review model) | — |
RSD-ghost-293c1c8ba9Database handbook: Claims the process has no seccomp restrictions, which is untrue for a default `docker run`. [defects, defects #190353] | low | fixed-before-release | held review (review model) | — |
RSD-ghost-07af31f3b7Database handbook: Blanket prohibition contradicts the handbook's own logging instructions. [defects, defects #190354] | low | fixed-before-release | held review (review model) | — |
RSD-ghost-1b9a4f85c7Admin handbook: Describes a per-architecture rebuild and digest that the kit refuses to perform. [defects, defects #190355] | low | fixed-before-release | held review (review model) | — |
RSD-ghost-c6ed1391ebAdmin handbook: Says unauthenticated requests bypass the https redirect, which contradicts the sentence before it and the measured behaviour: the unauthenticated health endpoint and site pages get 301, so a health… [defects, defects #191973] | high | fixed-before-release | held review (review model) | — |
RSD-ghost-265ccd2a2cAdmin handbook: Same defect as round 1: 'Unauthenticated requests' answer without a redirect contradicts the bullet list directly above, where the unauthenticated site pages and /ghost/api/admin/site/ are redirected. [defects, defects #191974] | high | fixed-before-release | held review (review model) | — |
RSD-ghost-e42b05be14Admin handbook: Health endpoint described as available regardless of url scheme; with the documented https url a probe without the header gets 301 (contradicts the handbook's own Health Check facts). [defects, defects #191975] | high | fixed-before-release | held review (review model) | — |
RSD-ghost-f86532d44fAdmin handbook: False: public site pages are redirected (GET / -> 301) with the documented https url; contradicts the previous paragraph and the Health Monitoring text. [defects, defects #191976] | high | fixed-before-release | held review (review model) | — |
RSD-ghost-3cf926eb2eDatabase handbook: Same round-1 defect: unauthenticated requests are said not to redirect, but the unauthenticated site pages and health endpoint (listed in the same paragraph) get 301. [defects, defects #191977] | high | fixed-before-release | held review (review model) | — |
RSD-ghost-8e981d0ecaDatabase handbook: False: public site pages get 301 with an https url (contradicts the preceding sentence of the same paragraph and the 'API authentication' section of this handbook). [defects, defects #191978] | high | fixed-before-release | held review (review model) | — |
RSD-ghost-b98e4bbe64Admin handbook: The command above passes the password only through --env-file; there is no -e password argument to quote, and the sentence hides the rule that env-file values are not quoted (round-1 minor,… [defects, defects #191979] | low | fixed-before-release | held review (review model) | — |
RSD-ghost-4007fd81c2Database handbook: The prohibition contradicts the handbook's own 'Changing the database password' procedure under Configuration and secrets (update ghost.env, then docker run), and step 3 tells the customer to pass… [defects, defects #191980] | low | fixed-before-release | held review (review model) | — |
RSD-ghost-0c457c44c4Database handbook: Rotation values are wrong for this image: effective config is period 1d, count 10. [defects, defects #191981] | low | fixed-before-release | held review (review model) | — |
RSD-ghost-fbe37d3070Admin handbook: The example adds stderr to ["file","stdout","stderr"]; it does not redirect or replace anything. [defects, defects #191982] | low | fixed-before-release | held review (review model) | — |
RSD-ghost-ebf79f29f3Admin handbook: Route does not exist: sign-in is POST /ghost/api/admin/session/. [defects, defects #191983] | low | fixed-before-release | held review (review model) | — |
RSD-ghost-1419da666dAdmin handbook: Contradicted by the procedure two paragraphs below it, which changes the hash from the host with docker exec. [defects, defects #191984] | low | fixed-before-release | held review (review model) | — |
RSD-ghost-e280f69284Database handbook: Reversed: after setup the endpoint returns status true. [defects, defects #191985] | low | fixed-before-release | held review (review model) | — |
RSD-ghost-6b77ca185cAdmin handbook: Following the restore steps verbatim restores into the container named `mysql` (the old server), not into mysql-new, so Ghost pointed at mysql-new finds an empty database and shows the setup wizard. [defects, defects #191986] | low | fixed-before-release | held review (review model) | — |
RSD-ghost-28479cf415Admin handbook: Measured on the documented run command (url=https://blog.example.com, no X-Forwarded-Proto): curl http://localhost:2368/ghost/api/admin/site/ -> 301, GET / -> 301, GET /ghost -> 301 (Location… [defects, defects #194494] | high | fixed-before-release | held review (review model) | — |
RSD-ghost-0ad21c6e00Admin handbook: curl -s -o /dev/null -w '%{http_code}' http://localhost:2368/ghost/api/admin/site/ -> 301 on the documented https run command; with -H 'X-Forwarded-Proto: https' -> 200. [defects, defects #194495] | low | fixed-before-release | held review (review model) | — |
RSD-ghost-1a867ff08aAdmin handbook: Health probe stated without the X-Forwarded-Proto condition that the documented https run command needs. [defects, defects #194496] | low | fixed-before-release | held review (review model) | — |
RSD-ghost-f0960225d1Admin handbook: Contradicts the same section (Unauthenticated users can ... [defects, defects #194497] | low | fixed-before-release | held review (review model) | — |
RSD-ghost-347f9ce364Admin handbook: The file shown under this step contains only database__connection__password=YOUR_DB_PW; ghost.env never holds the host (the run command passes database__connection__host with -e). [defects, defects #194498] | low | fixed-before-release | held review (review model) | — |
RSD-ghost-8017e9a458Admin handbook: The standard run command has no password -e argument: it reads the password from --env-file ./ghost.env. [defects, defects #194499] | low | fixed-before-release | held review (review model) | — |
RSD-ghost-a4e82b954cAdmin handbook: Same as the Operating-facts finding: the documented run command reads the password from ghost.env; verified that editing ghost.env works (healthy) and that the old ghost.env fails with exit code 2. [defects, defects #194500] | low | fixed-before-release | held review (review model) | — |
RSD-ghost-d87133ac38Admin handbook: The documented command passes the password only through --env-file ./ghost.env, so there is no -e argument for the shell to interpret; values in an env file are read literally (tested: ghost.env… [defects, defects #194501] | low | fixed-before-release | held review (review model) | — |
RSD-ghost-c6035567ebDatabase handbook: The command shown for this section reads the password through --env-file ./ghost.env; no -e password argument exists to quote. [defects, defects #194502] | low | fixed-before-release | held review (review model) | — |
RSD-ghost-f228f651baDocker Hub README: The README's own run command uses --env-file ./ghost.env, and the paragraph above says no quotes in the env file; the single-quote advice applies only to -e. [defects, defects #194503] | low | fixed-before-release | held review (review model) | — |
RSD-ghost-03b751bbfeDatabase handbook: The same Configuration and secrets section later (Changing the database password) says to update ghost.env; the standard command has no password argument to replace. [defects, defects #194504] | low | fixed-before-release | held review (review model) | — |
RSD-ghost-fa2626e8c9Database handbook: Start command differs from the documented run command and from the secrets-file procedure. [defects, defects #194505] | low | fixed-before-release | held review (review model) | — |
RSD-ghost-dbd62fc6f6Database handbook: stderr does not replace stdout. [defects, defects #194506] | low | fixed-before-release | held review (review model) | — |
RSD-ghost-b12743a9ceDatabase handbook: Ran with database__connection__host=nosuchhost: exit code 2, log line 'Invalid database host.' (no access-denied message). [defects, defects #194507] | low | fixed-before-release | held review (review model) | — |
RSD-ghost-85f5490458Database handbook: Contradicts the Operating facts and the 'Restoring' subsection of the same handbook, which say tar fails with an error message; only mysql restores nothing silently. [defects, defects #194508] | low | fixed-before-release | held review (review model) | — |
RSD-ghost-f84c2b04e7Database handbook: IMAGE_CONFIG.json: ExposedPorts 2368/tcp, User node; the container ran on this host without extra capabilities. [defects, defects #194509] | low | fixed-before-release | held review (review model) | — |
RSD-ghost-7a4ec94ce3Admin handbook: The archive's docs/admin-guide holds only ADMIN_HANDBOOK.md (this document) and its transcripts; no separate 'Ghost Admin Handbook' covering Ghost's own admin interface is included. [defects, defects #194510] | low | fixed-before-release | held review (review model) | — |
RSD-ghost-3e42c7dff1Admin handbook: The example password given for the setup wizard breaks the rule stated in the sentence before it (no 'password'); a customer who types it is refused. [defects, defects #196540] | high | fixed-before-release | held review (review model) | — |
RSD-ghost-3160a3774aAdmin handbook: First start on an empty database took far longer than 'a few seconds'. [defects, defects #196541] | low | fixed-before-release | held review (review model) | — |
RSD-ghost-16a891e090Admin handbook: Readiness on first start is not 'a few seconds'. [defects, defects #196542] | low | fixed-before-release | held review (review model) | — |
RSD-ghost-1047ed72c1Admin handbook: `docker restart` keeps the container's original -e settings, so the flag stays and device verification stays off; the handbook elsewhere (Starting the container, Sign-in codes) says to stop, remove… [defects, defects #196543] | low | fixed-before-release | held review (review model) | — |
RSD-ghost-22abb4d536Database handbook: Same as the admin handbook: restarting does not remove an -e variable; the same handbook (Sign-in codes for new devices, line ~1690) says to recreate the container. [defects, defects #196544] | low | fixed-before-release | held review (review model) | — |
RSD-ghost-61efc683daAdmin handbook: The wizard is served by the running container; it cannot be completed before Ghost starts. [defects, defects #196545] | low | fixed-before-release | held review (review model) | — |
RSD-ghost-0977e01ba1Admin handbook: Unscoped 200: on the documented run command (url=https://blog.example.com) a plain request answers 301. [defects, defects #196546] | low | fixed-before-release | held review (review model) | — |
RSD-ghost-3ca2ca4294Database handbook: A mail server that requires authentication is a working mail configuration and needs no flag; the flag is for deployments without working mail (as the rest of the handbook says). [defects, defects #196547] | low | fixed-before-release | held review (review model) | — |
RSD-ghost-1f3b34b03dAdmin handbook: Following the 'Moving to a New MySQL Server' procedure in the order printed starts Ghost before the restore, fails on the existing container name and leaves Ghost serving the default settings (site… [defects, defects #199627] | high | fixed-before-release | held review (review model) | — |
RSD-ghost-f9d17e6d09Admin handbook: Says the env file is read at every container start; Docker reads it only at docker run. [defects, defects #199628] | low | fixed-before-release | held review (review model) | — |
RSD-ghost-ec2d61e8e7Admin handbook: logging__transports is an -e variable; restarting does not apply a new value. [defects, defects #199629] | low | fixed-before-release | held review (review model) | — |
RSD-ghost-890f129afeAdmin handbook: 'Restart the container' after adding an -e flag does not apply the flag. [defects, defects #199630] | low | fixed-before-release | held review (review model) | — |
RSD-ghost-c7554229c8Database handbook: Fix and restart cannot change the environment of a container that exited with code 2. [defects, defects #199631] | low | fixed-before-release | held review (review model) | — |
RSD-ghost-15fb1cdac9Database handbook: 'Restart the container with corrected values' is not possible with docker restart. [defects, defects #199632] | low | fixed-before-release | held review (review model) | — |
RSD-ghost-0a33b5d787Database handbook: States Ghost chooses between serving HTTP and HTTPS from url, contradicting 'Ghost does not serve HTTPS itself'. [defects, defects #199633] | low | fixed-before-release | held review (review model) | — |
RSD-ghost-574f417954Database handbook: Claims uppercase transport names are not allowed; Ghost accepts them. [defects, defects #199634] | low | fixed-before-release | held review (review model) | — |
RSD-ghost-50c1d004f5Database handbook: Says --env-file is passed to the container at every start. [defects, defects #212427] | low | fixed-before-release | held review (review model) | — |
RSD-ghost-fb3b4db819Database handbook: The file is not needed at a plain start or restart, only when the container is created. [defects, defects #212428] | low | fixed-before-release | held review (review model) | — |
RSD-ghost-a742f17e4cDatabase handbook: The move procedure points at the Restoring steps, which restore into the old server and already start Ghost, then asks for a further docker run. [defects, defects #212429] | low | fixed-before-release | held review (review model) | — |
Verification
1 item not recorded- Reproduced before publishingyes (rebuilt digest sha256:e0eb2e9983e8ca09c9101cc5652d2d7cdeed22b24e6f9308fcc85b4b61d3a75f · published digest sha256:e0eb2e9983e8ca09c9101cc5652d2d7cdeed22b24e6f9308fcc85b4b61d3a75f · digest match yes · builder moby/buildkit:v0.31.2 · build seconds 402) [docs/provenance/REPRO_VERIFICATION.json, verified]
- Final contract gate (G8)PASS (checks artifact_coverage, assetchain_coverage, cosign, cpu_baseline, offline_rebuild, rebuild_manifest, scan_grade, scout_grade_a, script_copies, tag_base_os, thread_exit, trademark_shipped, vex_shipped) [g8_result.json, result]
- Grade at releaseA (percent 94 · tool docker scout policy 1.26.0 · config docker-default · org vex no · at 2026-11-09T15:19:34Z · failing Docker Scout counts 99 packages with copyleft licences (GPL, LGPL, MPL), 96 of them operating-system packages (it counts only packages whose licence it can read; the SBOM lists every component).) [SCOUT_EVIDENCE.json, docker_scout_policy]
- Image signatureverified on the index and the linux/amd64 manifest (key fingerprint 04daa92344a52dbc · at 2026-11-09T15:18:17Z) [docs/provenance/IMAGE_EVIDENCE.json, signed]
- Image signature transparency-log entries
- log index 3760029732 · transparency-log entry
- log index 3760029823 · transparency-log entry
- rebuild.json signatureSigstore bundle, release key (key fingerprint 04daa92344a52dbc · log index 3766627109 · transparency-log entry · integrated 2026-11-09T15:26:26Z) [ReadyStack-ghost-v6.75.0-CE-ubuntu24.04-r1.rebuild.json.sigstore, verificationMaterial.tlogEntries[0]]
- Signed attestations
- kind provenance · digest sha256:4fbc8f7996f6bcd8c2eb27555d892b6dce5ac0a03fd620dd92d430c22865ff89 · state attached · log index 3766627915 · transparency-log entry
- kind sbom · digest sha256:4fbc8f7996f6bcd8c2eb27555d892b6dce5ac0a03fd620dd92d430c22865ff89 · state attached · log index 3766628498 · transparency-log entry
- kind vsa · digest sha256:4fbc8f7996f6bcd8c2eb27555d892b6dce5ac0a03fd620dd92d430c22865ff89 · state attached · log index 3766629062 · transparency-log entry
- kind provenance · digest sha256:e0eb2e9983e8ca09c9101cc5652d2d7cdeed22b24e6f9308fcc85b4b61d3a75f · state attached · log index 3766629595 · transparency-log entry
- kind sbom · digest sha256:e0eb2e9983e8ca09c9101cc5652d2d7cdeed22b24e6f9308fcc85b4b61d3a75f · state attached · log index 3766629889 · transparency-log entry
- kind vsa · digest sha256:e0eb2e9983e8ca09c9101cc5652d2d7cdeed22b24e6f9308fcc85b4b61d3a75f · state attached · log index 3766630238 · transparency-log entry
- Pins recorddocs/PINS.md and docs/provenance/PINS.json in the archive (https://readystack.dev/products/ghost/recipe) [docs/provenance/PINS.json]
Offline clean-room rebuilds
- 2026-11-09T02:11:06Z on build host 5 (Docker-in-Docker daemon with --network none): bit for bit yes, digest match yes, customer verify yes
rebuilt sha256:e0eb2e9983e8ca09c9101cc5652d2d7cdeed22b24e6f9308fcc85b4b61d3a75f [clean-room rebuild ledger, runs[680]]
- Not recorded: the policy tool's --result-file itself (its per-policy results are copied into SCOUT_EVIDENCE.json and the archive's IMAGE_EVIDENCE.json; the file is not kept)
Publication
Fully recorded 1 pending at generation- Image pushed (internal tag), publish_image passed2026-11-09T01:05:38Z [stage_runs, stage_runs chain 908 stage publish_image]
- Archive manifests written2026-11-09T15:22:57Z [PUBLISH_MANIFEST.json, published_at]
- Pending at generation: the archive cut-over on prodasset, the release tag's promotion and the site event (this trail was generated after G8 and before them; they are appended as a 'publication' event in History)
Packages and CPU level
Fully recorded- x86-64 level the image needsv1 (used v4 · baseline v2 · elf files 756 · probed 2026-11-09T14:17:09Z · source g8) [release_images, isa_level_hard]
History
2 events- 2026-11-09T15:28:06Z generated: by KitForge release/build_trail.py · generator commit 60a6d2c97ec3cf892fe7edaac0f7a56017938207
- 2026-11-09T15:30:06Z publication: promoted at 2026-11-09T15:28:45Z · promoted digest sha256:4fbc8f7996f6bcd8c2eb27555d892b6dce5ac0a03fd620dd92d430c22865ff89 · promotion method imagetools_create_retag_by_digest_no_rebuild · site event 419 · checklist status complete · checklist at 2026-11-09T15:30:06Z · record workspace: deliverables/provenance/PROMOTION_RECORD.json, RELEASE_CHECKLIST.json
Records
25 records| Record | Where it is | Rows |
|---|---|---|
docs/defects/defects.json | inside the archive (ReadyStack-ghost-v6.75.0-CE-ubuntu24.04-r1.tar.gz) | — |
docs/provenance/IMAGE_EVIDENCE.json | inside the archive (ReadyStack-ghost-v6.75.0-CE-ubuntu24.04-r1.tar.gz) | — |
docs/provenance/LOCKED_DIGEST.txt | inside the archive (ReadyStack-ghost-v6.75.0-CE-ubuntu24.04-r1.tar.gz) | — |
docs/provenance/PINS.json | inside the archive (ReadyStack-ghost-v6.75.0-CE-ubuntu24.04-r1.tar.gz) | — |
docs/provenance/REPRO_VERIFICATION.json | inside the archive (ReadyStack-ghost-v6.75.0-CE-ubuntu24.04-r1.tar.gz) | — |
docs/provenance/SOURCE_TREE_HASH.json | inside the archive (ReadyStack-ghost-v6.75.0-CE-ubuntu24.04-r1.tar.gz) | — |
MANIFEST.json | beside the archive (prodasset /data/production/ghost/v6.75.0-CE-ubuntu24.04-r1/), as staged for publishing | — |
PUBLISH_MANIFEST.json | beside the archive (prodasset /data/production/ghost/v6.75.0-CE-ubuntu24.04-r1/), as staged for publishing | — |
ReadyStack-ghost-v6.75.0-CE-ubuntu24.04-r1.rebuild.json | beside the archive (prodasset /data/production/ghost/v6.75.0-CE-ubuntu24.04-r1/), as staged for publishing | — |
ReadyStack-ghost-v6.75.0-CE-ubuntu24.04-r1.rebuild.json.sigstore | beside the archive (prodasset /data/production/ghost/v6.75.0-CE-ubuntu24.04-r1/), as staged for publishing | — |
SCOUT_EVIDENCE.json | beside the archive (prodasset /data/production/ghost/v6.75.0-CE-ubuntu24.04-r1/), as staged for publishing | — |
clean-room rebuild ledger | the clean-room rebuild ledger (runstate/audit-2026-09/bit4bit.json, not published) | — |
build_requests | sadb, ReadyStack's engine database (not published) | 602 |
chains | sadb, ReadyStack's engine database (not published) | 908 |
defects | sadb, ReadyStack's engine database (not published) | ghost v6.75.0-CE-ubuntu24.04-r1 |
drive_runs | sadb, ReadyStack's engine database (not published) | chain 908 |
held_rounds | sadb, ReadyStack's engine database (not published) | chain 908 |
lesson_recalls | sadb, ReadyStack's engine database (not published) | chain 908 |
micro_step_runs | sadb, ReadyStack's engine database (not published) | chain 908 |
release_images | sadb, ReadyStack's engine database (not published) | ghost v6.75.0-CE-ubuntu24.04-r1 |
stage_events | sadb, ReadyStack's engine database (not published) | chain 908 |
stage_runs | sadb, ReadyStack's engine database (not published) | chain 908 |
attestations.json | the chain's workspace on the controller (not published) | — |
deliverables/provenance/PROMOTION_RECORD.json | the chain's workspace on the controller (not published) | — |
g8_result.json | the chain's workspace on the controller (not published) | — |