Kubernetes (Helm)
nitrohook includes a Helm chart in charts/ that deploys the full stack: API server, fan-out workers, Postgres, and Redis.
Quick install
Section titled “Quick install”helm install nitrohook ./charts \ --set api.ingress.host=nitrohook.example.comWhat gets deployed
Section titled “What gets deployed”| Component | Kind | Replicas |
|---|---|---|
| API server | Deployment | 1 (configurable) |
| Fan-out worker | Deployment | 3 (configurable) |
| PostgreSQL | StatefulSet | 1 |
| Redis | StatefulSet | 1 |
| Ingress | Ingress | 1 (optional) |
The API deployment runs database migrations as an init container before starting.
Values reference
Section titled “Values reference”Images
Section titled “Images”image: api: repository: ghcr.io/zachbroad/nitrohook-api tag: main worker: repository: ghcr.io/zachbroad/nitrohook-worker tag: mainapi: replicaCount: 1 migration: enabled: true ingress: enabled: true className: nginx host: nitrohook.test tls: [] # - secretName: nitrohook-tls # hosts: # - nitrohook.testWorker
Section titled “Worker”worker: replicaCount: 3 resources: requests: cpu: 100m memory: 128Mi limits: cpu: 500m memory: 256MiApplication config
Section titled “Application config”These go into a ConfigMap and map to the same environment variables as Docker Compose:
appConfig: port: "8080" workerConcurrency: "4" maxRetries: "5" retryBaseDelay: "5s" deliveryTimeout: "10s" pollInterval: "30s"Postgres
Section titled “Postgres”postgres: user: relay password: relay database: nitrohook storage: 5Gi storageClass: ""redis: storage: 1Gi storageClass: ""Secrets
Section titled “Secrets”By default the chart creates a Secret with the database and Redis connection strings. To use an existing secret:
secret: create: false existingSecret: my-nitrohook-secretThe secret must contain DATABASE_URL and REDIS_URL keys.
Accessing the UI
Section titled “Accessing the UI”With ingress enabled, DNS resolution depends on your setup:
- minikube — enable the ingress-dns addon to automatically resolve
*.testdomains to your minikube IP:Terminal window minikube addons enable ingressminikube addons enable ingress-dns - Cloud / bare metal — point your DNS record at the ingress controller’s external IP.
Without ingress:
kubectl port-forward svc/nitrohook-api 8080:80open http://localhost:8080