What is a homelab? A personal/home server that you use to learn more about networking. What can you do with a homelab? You can host anything you want! A long time ago I came to the realization that even as an engineer with a few years of experience, there was this foundational level of IT operations that I was clueless about. It's scary to think how many FAANG corpos probably don't know what FTP is lol. But it's just a home server.
Self hosting is also really fun and it's cool to have your own little datacenter. I loved running game servers for my friends. If you want to get started you can use ANY OLD HARDWARE. I found this video helpful.
Anyway this is where I'm going to keep a diary of what I do on my home server so please enjoy and be inspired to start your own. IF THERE'S ANYTHING YOU'D LIKE TO HEAR ABOUT IN PARTICULAR LET ME KNOW!!!
The Great Packening Era (and future plans...)
My homelab is currently offline because I am moving cross country. All of my cool 'puter toys are packed up in those yellow plastic totes you get at Costco and wrapped in my clothing lol. I really hope none of them break...
My goal after setting things up again will be converting everything to docker compose and GitOps. The previous setup got too messy and hard to manage with all the different vms and containers so I'd like to try what's actually done in production. We're going to be using only one virtual machine and keeping all services represented as docker compose files in a git repo. Then I'll use some tool (maybe still portainer idk) to poll the repo and redploy when changes are detected.
Everything will still have a persistent volume on the synology. I think this will be easier to maintain, visualize, and expand on since it'll just be code and I can write/deploy from anywhere. I might eventually migrate away from proxmox because I've been getting intereste din NixOS but since everything will be IAC with a remote persistent volume it doesn't even matter! This is like the whole point!
First Shitbox (Classical Era)
Hardware
I started my homelab by getting a dell precision T7610 workstation used off of ebay. It cost me about $300 and came with:
- 2x 8 Core Xeon Silver CPUs (around 3GHZ)
- 64 GB EEC DDR3
- 1TB NVME
- 950W PSU
- 2 empty hot swap bays with caddies
The CPUs are pretty old and it's only DDR3 but come on for the price this is INSANE and it's only being used to run virtual machines. No gaming or ML. I wanted an old workstation because It's really good value for cores and memory. More cores + more memory = more services running in parallel. Also the 950W PSU gave me a good deal of room to expand.
I also got two upgrades before I started installing the OS:
- Used GTX 1650 for plex
- 2x 8TB Seagate HDDs for storage
Hosting
I used proxmox for the OS since I'm a big fan of virtualization. I knew that since this was an educatoinal project i'd be fucking up A TON. Being able to take snapshots and start things over with 0 effort would be a necessity, and the web UI makes things really ezpz. If you don't know about proxmox it's a free type 1 hypervisor like ESXi. If you don't know what that means, it's just an operating system that hosts virtual operating systems, imagine if virtualbox was an OS rather than a software application.
There was a bit of a learning curve but eventually I got the hang of proxmox and by the end of the classical era my setup looked like:
-
Torrenting VM
- Qbittorrent web ui routing torrent traffic through a wireguard client for my commercial vpn
- Had this running and seeding 24/7 and torrents saved on the Truenas SMB share
-
Plex VM
- Just a plex server. I pay for plex (so nice they give you lifetime for 100 bucks) so I just use their remote access and then use the 1650 for hardware acclerated transcoding.
- Plex has access to the torrented files on the SMB share so I can watch chinese cartoons on my smart tv with the plex app
-
"Docker Box"
- Monster ubuntu vm that just runs portainer and hosts random docker containers
- NGINX reverse proxy for TLS across all my services
- Crafty Controller for hosting minecraft servers for my internet friends
- Homepage (a nice dashboard for monitoring all of your homelab's services)
- Some sketchy DDNS thing for namecheap lol, found it on github idk
-
Pihole LXC
- Just PiHole DNS. I had my router use this as the DNS server and fallback to 8.8.8.8 if something breaks
-
Truenas
- I used this to treat the 2 HDDS I threw in as a RAID1 SMB share. Good enough for my animeys and meme folder
-
Tailscale LXC
- I use tailscale in an LXC for remote access. Ain't nobody got time to leave ports open... except for minecraft idk
-
Keepass setup
- I self host my password manager because I've been schizo since I got pwned in the lastpass breach. I just have a keepass file I sync across all my devices with resilio. It's good software. This is just my "always online" node so I don't have to worry about sync conflicts. I also use this for obsidian
I also got the synology and it'll play a bigger part in my lab in the future, check the blog post if you wanna hear how i got it for free sort of. I was probably proudest of my torrenting setup because it got to the point where I just had to download a torrent file from a tracker to a monitored folder on the share and it would magically be available to me in plex on my smart TV.