super summer accountability

Sebastian BallSebastian Ball
4 min read

Summer has been great. Weather is nice, Kids were having fun. I feel refreshed.

While this sentence in itself would serve as a great blog article (and is definitely not generated by AI..), I opted to flesh out some thoughts I have had recently about my home-lab setup and tech that I have used.

At work, I am heavily exposed to AWS and Kubernetes. I love working with all those fantastic building blocks that knit so well into each other.

Enter the Homelab

Homelab requirements are different though. I don’t have a big budget, I don’t have much need for something like high availability.. I mean if n8n is offline, I don’t care too much. Also I don’t have clients or steak holders that I need to inform when there’s a security incident, pending update, downtime, bob logs in from Nicaragua.

Being the holder of the steak myself, I can keep the requirements small and USE ARCH LINUX.
No seriously, I have had arch installed on my off-laptop for so long that I just fell in love with it and wanted to test it out on my homelab-server.

Speaking of which, the specs for this homelab are rather small, we have 4 cores and 8GB of RAM, that’s it.
But it has already been sitting around, begging to be used for something more than browsing.

Back to the server setup, slap arch on it, slap yay on it, install docker, install k3s (more on that later). And install the list of applications that make any machine feel home.

zsh, entr, nvim, ripgrep, fd and the list goes on

I had the urge to k8sify everything. ArgoCD was rolled out and I yanked the traefik ingress away for an nginx ingress. I wanted to setup a gitea instance and sync all the apps from a repo until it just felt wrong … I removed k3s again. We could end it here and just hate on Kubernetes and the complexity.

Or we could use the high-ground and acknowledge that there are plenty of tools for different occasions. Creating a homelab using Kubernetes didn’t seem too fascinating for me at that point.

(Creating a homelab using NixOS is on another level but I haven’t had the time to read up on the changes)

Don’t get me wrong, I enjoy working with Kubernetes. Like my colleague Jörg said, Kubernetes is a toolbox. It's an enabler for infrastructure that has the most important boxes ticked, Observability, Scalability, Security, Network Policies, Smart packing. Of course we don’t want to neglect security ever. But I have more relaxed constraints on my homelab, especially with the things I am hosting here.

But I am the steakholder

I wanted to get actual budget to run. So I searched for a helm chart, then I searched for a pod specification. Then I wrote the specification myself. I wanted to have fun with my homelab and not fall into the dread of writing YAML. No offense, some people like writing YAML. Heck, with LLMs and source graph / grep.app it feels stupid easy to just start off with someone else’s work or example out in the open and flesh it out. But I was drained from 10h days in the sun and just wanted it to run on my home network. Also my copilot subscription expired and I did not have the time yet to look at the improvements of Claude Code that I keep reading from other people.

Anyways. I remembered one of the earlier gigs I ever had and we loved docker-compose to the moon there. Easy specification. It just works. So I looked up docker-compose files for all services I wanted to host and boom. Now I have authentik, a personal website (the one where I store all my obsidian clippings to), gitea (with actions (for reasons)), a marimo notebook to fool around and n8n is running smoothly on my arch-linux box.

As a little side-note, I have Caddy in front of all applications providing self signed certs.

Actualbudget moved off the list, since I am happy with my bogus instance running on fly.io and it’s merely a testing / honeymoon phase with actualbudget.

Moral of the story

Homelabs are for fun. Docker-compose is all the fun I need. Podman compose would be the next upgrade.
I love Kubernetes but don’t love it too much to pump out YAMLs.

Adjust to the use case, listen to the clients and stakeholders.

0
Subscribe to my newsletter

Read articles from Sebastian Ball directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Sebastian Ball
Sebastian Ball

Hej there, my name is Sebastian and I am a DevOps Engineer with seven years experience with deploying and maintaining complex infrastructures on AWS. I am excited to share and collaborate on AWS topics, talk about Developer Experience or just spread word about my favorite game (Deep Rock Galactic) Feel free to get in touch. :)