Skip to content

Applications

All apps are deployed via Flux CD. Each has a ks.yaml entry point in kubernetes/apps/{namespace}/{app}/.

Adding an App

Use the /add-app AI skill — it interactively scaffolds all manifests from scratch.

  1. Run /add-app in Claude Code — it prompts for app name, namespace, helm chart type, ingress, auth, and optional features (Kopiur, CNPG, zeroscaler, Gatus), then generates all files
  2. Add secrets to aKeyless at the path referenced in externalsecret.yaml
  3. Fill in {IMAGE_REPO} and {IMAGE_TAG} in helmrelease.yaml (add Renovate annotation)
  4. Validate

Reusable components live in kubernetes/components/:

Component What it does
kopiur PVC backup/restore (needs APP + KOPIUR_CAPACITY substitutions)
cnpg DB user init CronJob + ExternalSecret
ext-auth-internal Authentik SSO for internal apps
ext-auth-external Authentik SSO for external apps
zeroscaler Native HPA scale-to-zero based on Prometheus probe_success (replaces keda)

Include via components: [../../../../components/<name>] in ks.yaml.

By Namespace

Namespace Apps Purpose
ai 7 LLMs, image gen, MCP tools
default 17 SSO, dashboard, photos, recipes, passwords
media 19 Plex, *arr stack, downloads
database 3 CNPG clusters, Dragonfly, pgAdmin
home-automation 6 Home Assistant, MQTT, ESPHome, Matter/Thread
observability 14 Prometheus, Grafana, logs, alerting
network 9 Envoy, Pangolin, DNS, Tailscale
system 21 Cilium, Flux, Rook-Ceph, cert-manager