Hey y'all, I wanted to share how you can experiment at home with relatively inexpensive computers
and solutions, while still being able to test the latest trends and releases.
This is an add-on to the network build I wrote
about earlier.
Not everyone has the money, space, or (fill in the blank) to own and run their own server at home.
Some people don't want to deal with the power draw or heat generated by servers. Personally, I don't
like the noise from all the fans.
Luckily, you don't need top-of-the-line hardware to learn and test things at home.
For a small homelab, the first thing you need is a strong computer. If you aren't going to buy a
prebuilt server for a specific purpose, you'll need to put one together that meets your needs. You
need something with enough cores, RAM, and disk space to run the number of virtual machines you're
planning for. I like the small form factor of ASUS NUCs—they're about the size of two sandwiches
stacked together and are super quiet. (Apologies for the technical description!) You can find deals
online, but I tend to buy from Amazon for these. It meets a lot of my specs with about 32 GB
RAM, 24 cores, and 1 TB disk space. The downside is that it's not cheap.
Knowing your system's minimum requirements is important when building a homelab, so you don't
overutilize your hardware and create bottlenecks. For Ubuntu, my OS of
choice due to size and use case, you can run a virtual server with as little as 2 cores,
2 GB of RAM, and 25 GB of disk.
For virtualization (running virtual machines on your NUC), I use ESXI.
Many of my peers also like ProxMox, I just
haven't made the leap yet. Both are free. You'll need to reimage the NUC with the ISO of your chosen
virtualization solution. Here is a video
on the installation that's relatively new. An ISO is a digital file that is an exact copy of an
entire optical disk, such as a CD, DVD, or Blu-ray.
Ok, so you have your own hypervisor now! Look at you go. If you chose ESXI, your host will look
something like my image above! Now let's get some virtual machines going. Depending on your use
case, this is where builds will start to be unique.
If you want a couple of physical machines that aren't VMs but can still run an OS like Ubuntu, I
recommend a small form factor computer like this.
I've purchased a couple of them and for around $100, they are a steal! Remember your OS's minimum
specs when deciding what's right for you.
Once you have your VMs and/or physical boxes running and online, you'll most likely want to enable
monitoring and metrics. There are quite a few different routes to take, but what I recommend is
Datadog. According to their website, "Datadog is a
SaaS-based monitoring and analytics platform for large-scale applications and
infrastructure." You might be thinking, "large-scale and SaaS-based? Is this overkill?" But
remember, you're building a homelab to train and test for real-world use...
For free, Datadog offers monitoring for up to 5 hosts and 24 hours of metric retention. Perfect for
a NUC running a few VMs and some external devices. I personally use it for one VM and three physical
hosts (my K8s cluster).
I chose Datadog over other solutions because of its many integrations, powerful alerting, and great error visualization.
You can use Datadog to monitor K8s clusters or Docker images running on your devices. You can monitor network usage and, in my case, NGINX pod metrics related to this blog page.
You can monitor integrations like Cloudflare to check the health of your tunnels or applications, and create custom dashboards based on your needs with Datadog.
So you may ask yourself, "Why? What are you doing? What's the plan?" Honestly... anything! What are you doing to learn? You can host, build, and test Docker images. You can run Python scripts and test your coding and automation skills. Learn Bash or just how to traverse a Linux file system. And if you don't like Ubuntu, you now have a device that can host other OSes. You can find an ISO online from a place you trust and spin up the installer on your hypervisor.
Check out some of the other things I have set up and the ways you can learn at home:
I served in the U.S. Army, specializing in Network Switching Systems and was attached to a Patriot Missile System Battalion. After my deployment and Honorable discharge, I went to college in Jacksonville, FL for Computer Science. I have two beautiful and very intelligent daughters. I have more than 20 years professional IT experience. This page is made to learn and have fun. If its messed up, let me know. Im still learning :)