bamaas
HomeLab-2.0
Shell

๐Ÿ  ๐Ÿ’ป My personal homelab playground, stored as code.

Last updated Mar 14, 2026
13
Stars
1
Forks
0
Issues
0
Stars/day
Attention Score
19
Language breakdown
Shell 57.6%
HCL 32.2%
Go Template 9.7%
Dockerfile 0.5%
โ–ธ Files click to expand
README

๐Ÿ  HomeLab-2.0 ๐Ÿ’ป

My personal homelab playground, stored as code.

The goal is to seamlessly bootstrap a Kubernetes cluster with all the bells and whistles
โ€” from infrastructure to apps โ€”
in one smooth, reproducible flow.
Aiming to keep things as lightweight and simple as possible, while still providing flexibility.

โœจ Features

  • ๐Ÿš€ One-command cluster provisioning
Provision and configure a full Kubernetes cluster with a single command: mise run up <env>
  • ๐Ÿ” Automatic application discovery
No need to manually define ArgoCD application manifests โ€” applications are automatically detected and deployed.
  • ๐Ÿงฐ One entrypoint to rule them all
No more memorizing complex commands. All essential workflows are defined as Mise tasksโ€”your single, consistent entrypoint for development. Run mise tasks to discover everything you need.
  • โœ… Catch issues before they catch you
Every commit runs automatic pre-commit checks that generate and lint your Kubernetes manifests against the API spec. So you catch mistakes early, not in production.
  • ๐Ÿ› ๏ธ Isolated development setup, zero headaches
Work in an isolated, reproducible environment powered by Mise and Dev Containers so you always have the right tools, versions, and setup from day one.
  • ๐ŸŒ Manage multiple environments effortlessly
Build on a shared base with environment-specific overlays for clear separation and reproducibility.
  • ๐Ÿ” Secret management made easy
Secure your secrets with SOPS: encrypted, version-controlled, and stored right alongside your config. No external vaults, no guesswork.

๐Ÿ›๏ธ Foundation stack

This section describes the essential infrastructure components that form the backbone of the homelab environment.

  • Infrastructure
Terraform, Proxmox VE, TalosOS
  • GitOps
ArgoCD Kustomize Helm
  • Networking
Cilium CNI, MetalLB, Nginx Ingress Controller
  • Storage
Synology iSCSI & NFS
  • Monitoring
VictoriaLogs, Vector, VictoriaMetrics Grafana
  • Security
Cert-Manager, SOPS, Azure Key Vault, Trivy Planned
  • Authentication
Dex Planned
  • Development
Mise, Docker

๐Ÿš€ Get up and running

How to deploy the entire cluster from the ground up.

  • Setup devcontainer.
This will setup all the required tools needed for project development.
  • To provision and configure a full-blown cluster simply run:
mise run up <env>

This command will:

1. Use Terraform to provision TalosOS machines on the Proxmox host and initialize the Kubernetes cluster.

1. Deploy ArgoCD using the bootstrap configuration to enable GitOps workflows.

1. Automatically discover and deploy all applications defined in the apps/ directory through ArgoCD ApplicationSets.

  • Good to go ๐ŸŽ‰
The Kubeconfig and Talosconfig files are automaticalled fetched and stored in .config directory and your shell is configured automatically.

You can now interact with the cluster: kubectl get pods -A

๐Ÿ“‚ Project structure

This repository follows a GitOps approach using ArgoCD for continuous deployment. The structure is organized as follows:

  • .lint/: Linting configurations
  • .mise/: Mise configurations
* tasks: Reusable scripts for cluster management, provisioning, and automation.
  • apps/: Contains all applications deployed to the cluster
* Organized in <env>/<project>/<namespace>/<app> structure * Each app contains its kustomization.yaml and configurations * Namespaces are created automatically during deployment
  • bootstrap/: Contains initial cluster setup and ArgoCD configuration
* projects/: Contains ArgoCD project definitions * resources/: Essential cluster-wide resources * misc/: Miscellaneous bootstrap configurations
  • provision/: Contains Terraform infrastructure provisioning scripts and configurations
* core/: Core Terraform modules and scripts for cluster provisioning * <env>/: Environment-specific Terraform variable files (e.g., dev/, prd/)

๐Ÿ“ To do

This section outlines a list of planned improvements and upcoming features, presented in no particular order.

  • [ ] Refactor ArgoCD config management plugin script.
  • [ ] Setup alerting rules and channels.
  • [ ] Implement KRR
๐Ÿ”— More in this category

ยฉ 2026 GitRepoTrend ยท bamaas/HomeLab-2.0 ยท Updated daily from GitHub