Starting a Homelab

I have a spare laptop that I installed Ubuntu on sometime last year to understand Linux better. I did get a better understanding of how the hardware and OS work together (even wrote posts about it), but quickly ran into a roadblock on what else I could work on. My goals were to understand networking and develop Linux sysadmin skills.

I started lurking on r/homelab probably around the same time. Something about the term “lab” brought such joy to me—a space where one could tinker to their heart’s content, break things and fix them, and then share their findings. However, along with joy also came feelings of overwhelm, as most of the posts I saw there went over my head.

It was after a few chats with people at the Recurse Center who were also working on their homelabs and searching for beginner posts on r/homelab that made things click for me.

Instead of running things on a single operating system or, what I needed was a hypervisor. I used to setup Linux/Windows virtual machines on my daily driver, but often had to delete them as they would take up a lot of space. Having a dedicated machine turned into a hypervisor solves this problem. The machine I’m using—a 15-inch MacBook Pro from 2017—has 2TB of storage, which is more than enough to create and delete as many VMs as I want. I chose Proxmox as the hypervisor, which is built on top of the Debian Linux distribution.

Using a laptop instead of an actual server meant that I had some constraints:

  1. The machine connects to the Internet via WiFi and does not have an Ethernet port. Proxmox doesn’t recommend using WiFi, however I tried my best to make it work. When I realized that it is too much of a limitation, I purchased a USB-to-Ethernet adapter. I learnt about how to get an Ethernet connection from my home router to my room for the first time, which was fun!

  2. The machine is a laptop with a battery in it and the battery is quite power hungry, so keeping the machine up all day while plugged in wasn’t seeming like a good idea. So I decided that I wouldn’t keep the machine up at all times, and use it like a regular laptop.

Another constraint that I personally set was to rely on virtualization as much as possible and introduce additional hardware only where required. I wanted to get started quickly and not fall down the rabbit hole of deciding what hardware to buy. I also wanted to test the limits of the machine and tools I already had.

Here is a list of things I plan to work on, each of which might turn into one or more blog posts: