dragoș@homepage:~$ _

Home · Essays · Homelab · Docs & Tutorials · About · Contact


Homelab

image
A discreet homelab, hidden away from curious toddlers' hands


image
Network diagram

TABLE OF CONTENTS

There are some photos down below. Don’t be afraid to click them in order to view the full sized version

Why on Earth would I build a homelab?


Because I really love playing around with various devices, testing out configurations and learning new stuff along the way. The thought of building my own “playground”/homelab occurred to me some years ago, but I’ve only just now got motivated enough to actually go ahead & build it (Thanks COVID-19!).

Since I live in a relatively small 2-bedroom apartment with a 3-year old (wildly curious) kid & another toddler, space constraints are a given (so are child safety “gadgets”). Hence my discreet living room setup. The weird diagram in an attempt at illustrating how everything is configured at the moment.

Purpose


I’m mainly working as a Software Test Engineer (and have been for 15 years), but I also occasionally take care of test labs/environments. I do have an itch for embedded systems, a bit of programming, obscure operating systems & BSDs. Furthermore, I’m planning to switch my career path towards Systems Administration/Site Reliability Engineering in one to two-years time, therefore this setup is quite useful for learning.

Hardware checklist


Additional hardware

These two are not (yet) actively used in the “lab setup”, but they will be at some point. Until then, I use them for learning purposes, connecting them to my laptop when needed. In the future, I might add an Arduino board.

Building the lab


I first took the Supermicro server, cleaned it up and placed it in the bottom drawer of a simple IKEA living room organizer. I actually dismantled the back of the drawer (made of pretty solid plastic) in order to have access to all ports and help with ventilation.

image image image

I placed the power sockets on top of it in a manner that doesn’t cover the server’s fans. I use two separate multiple socket thingies, each with an ON/OFF button. One of them is for the Raspberry Pi cluster, because I want to be able to shut that thing off when I’m not actively working with it.

image image

Assembling the Raspberry Pi cluster

I did this in two consecutive evenings, with children-induced chaos & stress. Just kidding, I just used a few small chunks of spare time to put it together. The GeekPi cluster case is built to house 4 boards. Since I wanted to have 7, I had to purchase two sets. No biggie, they’re quite cheap. Nothing much to say here, just playing around with minuscule screws and pins. The GeekPi comes with a lot of heatsinks and one fan for each of the devices you want to add to it.

image image image
image image image

Putting it all together

Now, on to the top drawer, which will host the Atrust thin client, Netgear switch, Raspberry Pi cluster along with the Anker power supply and the good ol’ TP-Link WiFi router. In order to keep things a bit spaced, I’ve used a “Variera” kitchen cupboard organizer. Naturally, all equipment has “rubber feet”. First, place the USB power source, the thin client and the router, along with their cables. Then, fit in the organizer and insert the Netgear switch and the RPi cluster on top of it (again, using some glued rubber pads just to keep things safe).

image image image
image image image

Time to get down on my knees and make the cable mess less messy.

image

Insert all cables and give it a go. Boy, that does sound good!

image image image

The ex-desktop (now server) running Proxmox VE can be seen in the third photo

What do I use it for?

Well, the Supermicro server has VMWare ESXi installed on it. pfSense runs in a VM and is binded to three physical NICs on the server (named WAN, LAB & CLUSTER). This VM handles Internet traffic coming through from the crappy router provided by my ISP. I also run a few other lightweight VMs on this server, like Pi-hole & Alpine Linux.

The Raspberry Pis are used for learning Kubernetes, Docker, Ansible, k3s/Rancher and toying around with NetBSD’s Kyua/ATF (an automated testing framework for Net & FreeBSD - this is done on the RPi 2s). One of the RPis VMWare ESXi for ARM on it, for testing & more (lighter) virtualization. The Atrust thin client is linked to the cluster and it’s mainly used as a machine for coordinating the boards (Ansible & the like).

Dell OptiPlex 3050 Micro is a great mini-PC that’s used as a media center (on Windows 10 Pro) for streaming services. It also runs Syncthing, with which our smartphones sync daily for backing up photos.

Finally, the Proxmox VE server is used for more hardcore virtualization, mainly for studying/learning Windows & UNIX servers at a more “business-like” level (Directory Services in mixed environments, unattended Windows deployments, Hyper-V administration, etc.).

So, it’s an environment that gives me quite some flexibility in learning the topics I’m interested in, while still being fairly discreet and far from the reach of curios children (for now).

That’s mainly all I have to say about how I started my journey in this whole “homelab” universe.