Homelab
Already know the basics? Build your own small data centre at home and practise everything on real hardware, with no cloud bills.
Coming soon
The series
Work through these in order. Each step builds on the last.
1Your lab
-
Plan your hardware
An old PC or a second-hand mini PC is enough to start. Aim for plenty of RAM and an SSD, and keep power use in mind.
-
Install Proxmox
Turn your machine into a hypervisor, then create your first virtual machines from the web interface.
-
Home network setup
Static IPs, DNS names and a simple layout, so your VMs are easy to find and reach.
2Automate
-
Create VMs with Terraform
Define your Proxmox VMs as code, so you can rebuild your lab in minutes.
Terraform Proxmox provider (bpg/proxmox) Go deeper: Terraform path →
-
Configure them with Ansible
Install packages, users and services on every VM with one playbook instead of by hand.
-
Self-host Git and CI/CD
Run your own GitLab with runners, so every project in your lab has a pipeline.
3Containers
-
Run a Kubernetes cluster
Run a lightweight Kubernetes cluster with k3s and deploy a real three-tier app to it.
Project 02: Deploy a three-tier app on Kubernetes k3s Kubernetes Basics tutorial Go deeper: Kubernetes path →
-
Deploy automatically from CI
Ship your app to the cluster on every merge to main, using your own GitLab.
Project 03: Ship a web app to Kubernetes with GitLab CI Helm docs
4Operate
-
Observability with Prometheus and Grafana
Collect metrics from every machine, build dashboards and get alerts when something needs attention.
Projects
- Project 02
Deploy a three-tier app on Kubernetes
Run a frontend, an API and a database on Kubernetes, connect them with Services, and expose the app through an Ingress.
- Project 03
Ship a web app to Kubernetes with GitLab CI
Take a small web app from a Git repo to a live Kubernetes deployment that updates itself on every merge.
Resources
Free
- Linux Journey
Short, friendly lessons on the Linux command line, made for beginners.
- The Linux Command Line (book)
A free, complete book on the terminal. Dip into chapters as you need them.
- Learn Git Branching
Interactive, visual Git practice in the browser. The best way to understand branches.
- Pro Git (book)
The free official Git book. Read chapters 2 and 3 first.
- Terraform Proxmox provider (bpg/proxmox)
The community Terraform provider for creating Proxmox VMs from code.
- Ansible: Getting started
The official introduction: inventories, playbooks and your first automation.
- GitLab CI/CD quick start
Official guide to your first pipeline.
- Install GitLab (self-managed)
Official install guides for running your own GitLab on a Linux VM.
- Proxmox VE documentation
The official admin guide. Start with installation and creating your first VM.
- Docker: Get started
Official introduction to images and containers.
- k3s
Lightweight Kubernetes that runs happily on a small VM.
- Kubernetes Basics tutorial
The official interactive walkthrough of the core objects.
- Helm docs
Official Helm documentation. Start with the Quickstart Guide.
- Prometheus: Overview
What Prometheus is, how it collects metrics, and where it fits.
- Grafana documentation
Official docs for building dashboards and alerts on top of Prometheus.