My Home Lab

Intro

Last year I finally decided where I was going to settle in for working from home after 2 years of bouncing around to different bedrooms, and the dining room table. I decided to build out a little area in the utility room under my house. You can read more about that project here.

The Rack


Let's start with the basics. I wanted a rack because they're cool. I wanted one big enough to hold a bunch of stuff, but it had to fit on the shelf/worktop I had already built. So a 12U rack is just perfect for that space.

The chassis for the home lab is a StarTech 4POSTRACK 12U rack. It's just the right size to hold everything I need and keeps me from succumbing to the feeling that I should just go ahead and fill some more slots if they're open. :smiling-face: I also got a couple of shelves. One that originally held a desktop PC (not a tower), and the other I still use to hold the NETGEAR switch and the NUC for the Pi cluster.

Switching

This is a simple and cheap unmanaged 16 port Gigabit switch. It was among the first pieces of gear I bought because I knew I needed to get a local network up for my work laptop and my personal PC. It originally had a run to the cable modem/router for the house. Later on when I started running pfSense, I had the home run go to one of the NICs on the R720XD. Now the switch is connected to another NIC on the R720XD.

NETGEAR GS305EPP Switch

This is a 5 port managed switch with Power Over Ethernet (POE). I chose it to be just the right size for my cluster of 4 Raspberry Pi 4s and a NUC. The Pis a are powered by this switch thanks to the POE hats that came with the Uctronics Ultimate Pi Rack.

Servers

Both of the servers in the rack are old. Quite old. They're more than sufficient for my purposes, if not a bit power hungry.

Dell R720XD

The 720XD was the first server I bought, mostly because it was the first to pop up on Ebay in a price range I was willing to pay. I didn't exactly want an XD as I doubt I'll ever fill all 24 drive bays, but hey, you never know. The 4 network interface cards come in handy for it being the center piece of the rack for compute, storage, and routing. More on this later under The Stack.

Dell R420

I bought the R420 because I wanted a dedicated system to build into a NAS. One would think that the R720 would make for a better NAS since it has a much much higher maximum storage capacity, but that's just not how it worked out in the order of acquiring pieces. If I ever rebuild The Stack, I might consider having the R420 be my virtualization server and the R720XD be the NAS. But I don't foresee doing that any time soon.

Uctronics Ultimate Pi Rack

I wrote up a post about the Uctronics Ultimate Pi Rack, so you can read more details about it there.

NUC

I have no recollection of how or why I got this NUC. I feel like I won it or something. Anyways it just serves as the control plane for the Raspberry Pi Kubernetes cluster.

Power

CyberPower CPS 1215RMS

This is a simple surge protecting power distribution unit. Before I got the APC Uninterruptible Power Supply, all the hardware was plugged in here. It has a nice cover over the power switch, though I can't imagine why I'd ever want to simultaneously power down the entire rack. Now it's still used for a couple of items that don't need backup power. Second monitor, laptop, and a couple of desktop peripherals such as my microphone.

APC SmartUPS C1500

This is the latest addition to the rack. I didn't spend a lot of time calculating my needs for battery backup because I wasn't going to spend a lot of money on it anyway. Instead I lucked out on receiving a $500 gift card and this unit being on sale for almost half off. I have to pick and choose what is on battery backup and then of course I need to do some test runs once I've configured the machines to gracefully shutdown in the event of a power outage (likely, since I live in Northern California).

The Stack

Hardware is all fine and good, but I'm a software guy, so what does the homelab run?

ProxMox VE

ProxMox VE "is a complete, open-source server management platform for enterprise virtualization." I'm not an enterprise, so what that means for me is virtual machines and LXC containers for various uses.

pfSense

You may have noticed the absence of any hardware in the rack for routing. I am, for now, running pfSense as a VM in the R720XD. This allows me to isolate the home lab from the rest of the devices on my home network, and well... play with pfSense. I dedicate two of the Dell's NICs, one for WAN (to the house cable modem/router) and the other for LAN (to the TP-Link switch). It would be more economical in the long run to get some dedicated hardware for routing, especially if I want to spin down the R720XD if I'm not using it regularly.

git

I'm a software developer, even as a hobby. I do use GitHub, but I've also been running git for myself since before they made unlimited private repositories available.

VulnHub VMs

This has one of my favorite uses for the homelab. VulnHub aims "To provide materials that allows anyone to gain practical 'hands-on' experience in digital security, computer software & network administration."

Getting some practice in. #vulnhub #oscp #proxmox pic.twitter.com/IuMj74UvMTJune 17, 2022

Miscellaneous

I like trying out different Linux distros and so far I've played with Ubuntu, Debian, Kali, Parrot, Fedora and Arch. I also have a few different Windows evaluation versions.

TrueNAS

I feel like I've only just scratched the surface with TrueNAS. Up to this point I've had a trusty little Synology NAS Diskstation DS216J which I use for storage and media, and have automated backups to Amazon S3 with its built in backup configurability. Until I've got the backup situation totally configured in TrueNAS, I'm not ready to retire the Diskstation. Mostly I've spent time fiddling around with Grafana. I don't have any need for its ability to run virtual machines since I have that covered already. One thing I would like to explore is setting it up to provide persistent storage for the Pi cluster.

Influx DB & Grafana

Grafana "is the open source analytics & monitoring solution for every database." Installing the Grafana plugin for TrueNAS also installs Influx DB. Influx DB is one of several options for providing data sources for the dashboards you create in Grafana. Various other hosts on my homelab network populate data in the database. pfSense has a plugin which logs all kinds of networking details, and ProxMox also can be configured to provide data on the host and all of its VMs and containers. Most recently I configured a Telegraf input plugin to gather details about the APC Uninterruptable Power Supply as well. My plan is to make one master dashboard that covers all of the vitals for the homelab, though so far I have just played around with some dashboard provided by the community.

Plex

Ok, I only installed Plex because it seems like what everybody does and I wanted to check it out. I just don't have much of a media library and don't really need the streaming TV and movie options. But it's there if I want it I guess.

Kubernetes

Kubernetes is a topic all of its own and after getting the Pi cluster up and running with a few different apps, I kind of lost interest. I was going to get back into it, but some update or other has broken the cluster and I just haven't had the will to get back into it yet.

Summary

So there we go, that's the whole homelab in a nutshell. It's definitely in a state of serving all my needs. I'm enjoying the flexibility and power it provides, and I'm happy to have it squared away. I have no plans to expand any further, so it's pretty much maintenance mode as far as hardware goes. Software is always a tweak and play kind of endeavor for me, and I'll continue to experiment with different operating systems and services as I go.