Gitea Actions 5c1933be6b
All checks were successful
Deploy / Deploy (push) Successful in 3s
Auto-update blog content from Obsidian: 2025-05-15 15:56:22
2025-05-15 15:56:22 +00:00

5.0 KiB
Raw Blame History

title, layout, description, showToc, menu
title layout description showToc menu
Welcome to My Homelab page The story behind my homelab project true
main
weight params
20
icon
flask

Introduction

My homelab journey began in 2013 with a humble Raspberry Pi, the very first model. I was needing a cheap machine for my first step into the world of Linux. It helped me a lot to dive into this technology and served me as a basic NAS, thank you Vezpibox (shitty name, I know)

In 2015, I upgraded to a Raspberry Pi 2, seeking better performance to run multiple applications like XBMC (the old Kodi's name), CouchPotato, SickBeard, you name it...

By 2018, the need for more RAM led me to a Raspberry Pi 3, allowing me to run even more applications. My 3 little machines were running happily together, in a quite ordered mess.

Finally, in 2019, my new job made me discover the virtualization, with virtual machines and above all Docker. I wanted to try that at home, I took a significant step forward with a compact yet powerful headless PC that laid the foundation of my homelab.

Why a Homelab ?

I wanted my own playground, a space where breaking things was not just okay, but encouraged. Its the best way to learn how to fix them and, more importantly, to really understand how they work.

My single server was great, but testing anything risky on it became a problem. It was running critical services like home automation and DNS, and believe me, having no lights or internet is a major incident in my household. The server had become indispensable. When it was down, everything was down. Not so fun anymore.

The first big challenge I set for myself was building a Kubernetes cluster. Sure, I could run one on a single node, but whats the point of a cluster with only one node? You could argue that running Kubernetes to control my shutters is overkill, and youd be right. But that wasnt the point.

I also wanted to spawn new virtual machines at will, rebuild them from scratch, and apply Infrastructure as Code principles. I could have done all of that in the cloud, but I wanted full control.

Initially, my goal was to provide high availability for my existing services. One server wasnt enough. So, I wanted a second node. But in most HA setups, three nodes are the sweet spot. And just like that, I was on my way to building what would become my homelab.

Shaping the Lab

Specifications

what I want to be able to do :

  • host my existing services
  • simulate enterprise environment
  • 3 nodes for HA
  • distributed storage for HA
  • network / vlan for learning

Constraints

  • space:
  • noise
  • power
  • budget

Infrastructure Overview

Rack

Servers

Network

Cooling

Photos

Software Stack

Hypervisor

Network

Application

Docker

Kubernetes

Roadmap for my Lab

Building my Homelab

  • building the first proxmox node
  • migrating from my headless PC to a VM
  • building the second proxmox node with HDDs
  • Install the rack
  • Create the network
  • Installating OPNsense
  • Switching routing from my freebox to OPNsense
  • Reconfigure my WiFi clients
  • Build the third Proxmox node
  • Externalize my HDDs
  • Deploy VLAN
  • Setup Proxmox Cluster
  • Setup Ceph Storage
  • Install fans
  • Install ADguard Home along Unbound DNS
  • Setup IPAM
  • Install a bastion

Let's Play

  • Deploy a VM with Terraform
  • Create a Terraform module
  • Deploy Terraform infrastructure using Ansible
  • Create a Blog

Welcome to my homelab — a space where I explore new technologies, break things on purpose, and learn by doing. What started as a few old machines has grown into a modest but powerful setup that I use for self-hosting, automation, testing infrastructure tools, and running personal projects.

1. Hardware

I currently run a 3-node cluster built with energy-efficient mini PCs and repurposed desktops. Here's a breakdown:

  • Node 1: AMD Ryzen 4C/4T, 16GB RAM
  • Node 2: AMD Ryzen 6C/6T, 16GB RAM
  • Node 3: AMD Ryzen 8C/16T, 64GB RAM
  • Storage: Ceph-based distributed storage across all nodes
  • Network: 1Gbps LAN with 2.5Gbps NICs for Ceph replication traffic
  • Rack: Compact 10" rack with managed switch and PDU

2. Software

  • Proxmox VE: Used for virtualization and clustering
  • Ceph: Distributed storage for VM disks
  • Kubernetes (K3s): For orchestrating containerized apps
  • Gitea: Self-hosted Git with CI/CD via Gitea Actions
  • OPNsense: Firewall, VLANs, and DNS (with AdGuard + Unbound)
  • Monitoring: Grafana, Prometheus, Node Exporter

3. Projects

Some of the ongoing and past projects I've worked on:

  • CI/CD automation using Gitea Actions
  • GitOps pipeline for Kubernetes using ArgoCD
  • Hugo-based personal blog hosted with Docker
  • Home automation with Zigbee2MQTT and Home Assistant
  • VPN and remote access via WireGuard
  • Infrastructure as Code with Terraform and Ansible

If you're curious about any part of the stack or want to know how I built something specific, feel free to check the related blog posts!