~/organiccode.net

← work

organiccode.net home cluster

live

A self-managed Kubernetes cluster running on bare metal at home — hosting this site, GitLab, Keycloak, Jellyfin, Nextcloud, Grafana, and a stack of AI tooling.

Kubernetes NGINX Gateway NFS Keycloak GitLab CI Grafana NVIDIA

What it is

organiccode.net is the homelab I run as both a learning environment and the platform that powers the public-facing services on this site. It started as a single Raspberry Pi, grew into a single Ubuntu server, and now spans two physical nodes — a server and my gaming PC, which pulls double duty as a GPU worker for AI workloads.

Services

  • Source / CI — Self-hosted GitLab + GitLab Runner. The whole cluster, including this site, deploys from GitLab CI to itself.
  • Identity — Keycloak provides SSO for everything behind the gateway, configured declaratively via a Kubernetes operator I wrote (see the devlog).
  • AI / GPU — Open WebUI + ComfyUI on top of the NVIDIA GPU operator, served from an RTX 3090 in the gaming-PC node.
  • Media & files — Jellyfin and Nextcloud, both backed by an NFS-distributed /data volume.
  • Observability — Grafana, Loki, Tempo and Mimir (the LGTM stack) for logs, traces, and metrics across all services.

Why bother

Operating it myself means I get to make all the boring decisions for real instead of in a slide deck: gateway choice, storage class, certificate rotation, upgrade strategy, backup policy. That hands-on experience is genuinely hard to come by in commercial work where someone has already paved the road.