| kubernetes | ||
| truenas | ||
| .gitignore | ||
| LICENSE | ||
| README.md | ||
🏠 Kevin's Homelab Infrastructure
This repository documents and maintains the configuration, deployment manifests, and automation scripts used to run my homelab environment.
It’s built around Kubernetes, TrueNAS, and Proxmox, and serves as a reproducible, version-controlled record of how my infrastructure evolves.
🚀 Overview
My homelab combines virtualization, storage, and container orchestration into a single, cohesive ecosystem:
| Layer | Technology | Purpose |
|---|---|---|
| Compute & Virtualization | Proxmox VE | Hosts virtual machines, LXC containers, and manages hardware resources. |
| Storage | TrueNAS SCALE | Provides network storage via NFS/SMB and ZFS datasets used by Kubernetes. |
| Orchestration | Kubernetes - k3s | Runs containerized workloads and manages networking, ingress, and storage. |
All configurations are declarative (YAML, Helm values, etc.) and stored in this repository to ensure repeatability and version tracking.
🧩 Components
🧱 Proxmox
- Base hypervisor managing all VMs and LXC containers.
- Provides compute resources for the Kubernetes cluster.
💾 TrueNAS
-
Centralized storage system for persistent volumes and backups.
-
Exposes:
- NFS shares for Kubernetes PersistentVolumeClaims (PVCs)
-
Periodic snapshot and replication policies ensure data resilience.
☸️ Kubernetes
- Deployed on top of VMs managed by Proxmox.
- Uses Helm for deploying services and ingress controllers (e.g., Traefik, cert-manager).
- Persistent storage backed by TrueNAS via NFS.
- Workloads include:
- Internal services (monitoring, dashboards, automation)
- Media stack (e.g., Jellyfin, Sonarr, Radarr)
- Reverse proxy and certificate management
- GitOps and CI/CD tooling (future plans)
🗂️ Repository Structure
.
├── manifests/ # Kubernetes manifests and Helm values
│ ├── traefik/ # Ingress controller configuration
│ ├── certmanager/ # cert-manager and issuer definitions
│ ├── apps/ # Workloads and internal services
│ └── storage/ # PVCs, NFS storage classes, etc.
├── proxmox/ # Proxmox VM/LXC definitions, cloud-init templates
├── truenas/ # Storage configuration notes and export setup
├── scripts/ # Helper scripts for automation and maintenance
└── docs/ # Additional documentation and setup notes
Each directory contains modular configuration components and documentation explaining the setup or deployment process for that layer.
🔐 Secrets & Sensitive Data
This repository does not include any sensitive credentials or API tokens.
All secrets are stored separately (e.g., in SealedSecrets, Vault, or environment variables) and referenced as Kubernetes resources.
When contributing or restoring configurations, ensure you never commit files containing passwords, tokens, or SSH keys.
🧰 Tooling
| Tool | Purpose |
|---|---|
| Helm | Package management for Kubernetes deployments |
| kubectl | CLI management of Kubernetes resources |
| Ansible | Automate host configuration and updates |
🗓️ Maintenance & Backup Strategy
- Snapshots handled by TrueNAS for critical datasets.
- Configuration backup through Git commits and remote repository sync.
- Certificates automatically renewed via cert-manager and Cloudflare DNS challenge.
🧭 Goals
- Maintain a clean, modular, and reproducible homelab.
- Learn and apply DevOps practices (GitOps, IaC, container orchestration).
- Self-host services for media, automation, and monitoring.
- Experiment with scaling, high availability, and distributed storage.
🧩 Future Enhancements
- Add ArgoCD for GitOps automation
- Integrate Prometheus + Grafana for monitoring
- Deploy Longhorn or OpenEBS for distributed storage
🧑💻 Author
Kevin (@holden093)
Homelab enthusiast • Linux user • Automation nerd
If you’re building something similar or want to share ideas, feel free to open an issue or discussion!
📜 License
This repository is licensed under the MIT License.
Feel free to fork, adapt, and use it for your own homelab.