Gitea Actions 9ed49cf340
All checks were successful
Deploy / Deploy (push) Successful in 4s
Auto-update blog content from Obsidian: 2025-05-14 21:25:56
2025-05-14 21:25:56 +00:00

125 lines
4.0 KiB
Markdown

---
title: Welcome to My Homelab
layout: page
description: The story behind my homelab project
showToc: true
menu:
main:
weight: 20
params:
icon: flask
---
## Introduction
first raspberry pi first of his name in 2013 to discover linux and act as a NAS
then in 2015 a rapsberry pi 2 more powerful because the first raspberry pi was slow
and the last one in 2018, raspberry pi 3, for more RAM
finally in 2019 I bought tiny form factor headless pc, DeskMini A300, small yet powerful
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 (the name is shitty 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 know...
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 toge
Finally, in 2019, I took a significant step forward with a DeskMini A300, a compact yet powerful headless PC that laid the foundation for a more capable and versatile homelab.
## Why a Homelab ?
want to spawn VM, build kubernetes cluster
evolution of my setup
experiment
privacy
experience
## Shaping the Lab
### Specifications
what I want to be able to do :
- host my current services
- simulate enterprise environment
- 3 nodes
- distributed storage
- network / vlan
### 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!