Posts
All the articles I've posted.

Recovering a Windows PC With No Password and No Product Key
A family member passed away and left a custom-built Windows PC with no known password and, being custom-built, almost certainly no OEM key sticker either. Here's how to check for a firmware-embedded key, identify the Windows edition offline, clear a forgotten local account password, and understand whether you'll need to buy a new licence at all.

OpenMediaVault 8 on a Mini PC
Setting up OpenMediaVault 8 on a small mini PC with Wi-Fi, a link-local Ethernet LAN and NFS. The installer forgot the Wi-Fi, the data SSD turned out to be dying, I wiped the wrong disk, and there's a netplan setting that holds up every boot for two minutes.

Homepage Dashboard
After Homarr kept failing on me, I moved my Servarr dashboard to Homepage instead. It takes more setting up than Homarr, since everything is config files rather than a UI, but it's been solid ever since.

AWS SSH using SSM
Updated:Access a closed-off AWS EC2 instance over SSH using SSM as a proxy, so no port ever needs to be exposed on the instance. Includes a real-world ssh config entry with a friendly host alias, an AWS profile, and a note on why StrictHostKeyChecking gets disabled.

How to Connect to GCP MySQL Using Cloud SQL Proxy
Connect to a GCP Cloud SQL for MySQL instance from Linux using the Cloud SQL Auth Proxy, IAM authentication and the MariaDB client, without passwords or a public IP on the database.

GCloud SSH Tunnelling
Close port 22 to the internet on GCP and still SSH in, using the Identity Aware Proxy to tunnel through instead of exposing SSH with firewall rules and public/private key pairs.

Github and Deploy Keys
Updated:Pull from several private GitHub repositories on one server by pointing git at a different SSH deploy key using GIT_SSH_COMMAND, core.sshCommand or an ssh config alias.

zsh antigen
Updated:Manage zsh the intelligent way. Install curl -L git.io/antigen > ~/antigen.zsh Configure ~/.zshrc source ~/antigen.zsh # Load the oh-my-zsh's library. anti

Debian's kitty-terminfo Package
A quick follow-up to my post on fixing Kitty's missing terminfo over SSH — turns out Debian already ships a kitty-terminfo package that handles the whole problem out of the box, no manual tic incantation required…

Nine Years of Cloudflare
I've been using Cloudflare for nine years now, and even brought it into work — the tunnelling alone is superb. Today I renewed my personal domain for another nine, and got a mild heart attack from a domain-suspension warning along the way…