Blogg
Notater om utvikling, hjemmelab og teknologi

Two Checks Between an LLM and Your Warehouse
Letting a model write SQL against client data is easy to demo. Making sure one customer can never read another customer's rows takes two checks, and only one of them reads the query.

Put the Tenant Column in the First Migration
"Maybe more brands later" is the most expensive sentence in a spec. Adding the tenant key on day one costs a column. Adding it on day four hundred costs a lot more.

When Two Tools Disagree, Show Both Numbers
Analytics and Search Console never agree, and picking one quietly throws information away. How a marketing report stopped producing arguments.

A Staging Database That Rebuilds Itself From Production Every Night
Most backups get tested once, on the day you need them. Restoring production into staging every night means the restore path runs 365 times a year instead.

OpenTelemetry Into a Stack You Own
Observability vendors charge by the gigabyte. Running OpenTelemetry into a backend you own, the tag scheme to agree first, and the traps that lose data.

Your Server Logs Are the Only Place You Can See AI Crawlers
Analytics cannot see AI assistants fetching your site, because they run no JavaScript. What the server log shows, and what it genuinely cannot.

Getting Self-Hosted Mail to Actually Deliver
Self-hosted mail is unforgiving rather than impossible. Port 25, reverse DNS, SPF, DKIM and DMARC in the right order, and why you start at p=none.

Idempotency Is the Integration Feature You Actually Need
The integration bug that costs money is rarely a parsing error. It is the same operation running twice. Idempotency keys, retry budgets, and what to store.

Why I Reach for a Modular Monolith First
Microservices get chosen before anyone works out who is on call for them. Why I start with a modular monolith, and the cases where I do split.

From Docker Compose to Infrastructure as Code with OpenTofu
How I went from SSHing into servers and running docker-compose up to managing the whole homelab with OpenTofu, Infisical and a deploy pipeline.

Building a Self-Hosted Identity Layer with Authentik
How Authentik replaced a dozen separate logins with a single SSO layer across my entire homelab, and why forward auth through Traefik is the missing piece.

ZFS, Proxmox, and the Art of Not Losing Data
Lessons from rebuilding a ZFS pool after a drive scare, and how I structure storage across Proxmox VMs to balance performance, redundancy, and sanity.

Building an AI Agent Mesh in My Homelab
How I built Hrolbot, a multi-agent AI system running on a Proxmox VM, where Claude Code agents coordinate through an MCP mesh to write and review real code.

What Happens When You Give AI Agents Root Access to Your Homelab
I built an autonomous AI system that manages my homelab. It writes code, reviews PRs, monitors services, and sometimes tries to delete things it shouldn't.

Automating Media Management with the Arr Stack
A practical guide to running Sonarr, Radarr, and the surrounding ecosystem for automated media management, from quality profiles to monitoring.

Why I Self-Host Everything
On running your own infrastructure, owning your data, and why I would rather debug a Proxmox cluster at midnight than pay for more SaaS.