3 min read

Streamlining My Homelab: How Plane and Wiki.js Help Me Stay Organized

Streamlining My Homelab: How Plane and Wiki.js Help Me Stay Organized

At the core of my journey I need two things: a project management software, and a place to keep my knowledge articles, architecture diagrams, and notes about projects. As with many posts you'll see here, I've picked two open source projects to help me accomplish this from awesome-selfhosted: plane and wiki.js. I've not used either of these platforms before, but they seem widely adopted, have adequate documentation, and are easily self-hosted- so for me, this checks a lot of boxes.

The features I'm quite enthusiastic about within Plane is the ability to create projects, smaller tasks, allowing me to keep track of my progress and milestones. Keeping my stories organized is a key component for my success!

I am enthusiastic about Wiki.js for the same reasons- organization! If you've managed any project, big or small, you'll know how difficult it can be to keep track of your notes, or even the small nuances you encountered while navigating from planning to execution, to completion. For me, wiki.js is a must have!

Architecture

Before I dive too deep into services and configuration we should take a minute to talk about architecture. In my homelab I use Proxmox VE where I host most of my services. I have a number of Raspberry Pi's in use for a previous Kubernetes installment, but that didn't take off for me since I'm not using Kubernetes in my job, so maintaining a different tech stack at home adds unnecessary overhead. Since I plan to move back to Docker Compose and Github Actions in the near future I'll consider these deployments temporary. The core setup involves deploying two VMs for each service—one for production and one for development. With two VMs per service, I have the flexibility to scale, test, and update environments independently, ensuring minimal disruption.

Install

The installation for both of these services was extremely simple! The developers for both services have a short one-line install command that walks you through the configuration. As mentioned above, I consider these services in a temporary state, so the simplicity of the install is appreciated.

The install documentation for Plane couldn't make this more simple if they tried. I created a new VM in Proxmox with the 2 vCPU, and 4GB of ram suggested, and ran the install command. The prompts were easy to follow, and the magic began, taking less than 5 minutes to install and log in. I'm excited to create some stories to chip away at, and more importantly keep track of my progress since my primary time to work on this is during the weekends.

To install wiki.js I used one of the Proxmox Helper Scripts which creates an LXC container in Proxmox, and is up and running in less than 5 minutes.

DNS

With all things homelab you have to expect that you'll likely be living in a .local or .home domain for some time until you move into your own hosted domain with some level of access control. I'm not entirely interested in making my homelab available to anyone if I'm being honest. This is a hobby for me, and I'm not serving production traffic to the public, so for the foreseeable future I'm content having my services live on the local domain.

I have a PiHole installation that serves as my DNS service, so I was quick to add a record for both plane and wikijs. If you're at all interested in hosting your own DNS service PiHole is a simple, well adopted service that's fast and easy to manage. In addition, you also get an ad-blocker on your network so long as your router uses this IP as it's DNS service. If you're into homelabbing and haven't yet set up PiHole, it’s a simple service that can help streamline your network management and improve security.

In conclusion I'll briefly touch upon how this fits into the bigger picture of my homelab, the approach I'm taking, and where this fits in for me. On a larger scale I'm hoping to learn more, period. With that comes a lot of mistakes, breaking environments, deleting volumes by mistake, and all that come with it; so I'm here for the ride. Once I provision some additional tooling (think Jenkins, AWX/Semaphore/Ascender) I'll begin building and deploying what I consider the core services I'm interested. I'm a huge monitoring and automation nerd, so getting the service deployments into a pipeline that is easily repeated is a top priority for me. Disaster recovery is also important, not in a traditional DR event, but rather, what happens if I accidentally destroy a service, or VM, or cluster? How quickly can I re-deploy them with backups so not to interrupt my progress and enjoyment?

Cheers.