Maintaining My Homelab

I’m a techie, I like to tinker with hardware and software, which is probably a big part of why homelabbing is fun to me. However, the changes and iterations over the past few years have slowed down. After jumping between configurations and software for roughly the first year of properly homelabbing, my hardware has remained the same for a few years now. And while the software evolves, it too has mostly remained the same. My homelab has reached a stage where it is both stable and reliable.

A stable homelab’s a perfect homelab, its reliability allows me to depend on it without a second thought. I can securely store my data under my own roof without mining, analytics or other prying eyes. And even though it’s under my own roof, I can still securely access it away from home. Should something happen to my server or home, I can take comfort in knowing my most important data is remotely backed up.

The Updates

That’s not to say there have not been updates and tweaks, but those have all been in software. And even then, I would describe them as maintenance.

Systems

One of the great parts of Unraid is the (mostly) effortless management of updates. Once or twice a week I log in, check for app updates and apply them, with a few clicks. There has of course been a major release in Unraid 7, although I am holding off upgrading until a few patches are released to iron out the kinks.

As for the other hardware in my homelab, I occasionally SSH into my two Pis and run a sudo apt update && sudo apt upgrade along with a docker pull, down and up to keep my containers up to date. Then there is the Unifi gear which auto updates once a week without an issue.

There has been one update which required a little more attention than expected and that is PiHole V6.

PiHole

While the actual PiHole update itself wasn’t too bad - a couple of changes to the environment variables used in my docker compose file and supporting applications required more attention.

Firstly, I use the PiHole Remote app on iOS. This is a handy app with many features, but I almost exclusively use it to quickly pause and resume PiHole from the apps’ widget. I was in the middle of my work day and needed to access an analytics platform which I typically block. It was at this point I discovered the app had auto updated for PiHole V6 and no longer supported previous versions, this was also the moment I found out PiHole V6 was a thing and was released only days before. I was frustrated.

Additionally, I used to run 2 instances of PiHole - one on my Unraid server, another on a Raspberry Pi. The benefit is if one instance is down (say updating or otherwise), I have a second to fallback on in my routers DNS settings, so I don’t lose internet access. I used a pair of containers, a sender and a receiver to keep the instances in sync - think DNS records, block lists etc. However, these containers were no longer being actively maintained and the alternatives are still working on the changes required to support V6. So right now I am down an instance.

Privacy / Proxy Frontends

Frontends like Nitter for X (twitter) and Invidious for YouTube used to be fantastic for preserving a degree of privacy, avoiding ads, and feeds of algorithmic suggestions. Unfortunately over the course of 2024 these platforms tightened up their APIs and loopholes used by these alternatives. While the odd instance such as xcancel.com for Nitter still works, self-hosting is pretty much off the table. Likewise for Invidious or even Piped, videos generally will not load anymore.

I do however still use Redlib (a fork of Libreddit) for Reddit with success. While I wish it had more features, perhaps accounts for subreddits and likes, it serves its purpose for quickly checking in on a few communities.

Plex & Emby

I’m a long time user of Plex, I purchased a lifetime Plex Pass licence years ago and until fairly recently loved it. Although it has a few quirks and bugs, it has generally been rock solid. But Plex is changing, their business model and focus is shifting. They introduced questionable “social” features no one asked for, began pushing more of their own licensed content, introduced a rental service, and are now rolling out an objectively flawed redesign.

It’s clear self-hosted libraries and media management are becoming a second thought for Plex. I’ve played with Emby a little in the past, but ultimately kept returning to Plex for one reason or another. Now with the redesign Plex is dropping one of the few features keeping me - watch together. Until recently my partner and I lived about 4 hours from one another, so Watch Together became a frequent way for us to hang out over FaceTime and enjoy our favourite shows and films together. And while my recent move means I’m much closer, it’s still a 45 minute(+) drive along with a hunt to find a parking spot, we still use watch together.

Right now I have both Plex and Emby running on my homelab, once the Watch Together feature is sunset from the Plex clients, so will Plex in my homelab.

Emby for the most part does the job, but lacks some features and has its share of bugs. For instance the Live TV integration isn’t as reliable, lacks ad detection for skipping on playback and selects the audio description track by default. When I try to change the audio track and disable the teletext subtitles that are also shown, the app crashes.

Library matching also seems less reliable, with frequent misidentifications. And for whatever reason it generally seems to have hard time playing back some files, frames freezing and audio slipping out of sync. Falling back to Infuse being my current workaround for the latter.

I know Jellyfin is all the hype in recent years, originally forked from Emby, and while I’ve not tried it recently, for me, it’s not fully baked and has a long way to go before I would consider it a suitable replacement for Plex or Emby, controversial I know.

Nextcloud

I have also removed my Nextcloud Office setup, which allowed for creating and editing documents in the browser, like Google Docs. Nextcloud has a bit of a reputation for being a somewhat slow and heavy, additionally accessing and editing documents in a Firefox (Geko) based browser was laggy and franky unusable. While it is faster in other browsers, it’s still buggy.

Given I rarely use the Nextcloud web interface now, almost solely using it to sync files between computers, I’m considering replacing it with SyncThing.

On The Horizon

Now that I have finished moaning about changes and updates to the software I use, I’m going to further contradict this post with some planned updates to my homelab.

Docker Security

It’s all too easy to fire up containers, either using “app store” like interfaces such as “Apps” in Unraid, or by quickly adding a docker compose file. These however generally don’t take into account proper security practices for containers.

There’s plenty of resources available on this topic, one I use in my job and is widely recognised is OWASP, in particular their Docker Security Cheat Sheet. For the most part, it comes down to tightening the permissions and resources made available to a container, helping to prevent it possibly doing something it shouldn’t.

Unraid 7

As mentioned earlier in this post, I’ve refrained from upgrading to Unraid 7 until a few patches have been released. It comes with some exciting new features and I want to take the time to properly read the release notes and upgrade guide for a smooth transition. Remember, stability, Unraid after all is at the heart of my homelab.

Home Assistant

I’m not too deep in the world of smart homes, and frankly I don’t want to be. But I do use IKEAs smart bulb offering in my home. Their hub integrates with Apples Homekit for easy control and automation, coupled with the IKEA remotes dotted about. However, I have not found a simple way to update Homekit when I make changes via the IKEA hub. Additionally, my “scenes” are created and managed in Homekit, meaning I am locked into using an Apple device to use these.

I think this is where Home Assistant can help out. It offers more flexibility should I add more devices in the future, works across various platforms, and allows for more fine-tuned automations.

While I’ve already installed it, I need to take the time to properly sit down and understand how it works. I might even see if I can integrate some Grafana / Prometheus data into it.

Wrapping Up

A homelab is a living thing, it evolves and changes over time, adapting to your needs. And while you will run into issues along the way, it can be stable and reliable once dialed in and properly maintained.

Homelabbing, this is the way.