Self Hosted Wiki for your Homelab using WikiJS, Docker, and Unraid

Wiki.JS runs off of Node.JS and is an incredibly simple to use self hosted container that you can deploy on your Unraid server. Unraid makes deploying Wiki.JS easy thanks to the Community Apps plugin.

Documentation Server

Hardly anyone likes documentation until you need to remember how you did something in the past or until someone else needs to know how to access a server, service, or make modifications to a system. Best of all, it is all local to you, so even if the internet is down you can still access your own wiki.

Why should you be documenting information about your homelab?

  • Assist users to access services in your absence

  • Leave instructions for users / loved ones on what to do with your information should you meet your demise

  • Easily find fixes or past information to resolve repeating issues

  • Create Tables that contain important information about system roles, services, IP’s, location, and more

  • Display diagrams, videos, documents, voice memos, etc

  • Let’s users know how to mount Shares, remember username details, or other self help information

Assumptions

Before continuing on to the “how to install Wiki.JS container” portion of this page, first we have to talk about the elephant in the room. That your network already has a DNS operational. There are 100’s of different ways to run a DNS on a network and to keep this page condensed, I will not be writing instructions on how to access your wiki using a hostname or domain name.

  • You already have a DNS running

  • You already have the Community Apps plugin install in Unraid



How to Install Wiki.JS

Step 1: Create a “Share” to store all uploads, data, and other content created in wiki.

Step 2: Download & install “wikijs” from linuxserver’s repository. ->example link<-

  1. Change the default port to 80 (for ease of use for other users) ->example link<-

  2. We will manually configure port 80 later, the container will still default to port 3000

Step 3: Create an administrator “email/account”. You can use a real email address or a fake one, like admin@example.com

Step 4: You can go ahead and set a “Site URL” like http://wiki.lan or whatever your domain is named.

Step 5: Login with the admin account you just created, admin@example.com

Step 6: At the “Welcome to your wiki!” page go ahead and “Create Home Page” for now. ->example link<-

Step 7: Create and fill out your home page however you see fit. Click the “Create” button in the top right corner of the page when you are done. ->example link<- additional ->example<-

Step 8: In the top right corner click the gear icon.

Step 9: Feel free to edit the main settings for your wiki under the General setting, feel free to create users and groups. ->example link<-

Step 10: Once you are done, go back to Unraid and navigate to the Docker tab. Stop the Wiki container.

Step 11: Open the WebUI Terminal by clicking the “>_” near the top right of the page.

Step 12: Use the following command to change the default port from 3000 to port 80.

  1. sed -i 's/3000/80/g' /mnt/user/appdata/wikijs/config.yml ->example link<-
  2. The file should like this when modified correctly ->example link<-

  3. Don’t forget to add a DNS record associating the IP address you set to the url you set of you wiki. Like wiki.lan

Step 13: Start the wikijs container again.

Step 14: You should now be able to type in the IP address or the hostname “wiki.lan” as in my example. ->example link<-

Done, you can now manage your new Wiki server however you see fit from here!



Use Cases

Hosting your own Wiki server can have many advantages, here is a short list just to name a few.

  • Give your friends information about Game Servers you host, like Minecraft, Counter Strike, Valheim, and so on

  • Leave a loved one important details about your combined personal information

  • Document your work environment so you and others have a better understanding of it

  • Help friends and family members better understand your home network and/or how to access data

  • Remember IP Addresses for local services like Plex, Jellyfin, NextCloud, Emby, and much much more