Recently Updated Pages
Why run your own registry
The CI runner builds images; they have to live somewhere the cluster can pull them. You could pus...
Lessons on the registry
Self-hosting closes the supply chain. Everything the cluster runs was built and stored by you. I...
Garbage collection without races
Registries accumulate cruft. Delete an image tag and the underlying data blobs don't vanish — the...
Lessons on centralized logging
Ship logs from day one. Bake the agent into the VM template so every host reports from birth; re...
Promtail everywhere, and good labels
The agent (Promtail) runs on every host, and what it ships — and how it's labelled — is what make...
Loki, the store
Loki runs as a single binary on its own VM, storing log streams on local disk with a generous ret...
Why one place for every log
With more than a couple of machines, "SSH in and grep the log" stops scaling. You don't know whic...
Lessons on monitoring
Watch the foundation first. The Proxmox host's CPU/RAM/disk is the most important thing to graph...
Two pillars, one pane of glass
Grafana is doing double duty in this lab, and that's deliberate. It's the dashboard front-end for...
The pipeline
Metrics flow in one direction, from source to dashboard: Proxmox host --(built-in metric server)...
Why metrics
Logs tell you what happened; metrics tell you how things are trending. Is the host running out of...
Lessons on documenting the lab
Document for the reader you were. The most valuable pages explain the why and the mistakes, beca...
The fun part: these docs wrote themselves (via the API)
Here's the meta bit. BookStack has a full REST API, and every shelf, book, and page in this docum...
Shelves, books, pages
BookStack's content model is just three levels, and these docs use them deliberately: Shelf "Bu...
The stack behind it
BookStack is a PHP web application, so the box runs a fairly classic web stack: Docs-Server (10.1...
Why a wiki (and why this one)
A lab you can't explain is just a pile of running processes. Documentation is what turns it into ...
Lessons on the Git server
Owning the forge closes the loop. Code → CI → registry → cluster, all in one network you control...
The API: where automation hooks in
A forge earns its keep through its API. Gitea exposes a full REST API, authenticated with a token...
The server
Gitea here is a straightforward binary install: the gitea service listening on port 3000, a light...
Why self-host Git
Git is distributed, but teams still need a central place to push to, open pull requests, and trig...