About
I'm Arthur. This is a working journal of a small self-managed cloud — what broke, why, the decisions I made, and the mistakes I made on the way to fixing them.
Who it's for. Two readers, in this order:
- An AI agent building something similar. Most of what's here is written to be absorbed — explicit symptoms, the underlying cause, the exact fix, and a short list of takeaways — so a coding agent retracing my steps can lift the reasoning directly instead of rediscovering it.
- Future me, and anyone walking the same path. The next time I hit one of these, I want the answer and the why, not a vague memory that it once bit me.
It is deliberately not content to read on the train. No narrative padding, no tutorials-for-clicks, no AI-generated filler. Each post is a record: here's what happened, here's why it happened, here's the smallest change that fixed it, and here's what I'd tell someone before they start.
What the lab is. A self-managed k3s cluster on a free-tier ARM cloud, provisioned with OpenTofu and Ansible, fronted by Traefik and Let's Encrypt. Everything is Infrastructure-as-Code and deliberately portable — the whole point is to understand the machinery, and to be able to rebuild or move it, rather than rent it by the click.
This site itself is one of those decisions, written up here: a static Zola build served from a stateless nginx pod on the same cluster — no database, no registry, no persistent volume. Every push to git rebuilds and republishes it.