Skip to content

Home cluster

This repo is my homelab OPS stuff. This is a single source of truth for storing configuration for my home servers, cloud instances and other devices.

In this repo I'm focusing on:

  • Provisioning homelab servers with Talos to have uniform way of configuring servers
  • Configuring cloud services using Terraform
  • Deploying applications with use of ArgoCD

Tech Stack

Provisioning

Tool Purpose
Talos Kubernetes-focused immutable Linux OS for all nodes
talosctl + envsubst Talos config generation from provision/talos/templates/
Terraform Cloudflare DNS, tunnels, and firewall rules

Kubernetes

Component Purpose
ArgoCD GitOps continuous delivery with ApplicationSets
Cilium CNI, kube-proxy replacement, L2 load balancer announcements
Envoy Gateway Kubernetes Gateway API — external (192.168.48.20) and internal (192.168.48.21) gateways
Cloudflared Cloudflare Tunnel client for external gateway access
cert-manager Automated TLS certificates (Cloudflare DNS01)
external-dns (cloudflare) Publishes external routes/endpoints to Cloudflare DNS
external-dns (adguard) Publishes internal routes/endpoints to AdGuard Home DNS
Rook-Ceph Distributed block and file storage
NFS subdir provisioner Cold storage on QNAP NAS
Keycloak Identity provider (OIDC)
External Secrets Operator Secret sync from Bitwarden Secrets Manager
kube-prometheus-stack Prometheus + Grafana monitoring
CloudNative-PG PostgreSQL operator
VolSync PVC backup and restore

Secrets Management

Tool Purpose
Bitwarden Secrets Manager Single secret store — cluster credentials via ESO ExternalSecrets + environment secrets via BWS CLI
External Secrets Operator Syncs Bitwarden secrets into Kubernetes Secrets (ClusterSecretStore: bitwarden)

[VIP]: Virtual IP (Used for high-availability controlplanes) [HA]: High Availability (often reduntant hardware/software) [PVC]: k8s resource - Persistent Volume Claim [PV]: k8s resource - Persistent Volume [CNI]: k8s networking - Container Network Interface [k8s]: Shortening of Kurbenetes [CRD]: Custom Resource Definitions [S3]: Simple Storage Service [NFS]: Network File System [DR]: Disaster Recovery