Private
-

MailCow — 3,000+ Mailboxes with a Laravel + Angular Control Plane
I run and manage a MailCow mail server carrying 3,000+ mailboxes, backed by a custom Laravel application with an Angular UI that manages users and configuration through the MailCow API. This post covers the platform and the mail knowledge behind it. The mail platform MailCow is the engine — a Docker-based mail suite (Postfix, Dovecot,…
-

LXC/LXD Homelab — 15+ Containers on a Private Tailscale Network
My homelab runs on LXC/LXD — a self-managed Ubuntu host running 15+ system containers, connected to my cloud VPS over a private Tailscale network. This post is about the architecture and the knowledge behind it. Why LXC/LXD LXC is OS-level containerisation: containers share the host kernel, so they boot in seconds with a fraction of…
-

Webmin & Fail2Ban — Ubuntu Server Management
Webmin is the management layer of my Ubuntu servers, and Fail2Ban is the first line of their defence. This post covers what that stack is and the knowledge behind it — not a tutorial, just how I think about server administration and hardening. Webmin — full OS administration in one UI Webmin administers an entire…
-

Private NPM Registry
A self-hosted NPM registry (Verdaccio) for my private packages — scoped, proxied, and shared by all my projects. This post covers the platform and the knowledge behind it. Why a private NPM registry Internal libraries and shared code belong on a private registry: they stay out of the public npm registry entirely, they’re available to…
-

Private Docker Registry
A self-hosted container registry for private Docker images — on my own infrastructure (Docker Registry v2 with Nginx + SSL), wired into my CI/CD pipeline. This post covers the platform and the knowledge behind it. Why a private registry Not every image belongs on a public registry. Internal builds, client-specific images and in-progress work stay…