Self-hosted

My Self-Hosting Journey: Finding the Perfect Balance

My self-hosting journey has taken me through just about every type of setup you can imagine, all in search of the perfect mix of performance, reliability, low power usage and not having to spend every weekend fixing the bloody thing.

Here’s the quick version of how it all evolved.

Starting Out: The Single All-In-One Box

I began with a simple all-in-one Mini-ITX machine that ran everything — TrueNAS virtualised as my main storage, plus all my VMs and containers.

It worked, but with no backups and TrueNAS running inside the same host, even something as basic as restarting became painful.

Great when it was working. Slightly less great when I needed to touch literally anything underneath it.

Fixing Stability: Adding a Dedicated NAS

To make life easier, I bought a separate NAS.

This let me keep TrueNAS virtualised on the Proxmox side but use it only for backups, which meant:

  • Restarts became smooth
  • My main hard drives could idle down
  • Storage was no longer tied to a single VM

A huge improvement.

The MS01 Upgrade: Power and Performance

Next came the Minisforum MS01, paired with an Intel Arc A310 GPU.

This became my main Proxmox host, powering Plex hardware transcoding and all my VMs and CTs.

Performance was rock solid — but power usage was definitely on the high side.

Trying Redundancy: Kubernetes with RKE2 + Longhorn

I decided to experiment with Kubernetes, running an RKE2 cluster with Longhorn on three virtual machines.

It actually worked extremely well — redundancy, self-healing and great storage management.

But the catch?

My area has occasional network and power outages, and running a full cluster on three VMs used more power than made sense long-term.

To reduce power draw, I replaced the MS01 with three Minisforum N100P nodes.

Power consumption dropped massively… but performance also took a noticeable hit.

The Middle Ground: Docker Swarm + Ceph

After Kubernetes, I tried Docker Swarm.

It was a nice middle ground — lighter to manage, simple to deploy and enough redundancy for small workloads.

But it wasn’t as robust as Kubernetes. When things broke, they took more tinkering to fix.

During this phase I also tried Ceph, which actually worked really well, and I had backups pushing directly to my Proxmox Backup Server.

All of this was fun and taught me a shitload, but eventually I realised I was using a cluster to solve problems I didn’t really have.

Coming Full Circle: Back to a Smarter All-In-One

Eventually, I realised the simplest solution worked best for me.

I went back to an all-in-one Proxmox system, while keeping the NAS separate for main storage and backups.

I upgraded the RAM and swapped to a Micro-ATX motherboard so I had more expansion options. The host runs an efficient Intel T-series CPU with the Arc A310 still doing the heavy lifting for Plex transcoding.

Now the Proxmox box handles:

  • All my VMs
  • All my LXC containers
  • Docker workloads
  • Proxmox backups
  • Plex hardware transcoding
  • Pretty much everything I actually need

The separate TrueNAS box handles the bulk storage, while another TrueNAS instance is available for backups.

The big change in how I think about the homelab now is that power efficiency matters more to me than having a cool dashboard full of green cluster nodes.

Backups and heavier jobs can run during the day when solar is available, and I use Sablier to shut down Docker services that don’t need to sit there chewing power 24/7.

Today everything runs smoothly, I barely have to touch anything, and I generally only hear about it when something actually goes wrong — which is how I like infrastructure to behave.

I spent years adding redundancy and complexity, only to eventually discover that the perfect homelab for me was basically the original idea again… just without all the stupid bits 🙂

How I Access Everything

These days the access side is fairly consistent too.

  • Traefik handles reverse proxying.
  • Authentik handles authentication and SSO.
  • I log into Authentik using Google federated authentication, then Authentik signs me into the web apps behind it.
  • AdGuard Home handles DNS filtering and local DNS rewrites.
  • Tailscale gives me private remote access and Split DNS.
  • CrowdSec adds another layer of protection around exposed services.

The aim is basically: expose as little as possible publicly, keep the private stuff private, and avoid remembering seventeen passwords just because I wanted to check Home Assistant from the couch.

Some Popular Services I Host

This isn’t every container I’ve ever spun up — we’d be here all bloody day — but these are some of the main services that have stuck around or regularly appear in my setup:

Overseerr used to be on this list, but the project was archived in 2026 and superseded by Seerr, which merged the Overseerr/Jellyseerr projects.

Readarr has also been removed from my current list because the official project was retired and archived in 2025.

A huge list of other self-hosted projects can be found at selfh.st if you’re looking for new ways to turn spare RAM into another dashboard.

A Few Things I’ve Written Up

If you’re interested in some of the more questionable decisions behind all of this, I’ve written up a few of them:

Last updated: August 2026.