Skip to main content

Recently Updated Pages

Why run your own registry

Self-hosted Private Registry

The CI runner builds images; they have to live somewhere the cluster can pull them. You could pus...

Updated 3 months ago by Eslam Shapsough

Lessons on the registry

Self-hosted Private Registry

Self-hosting closes the supply chain. Everything the cluster runs was built and stored by you. I...

Updated 3 months ago by Eslam Shapsough

Garbage collection without races

Self-hosted Private Registry

Registries accumulate cruft. Delete an image tag and the underlying data blobs don't vanish — the...

Updated 3 months ago by Eslam Shapsough

Lessons on centralized logging

Centralized Logging with Loki

Ship logs from day one. Bake the agent into the VM template so every host reports from birth; re...

Updated 3 months ago by Eslam Shapsough

Promtail everywhere, and good labels

Centralized Logging with Loki

The agent (Promtail) runs on every host, and what it ships — and how it's labelled — is what make...

Updated 3 months ago by Eslam Shapsough

Loki, the store

Centralized Logging with Loki

Loki runs as a single binary on its own VM, storing log streams on local disk with a generous ret...

Updated 3 months ago by Eslam Shapsough

Why one place for every log

Centralized Logging with Loki

With more than a couple of machines, "SSH in and grep the log" stops scaling. You don't know whic...

Updated 3 months ago by Eslam Shapsough

Lessons on monitoring

Monitoring with InfluxDB & Grafana

Watch the foundation first. The Proxmox host's CPU/RAM/disk is the most important thing to graph...

Updated 3 months ago by Eslam Shapsough

Two pillars, one pane of glass

Monitoring with InfluxDB & Grafana

Grafana is doing double duty in this lab, and that's deliberate. It's the dashboard front-end for...

Updated 3 months ago by Eslam Shapsough

The pipeline

Monitoring with InfluxDB & Grafana

Metrics flow in one direction, from source to dashboard: Proxmox host --(built-in metric server)...

Updated 3 months ago by Eslam Shapsough

Why metrics

Monitoring with InfluxDB & Grafana

Logs tell you what happened; metrics tell you how things are trending. Is the host running out of...

Updated 3 months ago by Eslam Shapsough

Lessons on documenting the lab

Documenting with BookStack

Document for the reader you were. The most valuable pages explain the why and the mistakes, beca...

Updated 3 months ago by Eslam Shapsough

The fun part: these docs wrote themselves (via the API)

Documenting with BookStack

Here's the meta bit. BookStack has a full REST API, and every shelf, book, and page in this docum...

Updated 3 months ago by Eslam Shapsough

Shelves, books, pages

Documenting with BookStack

BookStack's content model is just three levels, and these docs use them deliberately: Shelf "Bu...

Updated 3 months ago by Eslam Shapsough

The stack behind it

Documenting with BookStack

BookStack is a PHP web application, so the box runs a fairly classic web stack: Docs-Server (10.1...

Updated 3 months ago by Eslam Shapsough

Why a wiki (and why this one)

Documenting with BookStack

A lab you can't explain is just a pile of running processes. Documentation is what turns it into ...

Updated 3 months ago by Eslam Shapsough

Lessons on the Git server

Self-hosted Git with Gitea

Owning the forge closes the loop. Code → CI → registry → cluster, all in one network you control...

Updated 3 months ago by Eslam Shapsough

The API: where automation hooks in

Self-hosted Git with Gitea

A forge earns its keep through its API. Gitea exposes a full REST API, authenticated with a token...

Updated 3 months ago by Eslam Shapsough

The server

Self-hosted Git with Gitea

Gitea here is a straightforward binary install: the gitea service listening on port 3000, a light...

Updated 3 months ago by Eslam Shapsough

Why self-host Git

Self-hosted Git with Gitea

Git is distributed, but teams still need a central place to push to, open pull requests, and trig...

Updated 3 months ago by Eslam Shapsough