During the interview process, it is trivial to tell the difference between a candidate that reads about technology, and one that experiments with it. A HomeLab provides a proper learning environment for computer infrastructure and software and infrastructure. With over half a million members on the r/HomeLab reddit channel, it is impossible to deny the popularity of the hobby.
What is a Server?
A server is a computer that operates continuously (24 hours a day, 7 days a week) hosting one or more piece of software. Servers can operated different operating systems, such as Linux, Windows or FreeBSD. They can also use specialized operating systems for dedicated purposes, such as a Firewall/Router (OpenSense), Network Storage (TrueNAS) or Virtualization (Proxmox).
When used in production environment, they are oftenused to host data or applications. Data can be stored in a databases (MariaDB, PostgreSQL, Redis, etc.), in block storage (Minio) or even distributed file systems. As for applications, they can be deployed using a variety of platform, such as Kubernetes, Docker or even Nginx.
The variety of software available can be overwhelming at time. This highlights the benefits of a HomeLab, as a safe environment to test these things out.
How do I build a HomeLab?
A HomeLab is composed of one or more servers, and the network hardware required for them to communicate.
Servers come in different shares and sizes, depending on the needs. A simple and inexpensive solution to build a server is to use a Raspberry Pi, a single board computer with a network connection. Given their low costs, its not uncommon to see them grouped in a cluster. People looking for a little more power will often use Intel NUCs, as they are powerful while small and quiet. For those looking for the most processing power at a low cost, old retired enterprise hardware can be an interesting proposition. However, enterprise servers require more planning as they are power hungry, noisy and hot.
Networking for the HomeLab can be very simple, with all your servers plugged into the router/modem provided by your Internet Service Provider. A simple solution to add network ports is to add a small network switch. Those looking for a more prosumer solution should look into the Ubiquiti Unifi network switches. Retired enterprise switches are also an interesting option, as they have the most features at the cost of being power hungry, noisy and hot.
Working in the Cloud?
A HomeLab can also be hosted remotely, in a data center or in a cloud infrastructure. Those who need a single server should look into So You Start for inexpensive yet powerful servers. For solutions with multiple servers, a small scale cloud providers such as Digital Ocean offers an easy starting point in virtualized infrastructure.
The HomeLab channel on Reddit hosts a large community of people unity by their love of servers and networks. Their wiki page is a good starting point, with a large collections of guides and tutorials. Youtube also hosts a number of influencers with content related to HomeLabs, such as Level1Techs and Craft Computing.
The journey of owning a HomeLab is one of endless iterations. By the time you finish building your first lab, you will already be planning on your second one. Pace yourself, as it is easy to overspend on this hobby.