Tech Stack β’ Directory Overview β’ Gallery β’ Road Map
A bare-metal Proxmox infrastructure provisioned using Terraform (IaC) and established with a complete GitOps automation pipeline with ArgoCD and Ansible, hosting a segregated Dev environment with an Ubuntu cluster for continuous experimentation with Cloud, DevOps, Networking, and Automation.
Alongside it has a Production environment consisting of lightweight LXC containers providing essential services, and a lightweight Talos Linux Kubernetes cluster for project and service deployment, focusing on high availability and disaster recovery.
The whole architecture enforces a security-first posture by managing all credentials through HashiCorp Vault, Ansible Vault, and SOPS encryption as necessary.
| Logo | Name | Description |
|---|---|---|
| Proxmox VE | The backbone of this homelab is an open-source server virtualization platform. All LXC containers and VMs are running on this environment. | |
| Terraform | This is the Infrastructure As Code tool that provisions assets inside Proxmox VE and supporting assets in the Cloud. Here, these provisions create two separate environments, Dev and Prod. Read this doc to learn more about the implementation Here | |
| Ubuntu Server | Base OS for development VMs. | |
| Debian | Base OS for LXC Containers. | |
| Talos | Talos Linux is a Kubernetes-optimized Linux distro. This is the base OS for the main Kubernetes cluster in the Prod environment. Read this doc to learn more about the implemenation Here | |
| Ansible | Configuration management tool for VMs and Containers. Read this doc to learn more about the implemenation Here | |
| ArgoCD | GitOps tool built to deploy applications to Kubernetes. Read this doc to learn more about the implemenation Here | |
| Kubernetes | Container-orchestration system, the backbone of dev and prod environment | |
| Helm | Package Manager for Kubernetes | |
| Docker | Primary Containerization Platform | |
| Grafana | Kubernetes cluster observation and visualization tool. | |
| Prometheus | Kubernetes cluster log aggregation tool. | |
| Hashicorp Vault | Secret management system for the Homelab. Integrated with ArgoCD via ArgoCD Vault Plugin. | |
| Nginx | Kubernetes Ingress Controller. | |
| Pi-hole | Local DNS server for the HomeLab. | |
| Cloudflare | DNS Provider and Tunnel. | |
| Harbor | Self-hosted Image Registry Management Tool | |
| Gitea | Self-hosted Git Repository Hosting |
HomeLab/
βββ .envrc # Direnv variables automation
βββ .gitignore # Git ignore patterns
βββ .sops.yaml # SOPS encryption configuration
βββ LICENSE # AGPL open source license
βββ README.md # Repository main documentation
βββ ansible/ # Ansible automation configurations
β βββ ansible.cfg # Ansible common configuration
β βββ inventories/ # Inventory configurations
β β βββ dev/ # Development inventory
β β βββ prod/ # Production inventory
β βββ playbooks/ # Ansible playbooks
β β βββ argocd-dev.yaml # ArgoCD setup for dev server
β β βββ cluster_init.yaml # Control plane initialization
β β βββ join_workers.yaml # Worker nodes joining
β β βββ nfs_setup.yaml # NFS Proxmox setup
β β βββ site.yaml # Initial setup for all hosts
β β βββ support_tools.yaml # Optional support tools
β β βββ vault_setup.yaml # Vault production LXC setup
β βββ roles/ # Ansible roles
β β βββ argocd/ # ArgoCD role
β β βββ base_setup/ # Base setup role
β β βββ containerd/ # Containerd role
β β βββ control_plane/ # Control plane role
β β βββ kube_packages/ # Kubernetes packages role
β β βββ nfs_client/ # NFS client role
β β βββ node_join/ # Node joining role
β β βββ support_tools/ # Support tools role
β βββ secrets.yaml # Ansible Vault secrets
β βββ readme.md # Ansible documentation
βββ argocd/ # ArgoCD configurations
β βββ apps/ # Application manifests
β β βββ gitea/ # Gitea application
β β βββ harbor/ # Harbor application
β β βββ monitoring/ # Prometheus + Grafana app
β β βββ nfs_provisioner/ # NFS storage provisioner
β βββ base/ # ArgoCD base project configuration
β βββ environments/ # Environment-specific configurations
β β βββ dev/ # Development environment
β β βββ prod/ # Production environment
β βββ readme.md # ArgoCD implementation documentation
βββ docs/ # Detailed feature-specific documentation
βββ proxmox/ # Terraform IaC for Proxmox
β βββ environments/ # Infrastructure segments
β β βββ dev/ # Development segment
β β βββ prod/ # Production segment
β βββ modules/ # Terraform modules
β β βββ lxc/ # LXC container module
β β βββ talos-k8s/ # Talos dynamic K8s cluster module
β β βββ talos-vm/ # Talos VM module
β β βββ ubuntu-k8s/ # Ubuntu dynamic K8s cluster module
β β βββ ubuntu-vm/ # Ubuntu VM module
β βββ readme.md # Proxmox Terraform infrastructure documentation
βββ scripts/ # Automation scripts
β βββ check_prometheus.sh # K8s Prometheus log aggregation check
βββ talos/ # Talos K8s cluster configurations
β βββ _out/ # Generated configurations
β β βββ decrypt.sh # Script to decrypt sensitive configurations
β β βββ encrypt.sh # Script to encrypt sensitive configurations
β β βββ ... # Other generated configuration files
β βββ patches/ # Patches for control plane and workers
β βββ secrets.yaml # Ansible Vault secrets
β βββ readme.md # Talos documentation
βββ vault/ # HashiCorp Vault configurations
βββ secret.yaml.enc # Vault encrypted configuration- Setup ProxMox VE on baremetal environment
- Automated bare metal provisioning with Terraform
- Dev & Prod environment provisioning with Terraform
- Modular architecture, easy to add or remove features/components
- Automated Kubernetes Dev Cluster Setup with Ansible
- Automated Kubernetes Prod Cluster Setup with Talos config
- LXC Container Service provisioning with Terraform
- Installing and managing applications using GitOps ArgoCD
- HashiCorp Vault setup for secret management
- Pi-hole local DNS server and Turnkey file server setup
- NFS file system setup for Kubernetes distributed storage
- Grafana and Prometheus setup for observability
- Automated backup and restore with rsync
- Gitea and Harbor setup
- NGINX ingress setup
- Add Homepage Centralized Dashboard
- ELK Stack Setup in Dev cluster
- Automatic rolling upgrade for OS and Kubernetes
- Automated certificate management for full environment
- DNS failover to pilot-light AWS infra disaster management setup for Prod cluster
- Ensuring 99.9% availability for Prod cluster








