What's in my HomeLab - January 2025
My HomeLab is my safe sandbox to play around with tech without consequences for breaking things.
My HomeLab is my safe sandbox to play around with tech without consequences for breaking things. I firmly believe it's the main reason I can run production systems safely. I can play around with completely reworking my tech stack without careful planning and considerations (which often bites me but hey).
I'm going to ramble about my HomeLab, what it currently looks like and things I'd like to change in future
Hardware
Power consumption is a major factor in what I choose to run in my lab, my power in the UK right now is 24p/kWh so no beefy servers, no fancy huge HDD arrays, no decomissioned servers. I run two different machines, the first of which is Oak.
Oak
Oak is a whitebox server which has been around since I first wanted to run some game servers for friends and got tired of paying for overprovisioned game hosts. It was initially pulled together from PC hardware I had lay about. A power saving Sandy Bridge chip wasn't the fastest thing but hey, it was better than nothing. The specs have grown over time and it currently looks like this
- Intel i5-8500, chosen as a cheap used upgrade when things started getting slow
- Dell H310 raid card used to passthrough drives to TrueNas
- 32GB of RAM because services love to eat it up
- 2x 2TB used intel datacentre SSDs
I'm quite happy with this box, it draws an average of 38w over the last month and hosts the main bulk of my services. I'd love to add in some HDDs to this as I move more away from cloud services but I'll need to rework the case solution.
Maple
There's been a recent influx of cheaper, lower power small form factor mini PCs which I love the idea of. I jumped on this pretty early with a N5105 box from Topton. This thing basically sips power which is what I've always envied from ARM SBCs and as a result of this, is also fanless. Over the last month it's averaged a power use of 12w. It comes with 4x 2.5Gb ports making it an ideal router although the rest of my homelab is only 1Gb for now.
Software
Let's get into the software. I'm a big fan of Proxmox and have been running it for years now. It makes managing, backing up and spinning up new virtual machines simple. By default, I run all of my services in VMs, seperaed by uses and blast radius. I have a few exceptions for that rules such as running a backup DNS server in a LXC container, some bastion hosts and anything I can't stomach eating up 500MB of ram of OS to run.
OPNsense
OPNsense is a fork of PFsense that I'm always happy to recommend to people looking for a solid router. I've experimented with VyOS in the past but I lacked enough knowledge to troubleshoot and decided OPNsense is perfect for the home. There's a range of features I make use of that save me from having more services running elsewhere, a great example of which is WireGuard. I have clients for all of my devices to access my homelab while I'm away and want to access my services. This is super useful as it means the only external access allowed in is my WireGuard and I don't have to keep track of multiple applications and ports.
Home Assistant
Home assistant is probably my favourite thing I run in my homelab. Home automation standards are a bit of a mess, especially from a privacy standpoint when you look at all the different apps and internet required services. Home assistant seeks to solve that with a centralised way to manage all of your smart home devices. Where possible, I avoid internet connected services and look for anything I can control local only, no internet required. I could write a lot about my choices for smart home devices but I think that deserves it's own post in time.
TrueNAS
TrueNAS is another piece of software that I couldn't live without in my HomeLab. It allows me to manage my networked storage in a nice pretty interface (that doesn't like you opening multiple tabs but hey...). One of the main plus points is that it makes encrypted backups really simple, I store all of my photos I take on my camera and phone to it so I want to make sure that data is safe.
I run a mirror of 2 2tb used enerprise Intel SSDs I acquired on ebay. I didn't think I'd need much space initially and I've now filled this a few times, with my pool currently sitting at 100% usage. I'm pretty sure this is really bad for ZFS but hey. I'll get round to fixing it when I find a good deal on drives.
Kubernetes
In some ways, Kubernetes has actually made my life easier in managing all of my homelab services. In others ways, I'm sure it hasn't like accidentally deleting my main database (a story for another post).
When I have a lot of different docker compose stacks, I usually struggle to keep them up to date, keep their publically valid certs rotated, keep their base OS up to date, handle authentication etc. This is where I feel like Kubernetes has made my life a lot simpler to manage my homelab services. I manage all of my services through GitOps via Flux. Put simply, all of my services are defined in Git via Code. This makes patching them super simple as I have Renovate set up to auto put in merge requests for minor and major version bumps.
The current version of my cluster runs on Talos which is intended to make managing clusters a lot simpler, following a more API driven approach to cluster managemnt on top of a very stripped down OS. This all sounds great! Less stuff I have to think about the better. In reality, it's taken me a long time to get things set up the way I want it. IPv6 support which is something non negotiable to me, took forever for me to figure out with lots of full cluster rebuilds, which to it's credit, does not take long. Calling back to my initial notes, I've noticed the idle CPU consumption has been a lot higher vs my previous cluster based on Flatcar and K3s.
Enough about how I run my cluster, let's get to the applications I actually use.
Immich is an amazing piece of self hosted software for managing photos and videos. Think Google photos but self hosted, including person detection and object detection. I use this to back up all of my phones photos as well as photos I take on my camera.
Authentik is my identity provider I use internally for accessing all of my services. Nothing is available without first going through auth and Authentik makes it simple, allowing me to use passkeys on my devices to sign into applications.
Coder is another piece of software that I've grown to love using day to day. Consistent development environments are something that's been a struggle for a while, I have a few different laptops, a desktop and a tablet that sosmetimes I want to write some code on. Coder let's me spin up a pod in my Kubernetes cluster (or VM if needed) and connect via a SSH, VSCode web instance or a range of integrations. It makes writing code for me about actually writing code and not figuing out what version of Go I have installed or how to set it up again.
Grafana & Prometheus are two pieces of software I end up with on basically all of my clusters. It makes monitoring and alerting on data pretty simple and more importantly pretty.
I push a lot of my data from my homelab into Prometheus such as my Home Assistant data, my OPNsense stats, my docker container stats and much more. I have a range of dashboards set up to look at data like power consumption, my smart thermostats and even my remote hosts networked back with Tailscale.
What I want to look to improve in 2025
First of all, I need to figure out how to do storage better. My ZFS pool sitting at 100% usage really isn't great and I know I have some data that needs backing up. I'm looking to get some larger capacity HDDs but I'm waiting for a good deal. I'd also like to figure out how to test my backups more often as a backup is only useful if you know how to use them.
I think I need to make myself a sandbox environment where breaking things is ok. I aim to self host more in 2025 as I move away from cloud services and bring more into my homelab. It's ok to break something I don't rely on but I use my home assistant and Immich installations daily and really don't want to deal with them being down. Maybe some sort of ephemeral Kubernetes cluster I can spin up and down to play with before breaking my other one.
IPv6 has been "coming soon" for a long time but I'm aiming to get move my home network to IPv6 only this year. I still have to figure out how to access things like GitHub which STILL only support IPv4 somehow. I'll probably write a blog about this when I get around to it but I think it'll require a lot of changing hardcoded internal IPs.
I'd like to share more thoughts about issues I've hit with setting up services or why I've gone for X over Y. I consume a lot of content on the internet but I rarely find the time to sit down and publish my own so this blog is the start of that.
Closing thoughts
I love my HomeLab. The range of free and high quality software that I can spin up and quickly have running is honestly amazing and something I take for granted often. A lot of my services I've spun up quickly out of curiosity and have now been running for years and are a key part of my daily workflow. Let's see how many times I accidentally delete my Immich database in 2025... (please be none)