No description
  • TypeScript 94.5%
  • Nix 5.5%
Find a file
2026-06-01 13:37:24 +08:00
.planning/codebase map codebase and add copyparty docs 2026-03-09 17:46:34 +08:00
cluster fix cnpg + longhorn issues 2026-06-01 13:37:24 +08:00
docs star deployment 2026-03-16 18:00:38 +08:00
scripts fix books deployment 2026-04-27 16:37:34 +08:00
AGENTS.md give nvidia access to jellyfin 2026-03-11 20:19:33 +08:00
flake.lock flux: add HTTP proxy for IPv6-only cluster 2026-01-01 19:53:10 +08:00
flake.nix star deployment 2026-03-16 18:00:38 +08:00
Readme.md prometheus for coredns and traefik 2026-03-11 14:34:53 +08:00

Homelab GitOps

This repo holds the Flux GitOps configuration for my homelab Kubernetes cluster. Core manifests live in cluster/, and cluster/kustomization.yaml assembles the full tree. Infrastructure components are grouped under cluster/infrastructure/<service>/.

Prerequisites

  • nix for the dev shell (recommended).
  • kubectl, flux, helm, and cilium-cli (available via nix develop).
  • Cluster access for reconcile commands.

Common commands

nix develop
kubectl kustomize cluster
flux reconcile kustomization -n flux-system infrastructure
flux get kustomizations

Repository structure

  • cluster/: main GitOps manifests and cluster/kustomization.yaml.
  • cluster/flux-system/: Flux bootstrap manifests.
  • cluster/infrastructure/: service components (each has helmrepo.yaml, helmrelease.yaml, namespace.yaml, and kustomization.yaml).
  • docs/: operational notes, including docs/http-proxy-guide.md.

Notes

  • Secrets are referenced via 1Password items (see cluster/infrastructure/1password/ and cluster/infrastructure/cert-manager/secret.yaml); do not commit plaintext secrets.
  • The cluster is IPv6-only; external access may require the HTTP proxy guide.

Todo

  • traefik
  • longhorn
  • external dns
  • cert-maanger
  • longhorn backups
  • kanidm
  • expose longhorn website
  • expose traefik website
  • oauth proxy
  • harbor
  • forjego
  • immich
  • pastebin of some kind
  • kanidm operator
  • woodpecker
  • monitoring
  • website
  • figure out why metrics not being reported in lens