A homelab is a collection of computers, switches, routers and other devices that create a sandboxed environment for you to experiment with.
With a homelab you can self host apps you would normally need to pay for online for nothing but the cost of electricity and an internet connection...
Well, that and the countless hours spent debugging your personal setup...
And the late nights role playing as an amateur ISP that took down the family's internet with a quick typo...
Even though you told your partner this is just a hobby.
Oh the fun we shall have.
What can I do with a homelab?
Most people use their lab for:
- Hosting a DNS blocking service like PiHole or Adguard (powerful ad blocking that works on your phone too)
- Running a personal media server like Jellyfin or Plex (your own self hosted netflix for your own media)
- Running a personal VPN service like Wireguard to encrypt traffic or connect from outside your network
Not to mention all of the apps you can self host. See Awesome Self Hosted for inspiration.
What skills do I need to learn to run my own homelab?
This will give you a solid footing to actually run self-hosted apps on your homelab:
Networking
Know enough about networking that you understand how IP address assignment works within your home network.
Most self hosted setups will introduce you to CIDR IP notation which you should be able to read:
10.42.0.0/24 vs 10.42.0.0/18
You will also need to know about containers and how they network on your local network.
Firewalls will also be useful for exposing your services to the outside world and remaining secure.
Containers
These are lean virtual machines that run on your server. We use containers to make deploying self hosted software easier and more reliable.
Learn how Docker works, what containerd is and how to manage many containers on a single server (usually knowns as container orchestration).
Hardware
Review the different parts of a computer and what they are responsible for.
Do you know what a motherboard does? What about a PCI slot?
Depending on your build you will also need to know how to put together a computer from parts (something as easy as lego, but much higher stakes).
How can I build a homelab?
Chances are you already have one just waiting to be plugged in. In all honesty anything can be a server.
If you are running a couple small services like PiHole you can get started with nothing more than a Rasberry Pi. A tiny computer that works great as a home server.
Don't get distracted by decisions around your NAS (Network Attached Storage).
Unless money is no object its fine to combine your NAS and your server together in one machine.
The more involved your machine, the more you should stay away from a pre-built machine and build a tower based computer that you can upgrade whenever you want.
Stay away from a server rack or rack based components unless you can store the server somewhere you won't mind the noise. They can be really loud. Your 1 bedroom apartment won't cut it.
Building your own machine for homelabbing
I recommend starting out with ServerBuild's NAS Killer 4.0 guide which focuses on getting older generation parts which have enough power to run a server and can be picked up dirt cheap.
I would also read Hayden Jame's Home Lab Beginners guide – Hardware which deals with a rack setup but introduces each component a home server can be composed of.
Buying a pre-built homelab
I use my homelab for more than just hosting services. Its also a place I can practice networked deployments and learn things like Kubernetes.
But if you're more about just getting a home media server you can't go wrong getting a pre-built.
The downside of a pre-built server is they have less room for upgrading or extending the machine later.
Best of both worlds?
What I ended up doing was picking up a prebuilt server someone else had built themselves.
This was perfect as I had a fully working machine with the hardware I wanted, and the ability to expand it later on.
How I built my homelab
I started with determining the motherboards available locally to me.
I knew I wanted something built for servers specifically. Mostly for fun and a love of exotic hardware, but also because the lower power draw would save a bit on my power usage.
As an added benefit of using server motherboards you get a nice IPMI dashboard available through your local network. And security concerns aside, its nice to be able to boot in and see vitals from a local DNS address.
Older server motherboards were hard to source. Amazon, NewEgg and others didn't have old enterprise parts in stock. Or some were available for insane prices.
However, eBay and Facebook Marketplace was a goldmine for these older parts.
eBay is where you should go to source individual parts while Facebook Marketplace had a better selection of previously built machines going dirt cheap.
Craigslist had enough overlap with Facebook Marketplace that I didn't end up using it much. Contacting buyers via email was slow compared to the instant messaging on Facebook.
After a couple days of shopping I was searching for "Supermicro motherboards" on Facebook Marketplace and happened upon someone listing their old homeserver for a great price.
For $400 CAD (~$308 USD) I acquired a beautiful specimen:
- Supermicro X8DT3 Motherboard, Dual Lan/IPMI
- Dual Intel Xeon 2x L5640 @2.27Ghz c/w CPU cooling & fans
- 32Gb Ram
- 500Gb SSD Drive
- LSI 3Ware 9650SE-24M8 SATA RAID Controler c/w backup battery. (Control up to 24 Hard Drives + 5 HDD from the motherboard)
- Dell Intel X520-T2 10GbE Dual Port Server/Internet RJ45 Adapter.
- 850 Watts Power supply (Overkill without the hard drives)
- Cooling Fans
- Full Tower ATX Case with casters
- 3x 5 Hard Drives Racks c/w fan
This actually had everything I wanted. The only things I added since is a 3 TB HDD I picked up off Facebook Marketplace.