The needs of my homelab have changed over time as I’ve make mistakes, learned, and tried new things.
Current Setup
Currently I have:
- Cable Modem (ISP provided)
- Router
- Gigabit Switch
- Server+NAS
- 2x wireless APs
- PiKVM v4 + ezCOO KVM switch
Future Upgrades
- Server+NAS v2
Thoughts on Home Servers
I set up my first personal server as a freshman in college using scrapped parts from the college reuse mailing list. Over the next few years I set up a bunch of servers handling a variety of tasks - web hosting, VPN, home theater + DVR, music streaming, and distributed backups. I even installed Ubuntu on my PS3 and used that as a DVR client in my dorm room. During the winter I’d run SETI@home on the machines in my dorm room to keep the room nice and toasty against the miserable Massachusetts cold.
When I left school I left most of my servers behind. I couldn’t justify the costs of transporting all of the beige mid-towers and pizza boxes across the country loaded with tiny but heavy hard drives. After my first “real” paycheck, the famous jwz quote “Linux is only free if your time has no value” started to sink in and I slowly transitioned from daily driving Gentoo and doing everything myself (e.g. local NAS, local servers, manually configured VPSes) to daily driving MacOS for work, Windows for gaming, and relying on cloud services (streaming services, Dropbox, iCloud, Github Pages, etc.) instead.
All the while, the tech industry went all in on cloud providers and devops so the average backend engineer didn’t really need to know much about how to run a system, just how to containerize their code and chuck it up to the cloud.
But then:
- Dropbox wasn’t actually secure and was proactively de-duping files between accounts.
- Dropbox stopped supporting more than 3 devices.
- I went over the 5GB limit on iCloud.
- Crunchyroll went from free to not free.
- All of the paid streaming video and audio options got more expensive.
- Stadia and the 3ds eshop went offline, along with licenses to purchases made there.
I started feeling that trusting just the cloud wasn’t enough for me and that I may want to have my own secondary copies of certain backups. At the same time, I was extremely dissatisfied with the cost and availability of routers and home networking solutions on the market. Solving those two problems was the impetus for my homelab.
I also know the perpetual allure of tinkering with systems. So I set up a few rules for myself:
- Whatever I run at home is categorized as either essential or hobby.
- Treat essential services like cattle while hobby services could be pets.
- Trust but verify any cloud services I use.
So I started with three requirements:
- a router
- a NAS that can run routine backups
- a virtualization system where I can spin up hobby services without affecting the two previous essential services