BookStack: documentation wiki of books, chapters and pages. Signed; SBOM and SLSA v1 provenance.
10K+
readystack/bookstack:v26.09.3-CE-ubuntu24.04-r1
Source, recipe and records
v26.09.3): https://github.com/BookStackApp/BookStack/tree/bf680915b6dbaf93eee5234ec72dc33bc5abafbfA cosign-signed build of github.com/BookStackApp/BookStack v26.09.3 (MIT), built clean-room from official upstream source by ReadyStack.
Who: Teams and organisations that want a simple, self-hosted place to write and organise documentation.
Why: BookStack stores knowledge as books, chapters and pages, with a simple WYSIWYG editor and full search, so anyone with basic word-processing skills can write and find documentation.
Use case: An IT team keeps runbooks, onboarding notes and how-to guides in scattered files. In BookStack each system gets a book, each topic a chapter and each procedure a page; new staff search one place, and anyone who can use a word processor can keep a page up to date.
About the upstream project, written from its own description: https://github.com/BookStackApp/BookStack · https://www.bookstackapp.com/
Signature, user and attestations below were measured on the published digest sha256:4ab7f0612e09770cce5e51808cf974b9e443beb308bbf57cca700f1f44d7adcd on 2026-11-13.
04daa92344a52dbc) on this release's index digest sha256:4ab7f0612e09770cce5e51808cf974b9e443beb308bbf57cca700f1f44d7adcd; verify with cosign verify --key https://readystack.dev/keys/cosign.pub readystack/bookstack:v26.09.3-CE-ubuntu24.04-r1.bookstack).This image follows the ReadyStack release-tag convention:
The current release is v26.09.3-CE-ubuntu24.04-r1 — 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/bookstack:v26.09.3-CE-ubuntu24.04-r1
# ✗ unsupported (do not pull)
docker pull readystack/bookstack:internal-...
This release is signed; verify it with cosign verify --key https://readystack.dev/keys/cosign.pub readystack/bookstack:v26.09.3-CE-ubuntu24.04-r1 (the signature is recorded in the public Sigstore transparency log). Support: [email protected], as set out in the ReadyStack Agreement.
Single container (Apache + mod_php, one foreground process) running the BookStack Laravel/PHP application. It REQUIRES an EXTERNAL MySQL 8.0+ / MariaDB 10.6+ database the operator provisions and points the container at via DB_HOST/DB_PORT/DB_DATABASE/DB_USERNAME/DB_PASSWORD env vars — there is NO embedded/SQLite database. BookStack creates and migrates its own schema (php artisan migrate) on first start. NOT a multi-service cluster and NOT docker-compose/Kubernetes-only, but it is NOT self-contained: a MySQL/MariaDB server is a hard external dependency.
Secrets go in an env file that only you can read, not on the command line, and passwords that only set up the first start come out of it after setup. Create bookstack.env with install -m 600 /dev/null bookstack.env, then write these lines into it with an editor, with your own values (a value typed into a shell stays in its history). Docker reads each line as written: no quotes around a value, no spaces around =.
# Needed at every start; keep it unchanged for the life of the installation.
APP_KEY=base64:YOUR_32_BYTE_KEY
# Your MySQL/MariaDB user's password; needed at every start.
DB_PASSWORD=YOUR_DB_PW
docker run -d --name bookstack -p 8080:8080 --env-file ./bookstack.env -e APP_URL=https://books.example.com -e DB_CONNECTION=mysql -e DB_HOST=YOUR_DB_HOST -e DB_PORT=3306 -e DB_DATABASE=bookstack -e DB_USERNAME=bookstack -v bookstack-storage:/app/storage -v bookstack-uploads:/app/public/uploads readystack/bookstack:v26.09.3-CE-ubuntu24.04-r1
Generate APP_KEY once with: docker run --rm --entrypoint php readystack/bookstack:v26.09.3-CE-ubuntu24.04-r1 /app/artisan key:generate --show (a literal placeholder key makes every page answer 500). Put the key on the APP_KEY line of bookstack.env; both lines of the file are read at every start.
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/bookstack. A clean-room rebuild from this release's archive on an egress-blocked host reproduced its linux/amd64 digest sha256:153425bd864264048c631c48181f036e3d7b8288402b7fb8a8e32987b95e0041 on 2026-11-13.
— ReadyStack · readystack.dev
Content type
Image
Digest
sha256:4ab7f0612…
Size
104.4 MB
Last updated
1 day ago
docker pull readystack/bookstack:v26.09.3-CE-ubuntu24.04-r1