Bookstack : self-host your own wiki

Initially, as I started using Linux as my daily desktop OS about 2 years ago, I took the habit to take some notes every time I struggled more than 10 minutes on a problem. Because most of time, a few weeks or a few months later the problem could reoccurs, and then you’re happy to get back to your notes, copy/paste the solution and get rid of it.

I started with a simple word processing document I was filling with new entries, but this quickly appears to be a pain in the neck for various obvious reasons.

At the same time, my wife was looking for a way to store her recipes and to be able to read them on both her computer and her mobile devices.

A web application seemed to be the way to go at this time.

I considered and tried a few of them :

  • dokuwiki
  • a WordPress instance customized to act as a wiki (there are some themes and plugins made for this)
  • wiki.js

All these apps are certainly good, but one especially retained my attention : bookstack.

bookstack app
bookstack is great to hold your recipes

I’ve been using it for more than a year now, and I really like it :

  • It’s super fast
  • It’s very mobile friendly and fully responsive (my wife use it a lot on her phone)
  • The UI is clean and nice
  • It’s easy to manage many users with different roles
  • A comprehensive documentation is available
  • It’s super easy to deploy via docker

Speaking of deployment, the author provides various way to do it. Beginners can either use an Ubuntu installation script or deploy it in a Docker container. Here is a docker-compose recipe to quickly deploy it, from the linuxserver.io team :

---
version: "2"
services:
  bookstack:
    image: linuxserver/bookstack
    container_name: bookstack
    environment:
      - PUID=1000
      - PGID=1000
      - DB_HOST=bookstack_db
      - DB_USER=bookstack
      - DB_PASS=<yourdbpass>
      - DB_DATABASE=bookstackapp
    volumes:
      - /path/to/data:/config
    ports:
      - 6875:80
    restart: unless-stopped
    depends_on:
      - bookstack_db
  bookstack_db:
    image: linuxserver/mariadb
    container_name: bookstack_db
    environment:
      - PUID=1000
      - PGID=1000
      - MYSQL_ROOT_PASSWORD=<yourdbpass>
      - TZ=Europe/London
      - MYSQL_DATABASE=bookstackapp
      - MYSQL_USER=bookstack
      - MYSQL_PASSWORD=<yourdbpass>
    volumes:
      - /path/to/data:/config
    restart: unless-stopped

Customize it to your needs, run docker-compose up -d and you’re good to go. Just remember to wait for a short while : the database is building up at the first launch.

Bookstack's WYSIWYG editor
Bookstack’s WYSIWYG editor

You can have a look at the documentation, but I found the various menus and options self-explanatory.

So far, I’m using it to keep track of various guide / tutorials I wrote for myself related to computing in general. The WYSIWYG editor is nice, even though a few formatting bugs happen sometimes and force you to reload the page.

At the time of writing this post, there are about 140 entries/pages of various length in my bookstack instance, and 2 users. The bookstack_db container is using ~ 100mb of RAM and the app one ~80mb.

Both my wife and I are especially happy with the mobile UI, at least for reading, or even for quickly editing a page.

bookstack's mobile UI
bookstack’s mobile UI

Conclusion

I’m very happy with this application and I strongly recommend it to anyone who wants a nicely polished and regularly updated wiki application for both personal or professional usage.

Leave A Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.