This repository hosts the Infrastructure as Code (IaC) for my Kubernetes homelab. It runs a media server stack, home automation, and observability infrastructure.
The cluster is built on Talos Linux, an immutable and minimal OS, and managed via GitOps principles using Flux. Changes pushed to this repository are automatically reconciled in the cluster.
My cluster is a hybrid setup running on bare metal and virtualized nodes.
| Node | OS | Hardware | Specs | Role | Storage |
|---|---|---|---|---|---|
| kharkiv | Talos Linux | Intel i5 12th Gen | 8C / 16T / 32GB | control-plane |
|
| le-havre | Talos Linux | Intel N150 | 4C / 4T / 32GB | worker |
USB HDD (/mnt/media) |
| Component | Description | Namespace |
|---|---|---|
| Cilium | CNI, Network Policies, and Load Balancing. | kube-system |
| Cert-Manager | Automates Let's Encrypt SSL certificates. | cert-manager |
| External Secrets | Syncs secrets from 1Password into the cluster. | security |
| Gateway API | Modern ingress management via Envoy Gateway. | network |
| Longhorn | Distributed block storage for persistent volumes. | longhorn-system |
Key user-facing applications running on the cluster.
| Category | Applications |
|---|---|
| Media | Jellyfin, Sonarr, Radarr, Bazarr, Prowlarr, Seerr |
| Observability | Grafana, Prometheus, VictoriaLogs, Gatus |
| IOT | Home Assistant |
Huge thanks to @onedr0p and the amazing Home Operations Discord community for their knowledge and support. If you're looking for inspiration, check out kubesearch.dev to discover how others are deploying applications in their homelabs.