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 :
- a WordPress instance customized to act as a wiki (there are some themes and plugins made for this)
All these apps are certainly good, but one especially retained my attention : bookstack.
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.
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.
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.