Homelab
Like many other people who work in tech, I run a homelab for experimenting and learning. My needs tend to skew towards the developer / tech survivalist end of the scale though, unlike a lot of what you see on the legendary Homelab subreddit which seems to lean heavily toward recreating full enterprise overkill at home. But I think all homelabbers have one thing in common - we all love to give people The Tour.
Philosophy
Hardware is fun, I'm not going to deny it. But I also place stock in a few other things. I like to re-use old hardware as much as I can, to get as much value out out of it as possible, and to scale up based on necessity instead of for bragging rights. Technology for me should be about learning, empowerment and self-improvement, not consumerism.
I also strive to keep my energy footprint as low as possible. This means that I shut things off when I'm not using them, and the things that do stay on are selected for low power draw. I was able to get a Threadripper 2990x system on extended loan from work for my homelab, but I oped to go with a much smaller system because I cannot justify the Threadripper's idle power draw at home, and it will be spending a lot of time idling.
Hardware
Server
I'm running an AMD Ryzen 5 1600 on an Asus B350m-a motherboard with 16 megs of DDR4 3200 RAM. The main disk is a WD Black 250 meg NVME M2. It's a modest system, but does exactly what I need. I happened to have the mobo, RAM and SSD lying around from an earier, half-assed attempt at building a dedicated Linux machine at home. The CPU was until now in my main gaming/home PC, which got an upgrade to a 3900X, and you have to love AMD for how they've stayed true to their word on sticking with AM4.
Until now I've always had only one real home PC, and that has been Windows. I use my PC to code, game and create, and the latter two are still firmly entrenched in Windows. I've been trying to get into Linux since the mid 90s, but always found it frustrating, partially because of the OS itself, but also because I've never had a proper PC to run it on. I would cobble together sad, sluggish systms from leftover junk after upgrading my main, but this also meant that I was unadventently compounding the bad experience with bad hardware. Now that the bulk of my coding happens on Linux, I finally had the incentive to build a proper system for it.
Back to the system … it's packed inside of an NZXT H510, and the remaining hardware is mostly leftover stuff from older systems, or unused things borrowed from work. The main GPU is an MSI Geforce 1060 from the office, the secondary a Geforce 720 PCIEx1, and there's also an offline ancient Radeon 6970 kindly donated by a colleague. There are two Kingston 480 meg SSDs, and a slow 2TB Toshiba 2.5" shucked out of a portal USB3 drive enclosure. The Kingstons are for VMs, and Toshiba for storing backups, ISOs etc. Once upon a time there was also an array of 4 x 2TB Seagate mechanical disks in this box, which coincidentally was my first ever ZFS RAID array, but I removed those as I wanted to keep my power draw low, and I don't need the redundancy just yet.
The server is running Proxmox 6.2, this is my first time running both Proxmox and a hypervisor server.
So far most of my guests are Ubuntu 20.04 server edition :
- a dedicated Rancher2 (Kubernetes) host
- a dedicated Docker host - some containers are managed by Rancher, others mounted with docker-compose. Some of the containers I'm running are
- Perforce
- Jenkins
- a bunch of containerizedd game servers
- a CUDA sandbox
Windows guests are :
- A dedicated "gaming" VM with GPU passthrough (which warrants its own post).
- A Windows 10 server for learning boring but necessary grown-up stuff like Active Directory.
The Proxmox server is not powerd up 24/7, but only when I want to work on specific projects.
Raspberry PI
I love Raspberry PIs - the form factor, the low power footprint, and the culture around it. It was a no-brainer to toss a 4gig Raspberry Pi 4 at an always-up home server role. This one is currently runs my home media / backup server on 4 USB3 disks via a SMB share. It also runs Pihole in Docker. You can read more about how I set the base server up here. Pihole is mostly there as a DNS for my home network so I can access services via handy names, but the ad blocking doesn't hurt either.
Router
We rock an Asus RT-AC68U, I haven't delved too deeply into the functions of this unit but it covers us for Wi-fi, exposing ports via Asus' *.asuscomm.com
domain, and I'm pretty sure other things - networking doesn't particularly interest me.
Additionally we have a dedicated 8 port D-Link switch on our router because between my wife and I have quite a few PCs between us and we prefer ethernet instead of wi-fi.
Internet Provider
We're served by Fiberby.dk, I think we have 500mb up and down, or thereabouts, honestly I really don't care about this, it's fast, we're covered for what we need and they're up 99.9% of the time. As long as I have fast internet I can focus on the stuff that matters to me.
Image credit : https://unsplash.com/@freeche : https://unsplash.com/photos/oZPwn40zCK4