STATUS ÜBERPRÜFEN
I AM LISTENING TO
|

Day 11: Bookstack – An Open-Source Wiki Platform – 7 Days of Docker

LAST MODIFIED: 31. August 2026
28. Februar 2025
.SHARE

Table of Contents

In the era of digital documentation, having an efficient wiki platform is crucial for knowledge sharing and team collaboration. BookStack provides an intuitive, scalable, and open-source solution that enables users to efficiently manage, search, and categorize documentation in a user-friendly way.

Why Choose BookStack?

BookStack stands out for several reasons:

  • Open-Source & Free: Available for anyone to use and modify, ensuring transparency and community-driven development
  • Scalability: Can handle requirements from small teams to enterprise-level deployments
  • Customizable: Allows various integrations and modifications to fit specific needs
  • User-Friendly Interface: Designed for smooth navigation with an intuitive UI that organizes content into Books, Chapters, and Pages

Why Use Docker for BookStack?

Docker provides several advantages when deploying BookStack:

  • Simplified installation without manually configuring PHP, web servers, or databases
  • Consistent environment across different systems
  • Easy updates with minimal downtime
  • Isolation from other applications on your server

System Requirements

BookStack doesn’t officially list minimum system requirements in their documentation, but based on common usage:

  • Recommended: Modern CPU, at least 1GB RAM (more for larger instances)
  • Database: MySQL 8.0+ or MariaDB
  • PHP: PHP 8.1+ (handled by the Docker container)
  • Web Server: Apache or Nginx (handled by the Docker container)
  • Browsers: Modern browsers like Chrome, Firefox, Safari, Edge

Setting Up BookStack in Docker

Using Docker to run BookStack simplifies deployment and maintenance. Here’s how you can set it up:

1. Create a Docker Compose File

First, create a new directory for your BookStack installation:

mkdir bookstack
cd bookstack

Create a docker-compose.yml file:

version: '3'
services:
  bookstack:
    image: lscr.io/linuxserver/bookstack:latest
    container_name: bookstack
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/London
      - APP_URL=http://your-domain.com
      - DB_HOST=bookstack_db
      - DB_USER=bookstack
      - DB_PASS=your_database_password
      - DB_DATABASE=bookstack
    volumes:
      - ./bookstack_data:/config
    ports:
      - 8080:80
    restart: unless-stopped
    depends_on:
      - bookstack_db
    
  bookstack_db:
    image: lscr.io/linuxserver/mariadb:latest
    container_name: bookstack_db
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/London
      - MYSQL_ROOT_PASSWORD=your_root_database_password
      - MYSQL_DATABASE=bookstack
      - MYSQL_USER=bookstack
      - MYSQL_PASSWORD=your_database_password
    volumes:
      - ./bookstack_db_data:/config
    restart: unless-stopped

Remember to replace:

  • your-domain.com with your actual domain or IP address
  • your_database_password with a strong password
  • your_root_database_password with another strong password
  • Adjust the timezone (TZ) to match your location

2. Launch BookStack

Start the containers with:

docker-compose up -d

3. Access BookStack

Once the containers are running, open your browser and go to:

You should now see the BookStack login interface. The default credentials are:

  • Email: admin@admin.com
  • Password: password

Important: Change these default credentials immediately after your first login!

Key Features

Use Cases

  • Internal Documentation: Create a centralized repository for company information
  • Project Management: Document project requirements and processes
  • Technical Documentation: Maintain detailed technical guides and references
  • Knowledge Base: Build a searchable library of information for your team

Community and Support

BookStack benefits from an active open-source community that continuously contributes to its development. Users can:

With Docker simplifying the deployment process, BookStack offers an excellent solution for teams and organizations seeking a robust, open-source documentation platform that’s easy to set up and maintain.

Export to Markdown / MD

If you use BookStack for documentation, bookstack-file-exporter solves a common headache: getting your content back out. BookStack stores everything in a database — great for performance, terrible for portability.

This script connects directly and exports all your shelves, books, chapters, and pages as clean Markdown files with the original folder structure intact. The main use case is backups you can actually read and version control, but it also handles migrating between BookStack instances, feeding content into static site generators, or just giving you an escape hatch if you ever want to leave the platform.

Each page gets an individual .md file with metadata preserved in YAML frontmatter, images are extracted alongside the content, and nested book-chapter-page hierarchies are replicated as directories. It’s a single Python script with no dependencies beyond what ships with Python — no API keys, no OAuth dance, just a database connection string and a target directory.

FAQ

What is BookStack and who is it for?

BookStack is an open-source wiki platform that organizes documentation into Books, Chapters, and Pages — like a digital library. It’s ideal for teams that need structured knowledge sharing, personal documentation, internal wikis, or project handbooks. The WYSIWYG editor with Markdown support keeps things simple, and role-based permissions let you control who can view, edit, or create content. It scales from solo use to enterprise teams.

What are the system requirements for running BookStack?

BookStack doesn’t publish official minimum requirements, but based on common usage you’ll want a modern CPU, at least 1GB RAM (more for larger instances with many users), MySQL 8.0+ or MariaDB, and PHP 8.1+. The Docker setup handles PHP and the web server automatically, so you only need Docker and Docker Compose installed. Modern browsers like Chrome, Firefox, Safari, or Edge are required on the user side.

How do I install BookStack with Docker?

Create a directory, write a docker-compose.yml with two services — the linuxserver/bookstack image and linuxserver/mariadb — then run docker-compose up -d. You’ll need to set APP_URL to your domain or IP, configure database credentials, and set your timezone. Once running, access BookStack at http://localhost:8080 (or your configured port). The default login is admin@admin.com with the password ‚password‘ — change these immediately after your first login.

Why should I run BookStack in Docker instead of installing it manually?

Docker eliminates the manual setup of PHP, a web server, and database configuration — the container handles all of it. You get a consistent environment across dev and production, updates are as simple as pulling a new image, and BookStack stays isolated from other applications on your server. It also makes backups easier since all data lives in mounted volumes rather than scattered across your system.

How is content organized in BookStack?

BookStack uses a three-level hierarchy: Shelves group related Books, Books contain Chapters, and Chapters hold Pages. This mirrors how physical documentation works and makes navigation intuitive. You can also create Pages directly inside Books without Chapters for simpler structures. The built-in search works across the entire hierarchy, and the WYSIWYG editor supports both rich text and Markdown input.

Can multiple users collaborate in BookStack?

Yes. BookStack includes role-based permissions so you can define who can view content, who can edit existing pages, and who can create new Books and Chapters. Permissions can be set globally or at the Shelf, Book, and individual Page level. This makes it suitable for everything from a personal wiki with no other users to a team documentation hub with dozens of contributors.

How do I back up my BookStack data?

With Docker, your data lives in two mounted volumes — ./bookstack_data for the application configuration and uploaded files, and ./bookstack_db_data for the MariaDB database. Backing up means copying those directories. For automated backups, you can dump the database with mysqldump and archive the config volume. Tools like bookstack-file-exporter can also pull your content as clean Markdown files with preserved folder structure for readable, version-controllable backups.

What should I do after the first login?

Change the default admin credentials immediately — the default is admin@admin.com with password ‚password‘, which is publicly known. Go to your user profile and update the email and password. Then create your first Shelf and Book, set up user roles if you’re working with a team, and configure the site name and branding under Settings. If the instance is publicly accessible, also make sure APP_URL in your Docker Compose file matches your actual domain.

Can I migrate from another wiki platform to BookStack?

Yes, though it requires some manual work. BookStack doesn’t have a built-in importer for other platforms, but you can export content from your current wiki as Markdown or HTML and recreate the structure. Several community scripts exist for importing from Confluence, MediaWiki, and Notion. If you have a large volume of content, plan the migration in stages — Books first, then Chapters and Pages — to keep the hierarchy clean and avoid duplicate content.

How do I update BookStack running in Docker?

Pull the latest image with docker-compose pull bookstack, then restart the stack with docker-compose up -d. The linuxserver image runs database migrations automatically on startup, so no manual update commands are needed. Always back up your volumes before updating — just in case something goes wrong. Also check the BookStack release notes for any breaking changes or manual steps required between major versions.

Let’s Talk!

Looking for a reliable partner to bring your project to the next level? Whether it’s development, design, security, or ongoing support—I’d love to chat and see how I can help.

Get in touch,
and let’s create something amazing together!

RELATED POSTS

You can SSH into a server and move files around with raw scp and sftp commands, but the moment you manage more than a couple of machines you start wishing for something friendlier — without giving up the terminal. That’s exactly the gap the new wave of TUI clients fills: full-screen file explorers and SSH […]

Picking a color picker sounds like a five-minute decision, and then you open a dependency tree full of jQuery, React wrappers and „lightweight“ libraries that weigh more than your whole app. If you just need a solid color picker that adds nothing to your bundle except the picker itself, you’ve come to the right place. […]

Markdown is perfect right up until a second person touches it. On your own, a folder of .md files is the best documentation system ever invented. Add four colleagues and suddenly you’ve got three different heading styles, a README that links to a domain that expired in 2023, and Steve, who writes every sentence in […]

Alexander

I am a full-stack developer. My expertise include:

  • Server, Network and Hosting Environments
  • Data Modeling / Import / Export
  • Business Logic
  • API Layer / Action layer / MVC
  • User Interfaces
  • User Experience
  • Understand what the customer and the business needs


I have a deep passion for programming, design, and server architecture—each of these fuels my creativity, and I wouldn’t feel complete without them.

With a broad range of interests, I’m always exploring new technologies and expanding my knowledge wherever needed. The tech world evolves rapidly, and I love staying ahead by embracing the latest innovations.

Beyond technology, I value peace and surround myself with like-minded individuals.

I firmly believe in the principle: Help others, and help will find its way back to you when you need it.