Kubernetes & Helm
A Helm chart lives at infra/helm/entityflow. It deploys the single EntityFlow server image against a control PostgreSQL plus a diagram plane, with optional Redis fan-out for multi-node deployments.
Migrations
A pre-install/upgrade hook runs database migrations exactly once per release, before the application pods start. You don't need to run migrations by hand.
Validate the chart offline
Before installing, you can render and validate the chart without a cluster:
node infra/helm/validate.mjs
Single-node install
helm install entityflow infra/helm/entityflow \
--set controlDb.url="postgres://user:pass@pg:5432/ef_control" \
--set diagramDb.url="postgres://user:pass@pg:5432/entityflow" \
--set auth.secret="$(openssl rand -base64 48)"
Multi-node install
To run multiple replicas you must enable Redis so awareness and document updates fan out across pods:
helm install entityflow infra/helm/entityflow \
--set controlDb.url="postgres://user:pass@pg:5432/ef_control" \
--set diagramDb.url="postgres://user:pass@pg:5432/entityflow" \
--set auth.secret="$(openssl rand -base64 48)" \
--set replicaCount=3 \
--set redis.enabled=true \
--set redis.url="redis://redis:6379"
replicaCount > 1 requires redis.enabled=true. Without shared awareness, pods diverge — editors connected to different replicas would see inconsistent presence and updates. The chart enforces this: it fails to render if you set more than one replica without Redis. See Scaling & performance.
Configuration
All chart values map to the same environment variables documented in the Configuration reference. Use --set for individual values or supply a values.yaml for repeatable deployments.