home

My k3s Homeserver Setup

I’ve been getting more into self-hosted apps, with the main aim of trying to reduce my dependence on the Google ecosystem, and also to hone some of my DevOps skills. Over the past few months, I’ve setup a physical Kubernetes (k3s) cluster with regular consumer hardware that I’ve either bought or “borrowed” from friends and family. This post gives a broad overview of the setup and its components.

The configuration consists of three nodes, where one is a master node (with no pods running), and two worker nodes. Each node is an entirely different kind of machine, but they’re all old/used:

Each node is connected to a 1GbE network switch, which is then directly connected to my router. I didn’t feel like I needed a 10GbE switch because my ISP provided router only does 1GbE (that too, shared between its 4 ports), and also it is more expensive.

There are a decent amount of power cuts where I live, and as a result, the entire setup is connected to a 660W UPS. It’s just a regular UPS, which does not have any smart network-enabled features, like some do. These tend to be significantly more expensive where I live, almost as much as my entire setup itself. I plan to add a smart feature in the future, by implementing a logic where I send something like MQTT packets over the local network to an ESP32 MQTT broker, connected directly to the plug without backup. Once the power goes off, this will break the MQTT connection, which will trigger a safe shutdown script after a set interval. I have also decided to use a laptop as the master node, as it will have some backup power via the battery, should the power ever go down for an extended period of time, eventhough it is quite underpowered. However, I do not think k3s will be a significant load on my laptop.

All nodes are running Debian 12. I have never had any problems with Debian in my past 5 years of using it in the server and desktop.

I use Tailscale to access my self-hosted apps. All my devices are connected to the same Tailnet, so I can access my apps from anywhere, without making them publicly accessible.

Currently, I am running:

Things that I would like to to self-host soon:

Things that I would like to figure out about my setup:

Some maybes:



Grafana Monitoring Dashboard

A screenshot of a Grafana dashboard, showing various gauges and graphs meant for monitoring the entire k3s cluster

The Setup

A front-facing image showing the cluster, with the mini PC, Cabinet and laptop huddled together. The mini PC sits on top of the cabinet, and the laptop rests to its side. There are googly eyes stuck onto the cabinet PC.

© 2025 Bharat Nair  •  Theme Moonwalk