Welcome to a new blog series in which I share the process of building my own Kubernetes cluster at home. I want to share my experiences, from planning to realisation, with anyone who is facing similar challenges or is simply curious about the technology behind such projects.
- Introduction to my Kubernetes home cluster: Why and how?
- The structure of my Kubernetes home cluster: the choice of hardware
- Initialisation of my home Kubernetes cluster: k3s with Ansible
- GitOps with FluxCD for my home Kubernetes cluster
Why the switch to Kubernetes?
My technical adventure began with various services on my NAS system that were intended to make my home smarter and my life easier. From OpenHAB for home automation to paperless-ngx for document management, everything ran either directly on my NAS or as a Docker image. Although this solution worked initially, I soon realised that it was becoming increasingly complex and time-consuming to manage. In particular, the manual handling of DNS entries, port assignments and certificates became a real challenge.
Using standalone docker-compose
setups also meant that almost every application came with its own database and web server, further complicating maintenance. As a software developer with over five years of experience in various Kubernetes environments, I began to realise the potential benefits of such a system for my own home.
The advantages of Kubernetes
Kubernetes provides efficient, automated management of DNS records and certificates, which was exactly what I needed. By using Kubernetes services and Ingress operators, I can now make my services easily accessible from the outside without having to delve into the depths of manual configurations.
In this blog post, I would like to lay the foundation for the following series and explain the first steps and considerations behind the switch to a Kubernetes-based system.

OpenHAB, paperless-ngx and more
The decision to switch to Kubernetes was also driven by the variety and number of services I use at home. Here are some of the core systems:
- OpenHAB: A versatile tool for home automation that enables the control of various devices in the home.
- paperless-ngx: An efficient document management solution that makes the paperless office a real possibility.
- Web server and reverse proxy: To make my services securely and efficiently accessible from outside.
One step further: GitOps with FluxCD
To further simplify and improve the management of my Kubernetes cluster, I decided to implement GitOps through FluxCD. GitOps is a method that applies the software development practices that many developers already know and love (such as versioning, code reviews and CI/CD) to infrastructure and application deployment. With FluxCD, I can easily make changes to the configuration of my cluster and the applications running on it by committing changes to a Git repository. These changes are automatically applied by the cluster, which makes the whole process both more transparent and traceable.
Inspiration and resources
My decision to go with GitOps and specifically FluxCD was heavily inspired by reading various blogs and resources detailing the benefits and setup of Kubernetes at home. Of particular note are:
- Florian Heinle’s blog, which gives a deep insight into setting up and managing a k3s cluster.
- The Geek’s Cookbook, a comprehensive resource for anyone interested in learning about Kubernetes and home automation.
These resources not only provided me with the knowledge I needed, but also gave me the confidence that implementing Kubernetes and GitOps in a home network is not only possible, but extremely beneficial.

Conclusion and outlook for GitOps
Introducing GitOps to my Kubernetes cluster is a crucial step in maximising efficiency and simplifying administration. In future posts, I’ll go into more detail about the configuration and benefits of FluxCD, as well as how it affects day-to-day work with the cluster.
Stay tuned for the next part of this series, where we dive deeper into hardware selection and how it forms the basis of my Kubernetes cluster.