Enterprise-grade Kubernetes GitOps platform with ArgoCD deploying media management, monitoring, authentication, and database services via Istio service mesh on RKE2 cluster.
Features • Infrastructure • Getting Started • Operations • Documentation
| Category | Link |
|---|---|
| 🚀 Setup | Getting Started Guide |
| 📊 Monitor | Service Dashboard |
| 🎬 Media | Request Portal |
| 🔐 Auth | SSO Portal |
| 📦 Deploy | ArgoCD |
- ✨ Key Features
- 🏗 Infrastructure
- 🚀 Getting Started
- 🔒 Security & Backups
- 📊 Monitoring Stack
- 🛠 Operations Guide
A production-grade Kubernetes platform built for home media and infrastructure:
🔄 Automation & GitOps
- ArgoCD for declarative application management
- Terraform & Ansible for infrastructure provisioning
- Automated SSL certificate management
🎬 Media Stack
- Complete Servarr suite (Radarr, Sonarr, Lidarr, etc.)
- Qbittorrent & NZBGet with Cloudflare proxy
- Overseerr for media requests
🔒 Enterprise Security
- Authentik SSO for identity management
- Istio service mesh with mTLS
- Network policies and traffic encryption
📊 Observability
- Grafana dashboards & alerting
- Prometheus metrics collection
- Loki log aggregation
-
3 Nodes: Alvin, Simon, Theodore
- 20 CPU cores, 64GB RAM each
- 6TB distributed Ceph storage (2TB per node)
- 2x 10Gb SFP+ ports with FRR/OSPF routing
- 2x 1Gb bonded uplinks with LACP
- 2x Thunderbolt 4 ports (configurable)
-
Virtual Machines per Node:
- 1 Master node: 2 CPU, 4GB RAM, 50GB storage
- 2 Worker nodes: 4 CPU, 8GB RAM, 100GB storage each
- HAProxy nodes (Alvin/Simon): 1 CPU, 2GB RAM, 20GB storage
🗄️ Storage Infrastructure
- NFS Server: 192.168.103.114
- Vault Array: 2 vdevs of 4x16TB drives with flash cache
- Flash Array: Enterprise SSD storage for high IOPS
- Domain: mrcurls.org
📡 Network Features
- HAProxy load balancing with failover
- FRR/OSPF routing between nodes
- LACP bonded uplinks
- Cloudflare DNS integration
- RKE2 Kubernetes cluster
- kubectl and Helm 3.x
- Istio CLI (istioctl)
- Git repository access
- Cloudflare API token
- NFS server access
-
Clone:
git clone https://github.com/MrCurlsTTV/homelab.git
🛡️ Security Features
- Istio service mesh with mTLS
- Authentik SSO integration
- Network policies and RBAC
- Automated SSL certificates
- VPN-routed torrent traffic
💾 Backup Strategy
- Distributed Ceph storage
- Automated database backups
- NFS-based persistence
- Node failover support
- HAProxy redundancy
- Metrics Collection:
- Prometheus for metrics storage and alerting
- Grafana Agent for node and pod metrics
- Log Aggregation:
- Loki for centralized logging
- Grafana Agent for log collection
- Visualization:
- Grafana dashboards for metrics and logs
- Integrated log-to-trace correlation
- Tracing: Istio telemetry with trace correlation
| Service | URL | Description |
|---|---|---|
| 🔐 Authentik | auth.mrcurls.org | Identity & Access Management |
| 📊 Grafana | grafana.mrcurls.org | Metrics & Monitoring |
| 📦 ArgoCD | argocd.mrcurls.org | GitOps Deployment |
| Service | URL | Description |
|---|---|---|
| 🎬 Overseerr | overseerr.mrcurls.org | Media Requests |
| 📺 Sonarr | sonarr.mrcurls.org | TV Shows |
| 🎥 Radarr | radarr.mrcurls.org | Movies |
| 🎵 Lidarr | lidarr.mrcurls.org | Music |
| 🔍 Prowlarr | prowlarr.mrcurls.org | Indexer Management |
| ⬇️ Qbittorrent | qbittorrent.mrcurls.org | Download Client |
| Class Name | Purpose | Size Limit |
|---|---|---|
vault-data-nfs |
Media storage | 2TB+ |
flash-configs-nfs |
App configs | <100GB |
monitoring-data-nfs |
Metrics | <500GB |
influxdb-nfs |
Time series | <200GB |
etcd-nfs |
Backups | <50GB |
-
Adding Applications:
- Create manifests in namespace directory
- Add ArgoCD application definition
- Commit and let ArgoCD sync
-
Planned Upgrades:
- Migrate to OpenTofu
- Split repository structure
- Declarative Authentik deployment
- CI/CD integration
- Servarr template standardization
- Templatize some of the manifests for servarr.
- Make the Readme on Github look pretty.