My journey in building a “homelab”, like many others, started out with the purchase of a 2nd generation Raspberry Pi model B in 2015. It was connected to a now aging ASUS 802.11ac router, and foolishly double-NAT’d to an archaic Verizon FiOS router (this was back in high school when I knew very little about networking). I managed to dig up a picture I took for the presentation that coincided with the school project I bought the RPi for:
Fast forward to 2021, and here’s what my setup looks like today:
The upgrade process to get to today’s end result didn’t happen overnight; over the course of the past 6 years I have gone through a 3rd generation Raspberry Pi, an old HP laptop (the same one used in my “World’s worst Hackintosh” post), and a Dell SFF desktop provided by a previous employer that was about to throw it out. The first RPi, and subsequent pieces of hardware, mainly served as file and HTTP servers. I was running my main website, shravanj.com, at home on the first and third generation RPis for several years up until last year when I migrated the site to Digital Ocean. After moving to a more Windows based infrastructure with the HP laptop and Dell SFF, I began running Plex for in home streaming and media management. Little did I know that my needs would continue to grow past Plex, to the point where I now run two Aerospike CE instances, Mongo DB, Microsoft SQL Server, Plex, several ASP.NET Core applications in IIS, and more on a single machine. This is all possible thanks to the refurbished Precision 7810 tower. Equipped with dual Intel Xeon E5-2678s totaling 24 cores and 48 threads, 128 GB of ECC DDR4 RAM, a 480 GB Intel DC series SSD, 1 TB Samsung 860 EVO SSD, 500 GB SanDisk Ultra SSD, and a 1 TB WD Blue spinning hard drive, this machine still has plenty of headroom for future projects. Instead of running Windows on bare metal like I’ve done previously, I instead opted to run Proxmox VE as my hypervisor and run Windows Server 2019 in a single VM.
As you can see from the dashboard, I’m barely pushing the machine. I have Aerospike 5 Community Edition running in two CentOS 7 VMs for full replication, and a third CentOS 7 VM running MS SQL Server and Mongo DB 4.4. I do quite a bit of experimentation with databases, as well as supporting the Pseudo Markets project through this infrastructure, hence having 3 VMs just dedicated to running database engines. Complimenting the Precision tower is the 2014 Mac mini which primarily serves as a SMB file store since I do mobile development on my 2018 MacBook Pro these days.
After deploying Ubiquiti UniFi equipment for a previous employer, I realized how bad most consumer networking gear is. The ASUS router was pretty solid 5 years ago, but pales in comparison to the UAP-AC-PRO and EdgeRouter X combo I am currently running. Admittedly, I would now spring for the newer UniFi 6 APs, but these were not available when I setup the AC PRO. As for the EdgeRouter X, I thought it delivered the best price to performance ratio for my network setup. Having worked with a UniFi Security Gateway and UDM Pro, I didn’t need that level of orchestration since I wasn’t going to use any UniFi managed switches or any additional UniFi controller features. The EdgeRouter X is able to max out my 500/500 Mbps fiber connection and provide rock solid gigabit performance within my intranet. It still offers powerful routing and management features, and does not require a controller since it runs Edge OS. I run the AC Pro in standalone mode, using the UniFi app on my iPhone to act as it’s controller for initial setup. But after all that, it has been set and forget, and that’s what I really like about Ubiquiti’s gear. There are some other great products our there like MikroTik’s RouterBOARDs, but the ease of use and familiarity I have with Ubiquiti products made this combo a no-brainer for me. Aside from that, there’s nothing too fancy going on with the innerworkings of the network. It’s pretty standard with the ERX managing DHCP with a few static IP allocations, hairpin NAT, HTTP and HTTPS port forwarding, and such.
Overall I am very pleased with this setup, and it’s fun to look back and see how my compute infrastructure has grown from a single RPi to a full out virtualized server environment. All of this was done with budget in mind as well, such as buying the Dell Precision as a refurb. You don’t have to have a corporate datacenter budget to build your own mini datacenter at home.