No description
- Python 49.2%
- Shell 27.5%
- HCL 16.8%
- JavaScript 4.1%
- Jinja 1%
- Other 1.4%
| .forgejo/workflows | ||
| apps/ab-torznab | ||
| cloudflare/workers/email-ingest | ||
| coder-templates/node-workspace | ||
| docs | ||
| infrastructure | ||
| kubernetes | ||
| scripts | ||
| tailscale | ||
| .gitignore | ||
| .kube-linter.yaml | ||
| .yamllint | ||
| CLAUDE.md | ||
| flake.lock | ||
| flake.nix | ||
| README.md | ||
| renovate.json | ||
Homelab
GitOps-driven Kubernetes homelab on a Dell R730 running Proxmox VE.
Stack
- Proxmox VE — hypervisor
- TrueNAS — storage (4x10TB WD Red Pro, IOMMU passthrough)
- Talos Linux — immutable Kubernetes
- ArgoCD — GitOps controller
- Traefik — dual Kubernetes ingress (public + internal)
- MetalLB — bare-metal load balancer
- CloudNativePG — managed PostgreSQL
- Headscale — self-hosted mesh VPN (Tailscale-compatible)
Services
Public (*.coldcat.net): Nextcloud, Immich, Forgejo, Conduit (Matrix), Stalwart (email), Prosody (XMPP), Excalidraw
Internal (*.internal.coldcat.net): Home Assistant, Obsidian LiveSync, ArgoCD, Grafana, Prometheus, Uptime Kuma
Media: Jellyfin, Sonarr, Radarr, Prowlarr, Bazarr, qBittorrent (VPN via Gluetun)
Quick Start
- Provision VMs:
cd infrastructure/terraform && tofu apply - Bootstrap Talos:
talosctl gen config homelab https://10.10.10.20:6443 - Bootstrap cluster:
./scripts/bootstrap.sh - ArgoCD syncs everything from
kubernetes/apps/
Structure
infrastructure/ Terraform, Talos, Ansible
kubernetes/ K8s manifests (ArgoCD apps, base resources)
tailscale/ Headscale ACL policies
scripts/ Helper scripts
.forgejo/ CI workflows