Approximately two weeks ago, I wrote a blog post where I mentioned that I was interested in setting up a personal wiki, or something similar, as a way to keep an online commonplace book. I’ve been taking notes on the idea ever since, and today, I finally decided to give it a try.

Requirements Link to heading

I had a few different requirements.

  1. Easy to maintain & use
  2. Markdown support
  3. Accessible and editable on all devices
  4. Web-based, so that I’m not handling syncing between devices
  5. FOSS

Enter Wiki.js Link to heading

After a decent amount of research, where I looked at pretty much every FOSS solution for a personal wiki, I settled on Wiki.js. There were a couple of features that lured me in.

First off, Wiki.js can be installed and maintained easily. While I’m technically capable of doing complex installs and maintenance of software, I very much prefer options that don’t require a lot of extra time to set up and maintain.. Wiki.js has install guides for pretty much every platform, including Docker.

Second, Wiki.js is designed to be both public facing, while still have private pages. I wanted a solution that I could post notes on and point others to, instead of having to copy files around (I historically have kept my own notes in Markdown, but they are not publicly accessible). Wiki.js allows me to do that, and store notes of my own behind a login (if I choose).

Third, Wiki.js has a number of page format options, one of which is Markdown. As mentioned above, I already use Markdown, and I prefer it for the portability and future-proofing it offers. So, I can simply copy my existing files to my wiki, and really the only extra work I need to do is choose the page hierarchy.

Fourth, Wiki.js, while being a web app, can sync all changes to a Git repository. In my mind, this is one of the killer features of the software. I can write notes on my wiki site, and they will be automatically synced with a private Git repo. So even if I choose to use another tool in the future, my notes are all in a Git repo that I can simply clone, and then import into whatever that tool is.

My Setup Link to heading

I started setting up my wiki this morning around 11:30a.

My first step was to choose hosting. I use DigitalOcean fairly heavily, and Wiki.js has a one-click app in the Marketplace, so that’s what I went with. I chose a 5 dollar per month droplet (the smallest), and within a few minutes, the site was up.

Next up, initial login and setup. There’s seriously not much to talk about here. Everything was very straight-forward, and within another few minutes, I had my own wiki started!

The final step of setup was linking a domain name and setting up HTTPS. As I mentioned above, I started this journey a few weeks ago, and so I already had a domain purchased via porkbun.com. I once again followed the setup instructions on the Wiki.js website, and had no trouble completing the setup!

Total time from start to finish, including adding some pages, setting up a Git sync, HTTPS, and exploring the Admin area: ~ 60 minutes.

Current State Link to heading

I’ve spent another hour or so creating and playing with pages since then. I’m very happy with how everything looks so far, and can’t wait to continue expanding the site. At some point, I will probably link to it here on my blog so that others can explore (it is primarily public-facing).

I’m also considering moving a few things that are hosted on Gitlab, or here on my personal website, to my wiki, especially the lists of the books I’ve read, and the books that I want to read.

I’m publishing this as part of 100 Days To Offload (Day 16/100). You can join in yourself by visiting https://100DaysToOffload.com.