Skip to main content

Kubernetes

Deploy Z3rno on Kubernetes for high availability, auto-scaling, and production-grade operations using the official Helm chart.

Prerequisites

  • Kubernetes 1.27+
  • Helm 3.16+
  • kubectl configured for your cluster
  • A PostgreSQL database (managed or self-hosted with pgvector and Apache AGE)

Install with Helm

Add the Z3rno Helm repository and install the chart:
Verify the deployment:

Configuration reference

Override defaults by passing a custom values file:

Key values

See the full values.yaml for all options.

External database

For production, use a managed PostgreSQL service instead of a bundled database. Create a Kubernetes Secret with your connection string:
Then configure the chart:
Your external PostgreSQL instance must have the pgvector and Apache AGE extensions installed.

External Valkey

Replace the bundled Valkey with a managed Valkey service (e.g., ElastiCache):

Ingress and TLS

Enable Ingress with TLS using cert-manager:
Make sure you have an Ingress controller (nginx, Traefik, etc.) and cert-manager installed in your cluster.

Auto-scaling

Enable the Horizontal Pod Autoscaler to scale server pods based on resource usage:
When autoscaling.enabled is true, the server.replicas value is ignored. The HPA manages replica count.

Monitoring

Z3rno exposes Prometheus metrics at /metrics. Use the Prometheus Operator or a standalone Prometheus to scrape metrics:

Upgrading

Upgrade to a new chart or app version:
Check rollout status:
Roll back if needed:

Next steps

Docker Compose

Simpler single-machine deployment for development and small workloads.

Configuration

Full environment variable reference for all Z3rno settings.