No description
  • HCL 80.1%
  • Nix 19.9%
Find a file
2026-06-08 21:44:58 +02:00
docker Move jellyfin to old domain 2026-06-08 19:27:22 +02:00
docs Add gpu vm 2026-06-08 21:44:58 +02:00
k8s Add bitwarden secrets manager to the cluster 2025-10-07 20:04:30 +02:00
tofu/k8s Forgot about that 2025-10-07 00:29:31 +02:00
.editorconfig Setup repo 2025-09-18 19:25:27 +02:00
.envrc Setup repo 2025-09-18 19:25:27 +02:00
.gitignore Bootstraping for flux 2025-10-06 22:49:12 +02:00
flake.lock Setup repo 2025-09-18 19:25:27 +02:00
flake.nix Some changes that I forgot to commit last time and forgot about 2026-06-06 19:37:39 +02:00
README.md Some changes that I forgot to commit last time and forgot about 2026-06-06 19:37:39 +02:00

Homelab

Built with Proxmox, Talos, Kubernetes, flux, and OpenTofu

Repo layout

📁 docs/ - General documentation
📁 tofu/
  📁 k8s/ - OpenTofu IaC to deploy the Kubernetes cluster from scratch
📁 k8s/ - Kubernetes cluster configuration files reconciled by flux
  📁 cluster/ - Main cluster configuration for flux
  📁 infra/ - Infrastructure configuration

IP ranges

192.168.10.1 -> Main router
192.168.10.2 -> Openwrt accesspoint
192.168.10.3 -> Proxmox 1
192.168.10.4 -> Media share (Deprecated)
192.168.10.5 -> Mini 1 (Proxmox)
192.168.10.6 -> Mini 2 (Proxmox)
192.168.10.[10-50] -> VM hosts
            10     -> Proxy
            11     -> Git
            12     -> Cloud
            13     -> Dokploy
192.168.10.[100-200] -> DHCP range
            174      -> Bluesky PDS
            188      -> Portainer (Deprecated)
            190      -> Wings 1
            192      -> Home assistant
192.168.20.[1-9]     -> UNUSED
192.168.20.10        -> Kubernetes control plane virtual IP
192.168.20.11        -> talos-ctrl-01
192.168.20.12        -> talos-ctrl-02
192.168.20.13        -> talos-ctrl-03
192.168.20.[14-20]   -> UNUSED
192.168.20.21        -> talos-worker-01
192.168.20.22        -> talos-worker-02
192.168.20.23        -> talos-worker-03
192.168.20.[24-99]   -> UNUSED
192.168.20.[100-200] -> Kubernetes load balancer pool

Bootstrapping Kubernetes

To bootstrap the cluster execute the following in order.

  1. Create the cluster VMs In the tofu/k8s directory run tofu apply to create the VMs on proxmox.
  2. Create the Bitwarden secret manager secret With the kube_config from tofu/k8s/output/kube_config.yaml run kubectl create secret generic bw-auth-token -n bitwarden-sm --from-literal=token="<TOKEN_HERE>"

Thank you

A huge thank you to everyone listed here, as this would have been way harder without them and their resources.