apiVersion: apps/v1 kind: Deployment metadata: name: nocodb namespace: nocodb spec: replicas: 1 strategy: type: Recreate selector: matchLabels: component: web template: metadata: labels: component: web spec: securityContext: runAsNonRoot: true runAsUser: 1001 runAsGroup: 1001 fsGroup: 1001 seccompProfile: type: RuntimeDefault containers: - name: nocodb image: nocodb/nocodb:2026.04.1 ports: - name: http containerPort: 8080 protocol: TCP env: - name: NODE_OPTIONS value: "--max-old-space-size=1536" - name: NC_DB valueFrom: secretKeyRef: name: nocodb-secrets key: dbUrl - name: NC_PUBLIC_URL value: https://{{ .domain }} - name: NC_AUTH_JWT_SECRET valueFrom: secretKeyRef: name: nocodb-secrets key: ncAuthJwtSecret - name: NC_DISABLE_TELE value: "true" resources: limits: cpu: 500m ephemeral-storage: 1Gi memory: 2Gi requests: cpu: 50m ephemeral-storage: 50Mi memory: 256Mi volumeMounts: - name: nocodb-data mountPath: /usr/app/data livenessProbe: httpGet: path: /api/v1/health port: 8080 initialDelaySeconds: 60 timeoutSeconds: 5 periodSeconds: 15 failureThreshold: 6 readinessProbe: httpGet: path: /api/v1/health port: 8080 initialDelaySeconds: 30 timeoutSeconds: 3 periodSeconds: 10 failureThreshold: 3 securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL readOnlyRootFilesystem: false volumes: - name: nocodb-data persistentVolumeClaim: claimName: nocodb-data restartPolicy: Always