Homelab Update 2022 2023 - Consolidation

HP Microserver Gen10

Posted on February 21, 2023

This blog has been fairly quiet over the past couple of years but I am hoping for a mini revival coming into 2023. This is was an attempt to squeeze a single post into 2022... but the last couple of months of 2022 flew by and here we are well into 2023. The arrival of my Steam Deck back in November could also be partly to blame for the delay.

I have previously written a couple of homelab updates and I find it nice to read back over these to see how things have changed over the time. For me it seems like my homelab goes in cycles of expansion and contraction. Sometimes I am adding loads of new and interesting projects/services while other times I am trying to remove any of the unnecessary stuff that seems to gather over time. 2022 was definitely a year of reduction and consolidation. One of the main reasons for this was the rising electricity costs here in Ireland - it felt wasteful having multiple machines running 24/7 when only a handful of services were being used regularly. The aim was to consolidate all of my required homelab services into one physical server. This would mean having to sacrifice some nice things that a Kubernetes cluster provides such as high availability and zero downtime during upgrades but really these are not that important at home - if I'm doing an upgrade I won't be watching something on Jellyfin for example.

I settled on a single node homelab environment using my HP Microserver Gen10 with services being deployed and orchestrated with podman and podman-compose. The microserver was probably my only real candidate as it was the only x86_64 box with a decent amount of room for storage that I had. The CPU is a bit lacking but reasonable when it comes to energy usage(Typical TDP 15W). It has a dual core AMD Opteron APU that has a clock speed of about 1.6 GHz. Not a beast of a CPU but it does the job. For the storage, there is two 2TB SSD drives with btrfs RAID 1 and a single 10TB spinning harddrive(hoping to add second soon for reduncancy). The SSDs are mainly used for application data and photos from my camera while the 10TB drive is used for archived photos and media.

HP MIcroserver Gen10

What are the services that I am running in 2023?

These services are all run using podman and are managed using a single podman-compose yaml file which keep things very simple. Comparing this list to the service list in my 2020 homelab update - it is much shorter but there are a few new ones in there. A lot of the services did not survive the consolidation. Gitlab was one of the first to go as it was very heavy to run and had far too many features for what I needed at home. Gitlab was swapped out for Gitea which has been working very well for me for the past year or so. It lacks builtin CI but CI for a single user git instance is probably not needed. Another couple of notable new joiners are Photoprism and Mastodon. Photoprism is a nice photo gallery that helped me organise all of my photos that had been sitting dormant on harddrives. It gives me a easier way of finding photos on my server and also allows me to backup photos from my phone directly to it using something like Photosync. Mastodon is a federated social media platform which grew a lot over the past few months. I had a Mastodon account on other instances before but I was intriqued to see what was involved in hosting my own - so far I think my toots are reaching other instances in the fediverse...

Grafana dashboard of CPU usage

There are a couple of snags with this setup. For one if I miss up an update to the podman-compose yaml or the traefik config I may lose access to my git instance which I would need to push the fix. The CPU in the microserver can become a bit of bottle neck whenever carrying out heavy tasks like photoprism's indexing of photos or transcoding media in Jellyin. It is no where near as powerful as the 8th gen Intel i5 I had running previously. I am also less likely to reboot this node as it has so many different things running on it which can lead to some updates not being applied for long periods of time - currently up 42 days and counting.

Obligatory neofetch screenshot

Overall though the setup works well for what I need and the podman-compose yaml has really simplified the management of these services. If you have any questions on my homelab you should be able to reach me on my Mastodon.