No description
Find a file
2026-02-02 15:30:33 +08:00
cluster deploy immich 2026-02-02 15:30:33 +08:00
docs deploy immich 2026-02-02 15:30:33 +08:00
AGENTS.md add garage 2026-01-10 16:43:02 +05:30
flake.lock flux: add HTTP proxy for IPv6-only cluster 2026-01-01 19:53:10 +08:00
flake.nix add kanidm 2026-01-13 12:41:07 +08:00
Readme.md deploy immich 2026-02-02 15:30:33 +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
  • some action runner thingie
  • monitoring
  • website
  • figure out why metrics not being reported in lens