Kubernetes
The official Helm chart deploys NocoDB for production on Kubernetes. It uses your own managed PostgreSQL and Redis. The chart includes no databases. After install, you configure object storage for attachments in the NocoDB admin panel.
When to use Helm
Use Helm if one of these is true:
- You run more than one NocoDB replica.
- You need high availability.
- You already operate on Kubernetes.
For a single machine, the single-server install is simpler.
The chart runs on all CNCF-conformant Kubernetes clusters. These include managed services (Amazon EKS, Google GKE, Azure AKS) and self-managed or lightweight distributions (k3s, RKE2, OpenShift). The chart does not apply to container platforms without Kubernetes, such as AWS ECS/Fargate or Google Cloud Run. For those platforms, use a Docker-based installation method.
Architecture
NocoDB runs as two workloads from one image:
- App (
Deployment) serves the HTTP API and WebSocket traffic on port 8080. It scales horizontally. Redis sends WebSocket events to all replicas, so you do not need sticky sessions. - Worker (
Deployment, optional but recommended) runs background jobs (imports, thumbnails, migrations) withNC_WORKER_CONTAINER=true. App pods add jobs to the queue. Worker pods process them.
Both workloads connect to external PostgreSQL (metadata) and Redis (cache, job queue, WebSocket fan-out). Attachments are in S3-compatible object storage. You configure it in the NocoDB admin panel after install, not through the chart.
In a multi-replica deployment, external Redis keeps state shared across pods and S3-compatible storage holds attachments, so every replica serves the same data.
High availability at a glance
| Component | Scales | Notes |
|---|---|---|
| App | Min 2 recommended | Autoscaling recommended |
| Worker | Min 2 recommended | Fixed replicas; runs background jobs |
| PostgreSQL | External | Your managed database; holds all your data |
| Redis | External | Shared key-value store and pub/sub |
| S3 | External | Object storage for file attachments |
Prerequisites
- Kubernetes 1.23+ and Helm 3.8+
- Managed PostgreSQL and Redis, and an S3-compatible bucket for attachments (you connect the bucket in the app after install)
- Nodes that can schedule 1 vCPU and 2 GiB memory for each app pod and worker pod (1 GiB memory minimum)
- An ingress controller (and optionally cert-manager for TLS)
Continue to Install.
Last updated on