This is my personal Kubernetes homelab using FluxCD and k3s.
This is a work in progress, and I will be updating it regularly as I make changes to my setup.
This repository contains the complete declarative configuration for my homelab infrastructure. Everything is managed as code and automatically reconciled to the cluster via FluxCD.
Stack:
- Kubernetes: k3s multi-node cluster
- GitOps: FluxCD + Kustomize
- Storage: Longhorn distributed block storage
- Networking: Tailscale Operator
- Monitoring / Alerting: kube-prometheus-stack (Prometheus + Grafana + Alertmanager)
- Secrets: SOPS + age encryption
- Tooling: pre-commit hooks + gitleaks for secret scanning
├── apps/ # Application deployments
│ ├── actualbudget/ # Budget management app
│ └── homarr/ # Homelab dashboard
├── clusters/homelab/ # Flux configuration & kustomizations
├── infra/ # Infrastructure components
│ ├── longhorn/ # Distributed storage
│ ├── prometheus-operator/ # Monitoring stack
│ └── tailscale-operator/ # Secure networking
└── secrets/ # SOPS-encrypted secrets
This is a multi-node cluster, running on mini PCs:
control-plane: HP EliteDesk G4 i7-8700, 16 GB RAM, 256 GB SSDworker-1toworker-3: HP EliteDesk G3 i5-6500T, 8 GB RAM, 256 GB SSD
- Secrets README - Secret management with SOPS
- Testing branches - How to test feature branches
- Apps README - Application deployment guide
- Infra README - Infrastructure components