<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>koper.dev</title><link>https://koper.dev/</link><description>Recent content on koper.dev</description><generator>Hugo</generator><language>en</language><lastBuildDate>Tue, 03 Nov 2026 20:00:00 +0100</lastBuildDate><atom:link href="https://koper.dev/index.xml" rel="self" type="application/rss+xml"/><item><title>My homelab in my pocket: PiDash is in TestFlight, and I need 50 testers</title><link>https://koper.dev/posts/pidash-homelab-in-your-pocket/</link><pubDate>Tue, 03 Nov 2026 20:00:00 +0100</pubDate><guid>https://koper.dev/posts/pidash-homelab-in-your-pocket/</guid><description>What started as an alert screen on a Raspberry Pi turned into PiDash: an iPhone app for my homelab&amp;rsquo;s alerts, incidents, Kubernetes, SSH and scheduled jobs. It&amp;rsquo;s in TestFlight now. Here&amp;rsquo;s why I built it, how, and how you can run it on your own lab. I&amp;rsquo;m looking for 50 beta testers.</description></item><item><title>Git knows the name, OpenBao knows the value</title><link>https://koper.dev/posts/openbao-secrets-kubernetes-ansible/</link><pubDate>Tue, 29 Sep 2026 09:00:00 +0200</pubDate><guid>https://koper.dev/posts/openbao-secrets-kubernetes-ansible/</guid><description>My Kubernetes Secrets were made by hand with kubectl, and my Ansible repo carried passwords in plain text. Over two days they all moved into OpenBao. Git now says which secrets exist; OpenBao holds the values, audits every read, and nothing restarted on the way. This is the long version: the design, the four plans, the migration waves, and everything that bit me.</description></item><item><title>Every request gets frisked: BunkerWeb in front of my homelab</title><link>https://koper.dev/posts/bunkerweb-waf-homelab/</link><pubDate>Sun, 27 Sep 2026 08:00:00 +0200</pubDate><guid>https://koper.dev/posts/bunkerweb-waf-homelab/</guid><description>Everything public in my homelab goes through one door: BunkerWeb, a reverse proxy with a web application firewall, running in Kubernetes. Here is how it&amp;rsquo;s set up, how a new site goes from detect to block, and the outages that taught me the rest.</description></item><item><title>Checkmk out, Prometheus in: a homelab monitoring migration in three slices</title><link>https://koper.dev/posts/checkmk-to-kube-prometheus-stack/</link><pubDate>Mon, 07 Sep 2026 16:30:00 +0200</pubDate><guid>https://koper.dev/posts/checkmk-to-kube-prometheus-stack/</guid><description>The Kubernetes cluster already ran kube-prometheus-stack. Two Checkmk VMs watched everything else. Over two days I moved hosts, websites and services into the one stack, in three slices, and then switched Checkmk off. Here is the plan, the tricks, and the list of things that went wrong.</description></item><item><title>Emby had no single sign-on, so I built the plugin</title><link>https://koper.dev/posts/emby-sso-plugin-for-authentik/</link><pubDate>Fri, 04 Sep 2026 16:00:00 +0200</pubDate><guid>https://koper.dev/posts/emby-sso-plugin-for-authentik/</guid><description>Every service in my homelab signs in through Authentik, except Emby, which only knows passwords. So I wrote a plugin that adds OpenID Connect to Emby: browser sign-in, a PIN for the TV, group gating, and a few surprises along the way.</description></item><item><title>The laptop is just a screen: a homelab you can work in from anywhere</title><link>https://koper.dev/posts/how-i-work-remotely-on-my-homelab/</link><pubDate>Thu, 03 Sep 2026 18:00:00 +0200</pubDate><guid>https://koper.dev/posts/how-i-work-remotely-on-my-homelab/</guid><description>My whole development setup lives in the homelab. All I carry is a laptop with Visual Studio Code and a password manager. Coder, Kasm, Authentik and a dotfiles repo do the rest, over plain HTTPS. Includes the steps to build the same thing.</description></item><item><title>How I set my homelab: five nodes, five jobs</title><link>https://koper.dev/posts/how-i-set-up-my-homelab/</link><pubDate>Thu, 03 Sep 2026 14:00:00 +0200</pubDate><guid>https://koper.dev/posts/how-i-set-up-my-homelab/</guid><description>My homelab is five Proxmox nodes. Two do the heavy lifting, one is the firewall, one runs the home automation and one is storage. Here is what each one is, what is inside, and how they are wired together.</description></item><item><title>How this site is built, and why a new post is just a git push</title><link>https://koper.dev/posts/how-koper-dev-is-built/</link><pubDate>Thu, 03 Sep 2026 10:00:00 +0200</pubDate><guid>https://koper.dev/posts/how-koper-dev-is-built/</guid><description>A tour of koper.dev: Hugo turns Markdown into HTML, GitLab CI wraps it in a container, and Argo CD puts it on my Kubernetes cluster. No servers to log in to, no admin panel, no database.</description></item><item><title>About</title><link>https://koper.dev/about/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://koper.dev/about/</guid><description>&lt;p&gt;I am a DevOps engineer based in Zeewolde, Flevoland. I work practically and&#10;carefully, according to rules and procedures, and I like it best when a&#10;process that used to be manual becomes a pipeline nobody has to think about.&#10;Colleagues describe me as patient, flexible and pleasant to work with.&lt;/p&gt;</description></item><item><title>Homelab</title><link>https://koper.dev/homelab/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://koper.dev/homelab/</guid><description>&lt;p&gt;The lab lives in two places: a rack at home and a rack in a datacenter. It is&#10;where I try things before they reach production anywhere else, and it runs&#10;this site.&lt;/p&gt;&#10;&lt;h2 id="hardware"&gt;Hardware&lt;/h2&gt;&#10;&lt;p&gt;Five Proxmox VE nodes, each with one job. The full story is in&#10;&lt;a href="https://koper.dev/posts/how-i-set-up-my-homelab/"&gt;How I set up Proxmox in my homelab&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Projects</title><link>https://koper.dev/projects/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://koper.dev/projects/</guid><description>&lt;p&gt;A selection of projects. Each card links to the repository or write-up.&lt;/p&gt;</description></item></channel></rss>