Skip to content

holden093/homelab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🏠 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.

About

No description, website, or topics provided.

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors