Almost a year ago I purchased a Beelink Mini S12 Pro (N100-based mini PC) from AliExpress. Initially I wanted to install only Home Assistant and looked for something simple and cheap. I never thought I would need something more powerful. How wrong I was.
Initially I planned to install HA OS, but then thought that installing it using a container and docker-compose would give me more room to test and debug. I knew that if something broke, it would be much easier to restore than using HA OS.
Also during this time I started working at Intel and my team lost our DevOps engineer to another team, so we were left without DevOps. My manager looked desperately for someone who could take this job, but the issue was that no one among the software developers left on the team had experience in this field. Honestly, I didn’t know anything either, and I didn’t like it. I always tried to avoid this kind of work. I even refused to submit my resume when Kubernetes knowledge was part of the requirements.
So, writing Ansible scripts, writing and debugging Helm charts, installing the observability stack, these were big challenges and no one raised their hand. My weakness is that I can’t say no at work. I love my work; when I work on some product I really want it to succeed. So when my manager came to me and asked me to fill this gap, I agreed. And one day I became DevOps.
It wasn’t easy. Prometheus didn’t like to work with mTLS, metrics didn’t come, pods were suddenly failing, installation scripts wanted to live their own life, but day by day I learned more and more. After a few months I suddenly understood that I was starting to feel comfortable with what I was doing. I was asking fewer and fewer questions from DevOps engineers on other teams (they rarely got back to me anyway). One day a DevOps engineer from another team even started asking my opinion.
All this happened shortly before I eventually had time to start installing Home Assistant. So when I finally got to it, I didn’t think twice; I installed k3s first and then installed Home Assistant. And then the rabbit hole opened its gates and I fell inside.
If you have Home Assistant you want to have easy access to it, so you need a local DNS server. A pod running AdGuard was added to the cluster. I didn’t like that the browser always complained about insecure connections, so I added HTTPS and cert-manager to retrieve Let’s Encrypt certificates. I wanted access from the public internet, so I added Cloudflare Tunnel. Then I discovered the *arr stack. Suddenly I didn’t need to download another cartoon manually, write it to a flash drive, and then move it to the media streamer; I just installed Jellyfin and it worked. One click and in 10 minutes my daughter can watch the cartoon.
Then the Monica HQ project was added to remind me of my friends’ birthdays. A “development” namespace was dedicated to running Kafka, Redis, PostgreSQL, MySQL, Harbor, MinIO, Keycloak, Jenkins, Vault, and Rathole so I can test everything locally. The observability stack too: Grafana, Loki, Tempo, VictoriaMetrics. I even installed Windows and Ubuntu using KubeVirt to test some binaries on x86 when needed, and it works flawlessly. Even Asterisk when I needed some advanced telephony.
Sometimes I open k9s and look in awe at how this little box can handle all this stuff 24/7. Over time I added 32GB RAM and a 2TB SSD. My cluster is overcommitted, but it keeps running and running. And honestly, it changed my life, made it easier.
So if you have the knowledge or want to learn something new and useful, you should definitely install a Kubernetes server at home. It will be fun, a pleasure, and one more plus on your resume that one day might help you get the dream job.
