This series is also available in French.
Lire en Français
Series7 chapters62 min total

Building a Self-hosted Home Server with Raspberry Pi 5

Building a Self-hosted Home Server with Raspberry Pi 5

Series Roadmap

Welcome to the Building a Self-hosted Home Server with Raspberry Pi 5 series. Over the coming chapters, I will walk through the full journey of turning a Raspberry Pi 5 into a home server running a real Kubernetes cluster with CI/CD, monitoring, and TLS — the same setup that hosts this very website.

This is a living series. New chapters will be published incrementally as the setup evolves. Each chapter is self-contained but builds on the previous ones, so feel free to jump to whichever section interests you most.

Let's get started — the chapter list below is the recommended reading order.

In this series

  1. Chapter 1

    How to set up a Raspberry Pi 5 with a PoE HAT and an NVMe SSD

    Learn how to build a compact, power-efficient homelab server using a Raspberry Pi 5. This guide covers hardware selection, assembling a PoE HAT with an NVMe SSD, and initial boot configuration.

    5 min read
  2. Chapter 2

    How to move the Raspberry Pi 5 OS to an NVMe SSD

    Learn how to manually migrate your Raspberry Pi 5 operating system from a USB stick or SD card to a faster NVMe SSD. This step-by-step guide covers partitioning, copying files, updating boot configurations, and avoiding common pitfalls.

    6 min read
  3. Chapter 3

    How to install and configure Pi-Hole on a Raspberry Pi 5

    Learn how to set up Pi-Hole on a Raspberry Pi 5 to act as a network-wide ad blocker. This guide covers configuring a static IP, installing Pi-Hole, and routing local domains.

    6 min read
  4. Chapter 4

    How to install Kubernetes K3s on a Raspberry Pi 5

    Learn how to install and configure K3s, a lightweight Kubernetes distribution, on a Raspberry Pi 5. This guide covers enabling cgroups, setting up the cluster, and configuring remote access with kubectl.

    9 min read
  5. Chapter 5

    How to deploy a simple application to Kubernetes

    Learn how to deploy a basic HTML application to your local Kubernetes cluster. This guide covers building a Docker image, pushing to GitHub Container Registry, and writing essential YAML configurations.

    6 min read
  6. Chapter 6

    How to expose a home Kubernetes cluster to the internet with DDNS and HTTPS

    Learn how to expose your home Kubernetes cluster to the public internet. This guide covers setting up Dynamic DNS, router port forwarding, and automatic HTTPS with cert-manager.

    14 min read
  7. Chapter 7

    How to self-host a container registry on K3s with Zot

    Learn how to self-host a private, production-ready container registry on K3s using Zot. This guide covers Helm installation, CI/CD integration, image signing with Cosign, and vulnerability scanning with Trivy.

    16 min read