Skip to content

maestro00/homelab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

107 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Maestro homelab

๐Ÿก High-Availability K3s Cluster for Homelab

This is a bookkeeping for setup of my infrastucture and services. It features kube-vip for HA control-plane, MetalLB for LoadBalancer services, Pi-hole for DNS/ad-blocking along with unbound, and Caddy for reverse proxy and etc.

๐Ÿ–ฅ๏ธ Physical Lab Inventory

A concise overview of the hardware powering this homelab:

  • ๐Ÿ’ป GMTec Mini PC Intel N150, 16GB DDR4 RAM, 256GB NVMe SSD

  • ๐Ÿ’ป Beelink S13 Mini PC Intel N150, 16GB DDR4 RAM, 500GB M.2 SSD

  • ๐Ÿ“ Raspberry Pi 4B 8GB RAM, 256GB microSD card

  • ๐Ÿ“ถ GL.inet Flint 3e - OpenWRT Wifi-7 Router, with 2.5gigabit ports

๐Ÿงฑ Infrastructure with Proxmox + Terraform

I use Proxmox VE to manage bare-metal virtualization and Terraform to automate VM provisioning:

๐Ÿ–ฅ๏ธ VMs are provisioned on multiple nodes using Proxmox's API.

๐Ÿ“ฆ Each VM is bootstrapped with cloud-init templates.

โš™๏ธ Terraform handles:

    VM creation

    Resource allocation (CPU, memory, disk)

    SSH key injection

    Network config

Directory: terraform

โ˜ธ๏ธ High-Availability K3s Cluster

K3s HA setup is designed for simplicity, resilience, and a rich self-hosted ecosystem:

๐Ÿ—๏ธ Core Infrastructure & Storage

  • ๐Ÿ›ข๏ธ External MariaDB: Runs on the Proxmox host to serve as K3s datastore.
  • ๐Ÿง  kube-vip: Provides a virtual IP (VIP) for easy access to the K3s API.
  • ๐Ÿ’พ Longhorn: Distributed block storage providing persistent, replicated volumes across the cluster.

๐ŸŒ Networking & Security

  • ๐Ÿงฒ MetalLB: Manages service-level LoadBalancer IPs for internal cluster services.
  • ๐ŸŒ Caddy Ingress: Handles clean, domain-based routing and automatic SSL for all web services.
  • ๐Ÿ‘ฎ CrowdSec: Integrates directly with Caddy to detect and block known malicious IPs and brute-force attacks.
  • ๐Ÿง… Pi-hole + Unbound: Runs bare metal rpi4 to serve fast local DNS resolution and network-wide ad blocking.
  • ๐Ÿ”„ Cloudflare DDNS: Automatically updates my public Cloudflare DNS entries by cron run.
  • ๐Ÿ”’ Tailscale VPN: Deployed on a bare-metal Raspberry Pi 4 node for secure, zero-trust remote network access.

๐Ÿ› ๏ธ DevOps & Management

  • ๐Ÿ™ Forgejo Git Server: Self-hosted Git repository complete with local actions runners to automatically deploy configuration changes.
  • ๐Ÿ’ป Termix: Provides a web-based terminal for easy remote access to nodes (accessible securely via Tailscale).

๐Ÿ  Media & Dashboards

  • ๐Ÿ“Š Homer: A clean, static dashboard for quick access to all homelab services.
  • ๐Ÿฟ Media Stack: The full Arr suite paired with Jellyfin for internal media management and streaming.

Directory: /k3s-ha-cluster/


๐Ÿ”— Inspiration & References

This project draws inspiration and practical ideas from the following excellent resources. Many thanks to their authors for sharing their knowledge with the community:

About

๐Ÿก High-Availability K3s Cluster for Homelab โ€” featuring kube-vip for HA control-plane, MetalLB for LoadBalancer services, Pi-hole for DNS/ad-blocking, and Caddy as Ingress controller. Built on bare metal with mixed ARM/AMD nodes.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors