This article is part of a series.

  • Part 1: Homelab Hosting

Homelab Hosting

I’m starting this series about my homelab. It’s an easy thing to blog about and I really want to start getting more content out on this site. Finally, for purely selfish reasons this will work as a good journal of “why” I’ve done some of these things which I’ve used this blog for in the past.

Today we’re going to cover how I host the homelab and I went with the boring option: Proxmox. Proxmox is a hypervisor built on KVM and Debian Linux. It’s enterprise grade but free.

Why Proxmox

I tried lots of solutions to avoid actually using VMs like Fedora Server + Podman, NixOS, etc.

All in all I was never gonna escape running some VMs and Proxmox is the best most robust solution I could find in the price point of free. It’s not totally without issues but it’s well documented and supported. My only real source of frustration came from trying to use wifi so I could have my little NUC in my office with me instead of next to the router. But take my advice, just plug the darn server in to your switch / router.

It’s probably best to explain why not NixOS and Fedora Server.

Why not NixOS

Nix / NixOS are the new hotness on the Linux scene nowadays and I can understand why. The approach they’re taking is novel and solves real problems that people have. Myself included, in my day job I’m a preacher for immutable infrastructure but that’s hard to achieve outside of the cloud. NixOS makes it possible without the cloud which is a game changer for homelabs.

However the project is in a perpetual state of “unstable”. Pre-flake Nix never got the love it needed to have a good clear UX and beginner-friendly documentation. It was never helped by the fact some of the options were always hopelessly broken and they never fixed them (nix-env -i for example). That’s still true and they’ve released Nix 2.4 where the new CLI UX is not better (perhaps even worse in some ways) than the old nix-* commands. On top of that (even before Nix 2.4) flakes which were an experimental feature have basically become production but they are definitely half-baked (hence why the project calls them experimental). They’ve also unfortunately split the community.

IMO the biggest issue with Nix/OS is that it’s been around for 20 years and it has yet to really stabilise. It feels like it’s the first iteration of something and I’ll wait for whatever will implement those ideas better and replace it.

Why not Fedora Server

I do love Fedora but unfortunately Cockpit just isn’t as nice as proxmox and I’ll have to learn too much direct KVM to make it worth my time, while still ending up with something inferior to Proxmox.

DNS

So I’m using Proxmox to host Pihole because why wouldn’t you but I want DNS entries for the things I host on Proxmox. Pihole does have the ability to add custom entries which is fine but there isn’t an automated way to do it. Additionally since I want to use Let’s Encrypt instead of running an in-home custom certificate authority choosing an external DNS provider was the best option.

I went for AWS Route53 because it’s stupidly cheap and I already use AWS plenty in my professional life. Additionally certbot and Proxmox both have an out of the box integration for it. I found this really good guide on how to set it all up by in my boneheadedness didn’t bother to look for one until I wrote this blog so I’ve set it up in a far less efficient way.

What’s Next?

Next time I’ll talk about openSUSE MicroOS which I’m using as my VM OS of choice. In the mean time I’ll be figuring out how to do secrets in a sane self-hosted way, if you have suggestions hit me up on mastodon

Linux and FOSS Enthusiast. I do the Dev and the Ops and sometimes both at once.

Home