BookStack
Simple wiki software built around books, chapters and pages
What is BookStack?
BookStack is a self-hosted documentation platform that organises everything into a fixed hierarchy of shelves, books, chapters and pages, and deliberately refuses to let you invent your own structure. It is built with PHP on Laravel, stores content in MySQL or MariaDB, and its stated goal is that anyone with basic word-processing skills can contribute without being taught how.
Best for
Teams whose documentation needs a structure more than it needs flexibility
Why choose BookStack
The constraint is the feature. Because BookStack will not let you build a bespoke hierarchy, nobody on your team has to make a structural decision before writing the first page, and a new contributor can be told "it goes in the runbook, under Backups" without a diagram. That makes it unusually good at the unglamorous documentation that teams actually need — procedures, onboarding, runbooks — and unusually bad at the free-association style of wiki where pages link to each other in every direction. Search covers the whole instance or a single book, and every paragraph has its own link, so cross-referencing works even without backlinks. It is MIT licensed, which is the permissive end of the scale and means no copyleft obligation on anything you write inside it.
Replaces
- Confluence
- Notion
- MediaWiki
Key features
- Fixed shelf, book, chapter and page hierarchy
- WYSIWYG page editor
- Search within one book or across the whole instance
- Permalinks to individual paragraphs
- LDAP, SAML 2.0 and OpenID Connect authentication
- Configurable name, logo and registration settings
- Whole instance can be public or private
- MIT licensed
What to watch out for
BookStack does not support shared PHP hosting — the maintainers are explicit that there are too many differences between providers to support it, so you need a server, a VPS or a container host you control. The manual install path assumes you are comfortable with PHP, Composer and a database; the Docker and Ubuntu script paths avoid most of that. Structurally, the hierarchy is not negotiable: if your documentation genuinely needs tags, arbitrary links and multiple overlapping views, you will spend your time fighting the model rather than writing. Development moved to Codeberg, and the GitHub repository is only a mirror, so issue reports and releases belong upstream.
How to deploy
- Docker
- Manual (PHP)
- Ubuntu install script
Getting started
Use the demo instance before installing anything — the shelf/book/chapter model is the whole product, and fifteen minutes of clicking tells you whether your team will accept it. Install with Docker unless you have a specific reason not to: the manual path adds PHP, Composer and webserver configuration for no benefit at small scale. Plan the top-level shelf structure on paper first, because moving content between books later is more annoying than it looks. Turn on LDAP, SAML or OIDC early if you have an identity provider, since retrofitting authentication after people have local accounts is the usual source of duplicate users.
Typical setup
Most installations run BookStack as a container alongside a MySQL or MariaDB container on a small VPS or home server, behind a reverse proxy that terminates TLS. Instances are commonly exposed only through a VPN or tunnel, because the alternative to a wiki nobody can reach is a wiki everyone can reach. Backups are the database plus the uploads directory; the database is the one that matters, and a nightly dump is enough for most teams.
Who should look elsewhere
Not for anyone who wants a wiki of loosely linked pages — the fixed hierarchy will feel like a straitjacket, and a tool built around backlinks and graph views is a better fit. Also not for shared hosting, which it does not support, and not for teams that need the document to be the database: BookStack stores prose, not structured records.
Project health
- GitHub stars: 19,072
- Last code push: 2026-10-03
- Open issues: 3
- Status: actively developed
Figures pulled from the GitHub API and refreshed periodically.