Over 2 years ago I built a custom development server for my house. Basically this box ran VMWare ESXi with parts I sources from eBay and Amazon. My choices were not the best, but I was limited at the time due to sky high pricing for used parts due to the Crypo Mining frenzy that was going on at the time. But after living with the build for a couple years there would be a number of things I would do differently and I will go over those things in a latter article. But today, I wanted to go over a more basic question that I get asked:
“Why do you need a Home Lab?”
There is the cloud they say, you can put your stuff on Azure, AWS, GCS or Rackspace, Digital Ocean or a number of other providers out there. I’m going to go over why, even though I am a HUGE enthusiast of the cloud for the Enterprise, why I don’t recommend it for home lab\soho use when you can avoid it.
For reference here are the VM’s currently running on my free ESXi server
I have to start of with this one as it pays a huge role in my thinking. Most of my VM’s on my current server are, in Azure parlance B2S or B4S. In the cloud environment I would size those down to make they cost as little as possible, but here I can ‘right-size’ those environments for the workload. Out of the list above 3 of those would be a B4S and 4 would be a B2S. That is $603 a month I would be spending just on those active VM’s that are ‘persistent’ workloads and doesn’t include the ad-hoc and random ones I start up, play with and tear down.
At that pricing I paid for my current ESXi box of $3,500 in 6 months just for those persistent vm’s.
Home Services and Automation
When you have a nice home lab and network setup at your house you can start to do some pretty cool things. From home security with products like Blue Iris when you can utilize far cheaper cameras and have the video stored in your own network, thus not having to pay Google, Amazon or Netgear $100+ a year but also create and managing scripts that run through IFTTT to control your heating, air conditioning, lighting and more.
You can provide DNS services that block ads and with Pi-Hole, run a firewall like pfSense, use it to serve a NAS for your house, serve Plex for all your devices to watch video on. and so much more. All of these services could require their own piece of equipment and the costs will add up for sure. Techno Tim has good video on uses for what he would recommend to put on a VM server.
You can be somewhat limited on what OS’s you can easily spin up on a Cloud environment. Some of them, for example Digital Ocean and the SMTP port, will block your ability to run certain software or communicate. Your own home lab would allow you to spin up whatever environment you want and start playing with complex scenarios; like creating your active directory network. These would be difficult or expensive to spin up and play with.
What I love about having a capable home lab is the ability to configure and dial in my network security how I like. For example I run Ubiquiti hardware and part of that is the Unifi Suite which allows me to manage, control and monitor my network equipment but also setup VLANs and other network level security features. I have VLANs exposed via WiFi SSID’s for Guests, IoT devices and Kids that allow me to increase the filtering and blocking on each of those networks. They also segment IoT devices away from my main network.
Combined with a good firewall software like pfSense, Sophos XG, Untagle, etc you can stop paying for a VPN subscription for when you travel and just VPN into your own home while your away.
I won’t beat around the bush with this one, it seems that every cloud provider out there just wants to mine your personal information for data they can sell to scummy marketing companies. In addition to large corporations just wanting our data so they can sell them they are also prone to security breaches that expose our data to a whole new subset of bad actors. Running your own home lab would allow you to stand up services like NextCloud and run your own Office 365\OneDrive or Google GSuite at your house.
Docker & Development
It’s handy and can be easy to just use docker locally on your dev machine, but the resources to spin up and manage those is taking it away from your IDE or toolset. Also if your system is used for more then just development, i.e. gaming, having Docker Desktop running and it’s services can degrade your gaming performance, it’ll cost you some FPS. This is where having a home lab shines as you can spin up Rancher and have your own Docker\Kubernetes environment host all your Docker images in a secure and easily manageable way while not having to manage them locally.
Practicing information security against a public cloud could get you in a ton of trouble, running port scan, test OSAWP Top 10’s etc. But in your own home lab you can isolate, spin up firewalls and craft your network infrastructure to create a completely air gapped network if you want to see how a virus or worm propagates. You can setup a vulnerable system and scan and attack it without getting in trouble from your ISP or a hosting provider.
It’s crazy the amount of things you can find and start doing when you have some capable hardware in your home to facilitate it. Additionally by hosting services yourself you can start to save money on cloud offerings and hosting providers and bring those in-house which means your home lab could eventually pay for itself over time.
If your a developer, building and maintaining a network and server also builds valuable skills about the hardware that houses the software we write. This knowledge allows us to better communicate with IT\Ops when there is a problem or getting new infrastructure setup. Never forget, the cloud is just someone else’s computer.
In future articles I’ll show you the hardware I’m getting to build a better Home Lab and where I’m getting it from. I’ll go over the software choices and what I learned from my original setup to guide this new Home Lab.
I’m the Founder of Resgrid an open source computer aided dispatch (CAD) solution for First Responders, Industrial and Business environments. If you or someone you know is part of a first responder organization like volunteer fire departments, career fire departments, EMS, search and rescue, CERT, public safety or disaster relief organizations check Resgrid out!