Books
Module 8 — CI/CD
Automate build→test→deploy: CI/CD concepts, GitHub Actions on the lab runner, Bitbucket Pipelines and Jenkins at a glance, and ...
Module 9 — Infrastructure as Code
Define infrastructure in version-controlled files: Terraform (provisioning), Ansible (configuration), cloud-init (first-boot), ...
Monitoring with InfluxDB & Grafana
The metrics pipeline: host telemetry into a time-series database, visualised and alerted on through dashboards.
Networking & the API Gateway
Bare-metal LoadBalancer services with MetalLB, and Kong as the API gateway/ingress, including an admin surface secured behind a...
Planning & Capacity
How the cluster was sized: CPU/RAM/disk math, memory overcommit on a swapless host, ZFS ARC capping, and the live VM right-sizi...
PostgreSQL High Availability with Patroni, etcd & HAProxy
Build a 3-node PostgreSQL cluster with automatic failover using Patroni, etcd and HAProxy.
Principles & Lessons Learned
The reasoning newcomers rarely see written down: least-privilege credentials, TLS at the edge, bastion-only access, capacity tr...
Public VM Connectivity on Hetzner via PfSense
How to provide public IP connectivity to Proxmox VMs using PfSense as a gateway on Hetzner dedicated servers. Covers three meth...
Self-hosted Git with Gitea
Running your own Git forge: the server, repositories, and the API the rest of the platform automates against.
Self-hosted Private Registry
A private container registry with a web UI, authentication, and a weekly garbage-collection routine that uses a read-only maint...
Setting Up Proxmox VE on Hetzner Root Servers (on Debian 13)
A step-by-step guide to deploying a production-ready Proxmox VE 9.1 node on a Hetzner dedicated root server, starting from a cl...
Start Here — Program Overview
How the internship works, the 12-week syllabus and timeline, what's expected after each module, and how you'll be assessed. Rea...
The Lab, End-to-End
The 10,000-foot view: every moving part of the lab, how traffic flows from the edge to a pod, and where each service lives. Sta...
The SSH Bastion (Jump Host)
Why every internal box is reached through one hardened jump host, and how the ProxyJump pattern works in practice.
Ubuntu VM Baseline & Tuning
The common baseline every VM gets: swap, the I/O scheduler, periodic TRIM, TCP congestion control, and kernel housekeeping.