No description
Find a file
2025-12-03 23:59:38 +01:00
kubernetes added some stuff 2025-12-03 23:59:38 +01:00
truenas added some stuff 2025-12-03 23:59:38 +01:00
.gitignore added traefik configuration on truenas 2025-10-13 21:57:20 +02:00
LICENSE Initial commit 2025-10-10 17:33:59 +00:00
README.md main readme commit 2025-10-10 20:08:45 +02:00

🏠 Kevin's Homelab Infrastructure

This repository documents and maintains the configuration, deployment manifests, and automation scripts used to run my homelab environment.
Its 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 youre 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.