Sunday, September 20, 2026

Running Pi‑hole on k3s and how GenAI tried to make me run as root

I was wrestling with Pi‑hole on single node Kubernetes and hit the classic privileged‑port problem: DNS wants port 53, containers don’t. The first GenAI suggestions were blunt, run the container as root. After some challenging from my side, it pivoted to MetalLB which is a nice option in a multi node setup. After digging I discovered a much cleaner path: k3s’s built‑in load balancer (ServiceLB, formerly known as Klipper LoadBalancer). Configure Pi-hole to use port 5353 and map it to 53 at the ServiceLB, no root, no extra components, and it worked like a charm.

Monday, August 17, 2026

Resurrecting a Samsung Galaxy Tab E SM‑T560

During vacations, I spent a day bringing an old Samsung Galaxy Tab E (SM‑T560 / gtel3g) back to life. It started as a quick tweak and turned into a proper little surgery: replace the stock recovery, flash a custom LineageOS ROM to test, chase down a couple of quirks, and finally install an alternative Android, ViperOS, build focused on stability. This is what I did and the gotchas I hit.

Sunday, May 3, 2026

Upgrading asp.net 6 to 10

I recently upgraded one of my projects from .NET 6 to .NET 10, and while the process was smoother than expected, there were several important steps and breaking changes worth documenting. This post summarizes what I did.