Docs and wikis, checked 2026-10-17
BookStack: Docker configuration reference
Self-hosted wiki platform organising content into books, chapters and pages with a WYSIWYG editor.
At a glance
- Image:
lscr.io/linuxserver/bookstack - Tags:
latest,26.09.1,version-v26.09.1,arm64v8-latest - Licence: MIT
- Source: https://github.com/BookStackApp/BookStack
- Docs: https://www.bookstackapp.com/docs/
Ports
| Port | What listens | Source |
|---|---|---|
80 | HTTP web interface inside the container. The LinuxServer.io compose example maps host port 6875 to it. | source for port 80 |
Environment variables
| Variable | Required | What it does | Example | Source |
|---|---|---|---|---|
APP_URL | Yes | The protocol, host and port BookStack is accessed on. Wrong values break generated links and static asset URLs. | https://bookstack.example.com | source for APP_URL |
APP_KEY | Yes | Session encryption key, generated once with the image's appkey command and then kept stable. BookStack 26.09 and later errors if it is unset. | base64:generated_value | source for APP_KEY |
DB_HOST | Yes | Hostname of the MySQL or MariaDB server BookStack connects to. | bookstack_db | source for DB_HOST |
DB_DATABASE | Yes | Name of the database BookStack uses; the application manages its own schema inside it. | bookstackapp | source for DB_DATABASE |
QUEUE_CONNECTION | No | Set to database to enable async actions such as sending email or triggering webhooks. | database | source for QUEUE_CONNECTION |
Volumes that must persist
| Path | What is in it | Source |
|---|---|---|
/config | Application config, uploaded images and attachments, and the copied .env file. Loses the whole install if not persisted. | source for /config |
Behind a reverse proxy
- APP_URL must match the externally visible address exactly; changing it later requires running the bookstack:update-url artisan command to fix stored links. source for this reverse-proxy note
- Docker installs needing a subdirectory path should configure it at the reverse proxy rather than following the plain webserver subdirectory guide. source for this reverse-proxy note
What it needs alongside it
| Dependency | Why | Source |
|---|---|---|
| MySQL 8.0 or MariaDB 10.6 or newer | Required relational database for all BookStack content and settings; a single database with full permissions is advised. | source for MySQL 8.0 or MariaDB 10.6 or newer |
Release timeline
| Version | Date | Breaking | What changed | Source |
|---|---|---|---|---|
v26.09.1 | 2026-09-29 | No | Fixes page permissions not regenerating on chapter promotion and the API attachment list showing recycle bin pages; checks ZIP import size before extraction. | source for release v26.09.1 |
v26.09 | 2026-09-24 | Yes | An APP_KEY value must now be set; there is no default fallback and BookStack errors if it is unset. Adds an interface layout system and book and chapter search API endpoints. | source for release v26.09 |
v26.05.5 | 2026-09-14 | No | Security release scoping social login account queries to the social system, so accounts from different services cannot be mismatched. | source for release v26.05.5 |
v26.05.4 | 2026-08-24 | No | Security release fixing attachment permission checks and misuse of drawing request endpoints. | source for release v26.05.4 |
v26.05.3 | 2026-07-29 | No | Security release for external authentication user matching across OIDC, SAML2 and LDAP. | source for release v26.05.3 |
v26.05.2 | 2026-07-02 | No | Security release addressing URL filtering, redirect handling and permission checking edge cases. | source for release v26.05.2 |
v26.05.1 | 2026-06-09 | No | Security release fixing attachment requests that could leak metadata the user did not have permission to see. | source for release v26.05.1 |
v26.05 | 2026-05-28 | Yes | Revision access is now controlled separately from page access, which can remove revision visibility some users had before. Font changes may need a storage/fonts permission fix for PDF export. | source for release v26.05 |
If it is not coming up
- Coolify volume data lost after redeploy / a new empty volume is created every deploy
- ECONNREFUSED / ENOTFOUND / connection to server at "postgres" port 5432 failed
Read from the upstream documentation, repository and container registry by Keita Emsden on 2026-10-17. Every row links the page it came from. Upstream changes without telling anyone, so check the source link before you rely on a value.