No description
  • Python 49.2%
  • Shell 27.5%
  • HCL 16.8%
  • JavaScript 4.1%
  • Jinja 1%
  • Other 1.4%
Find a file
renovate-bot 457b7438c9
Some checks failed
Validate / Kubernetes manifests (push) Failing after 36s
Validate / Terraform format + validate (push) Successful in 1m12s
Validate / Ansible lint (push) Successful in 2m2s
Merge pull request 'chore(deps): update lscr.io/linuxserver/transmission docker tag to v4.1.3' (#53) from renovate/torrent-clients into main
2026-07-01 06:04:03 +00:00
.forgejo/workflows Merge pull request 'chore(deps): update node.js to v24' (#40) from renovate/docker.io-node-24.x into main 2026-06-28 08:30:04 +00:00
apps/ab-torznab chore(deps): update all non-major updates 2026-06-13 06:01:29 +00:00
cloudflare/workers/email-ingest
coder-templates/node-workspace chore(deps): update all non-major updates 2026-06-05 00:03:52 +00:00
docs TODO: MinIO deployed; SABnzbd parked in PR #37 pending Usenet provider 2026-06-15 01:17:57 -07:00
infrastructure chore(deps): non-major image bumps from #39 (excl. Mastodon) 2026-06-28 01:30:33 -07:00
kubernetes chore(deps): update lscr.io/linuxserver/transmission docker tag to v4.1.3 2026-07-01 06:01:43 +00:00
scripts Add idempotent *arr stack configuration script 2026-06-14 22:20:34 -07:00
tailscale
.gitignore
.kube-linter.yaml Comprehensive security, backup, observability, and CI hardening 2026-04-16 15:50:39 -07:00
.yamllint Comprehensive security, backup, observability, and CI hardening 2026-04-16 15:50:39 -07:00
CLAUDE.md docs(CLAUDE): GPG cache-expiry push gotcha + Forgejo SSH is in-cluster only 2026-06-16 15:33:21 -07:00
flake.lock
flake.nix
README.md
renovate.json Add pass-web zero-knowledge password vault k8s manifests (WIP) 2026-06-15 03:29:03 -07:00

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

  1. Provision VMs: cd infrastructure/terraform && tofu apply
  2. Bootstrap Talos: talosctl gen config homelab https://10.10.10.20:6443
  3. Bootstrap cluster: ./scripts/bootstrap.sh
  4. 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