Use this file to discover all available pages before exploring further.
Archestra Platform can be deployed using Docker for development and testing, or Helm for production environments. Both deployment methods expose the Admin UI on port 3000 and the API on port 9000. This guide walks through every deployment path — from a single-command local setup to a fully hardened Kubernetes production deployment with Infrastructure as Code.
Auth Secret auto-generated and saved to /app/data/.auth_secret (persisted across restarts)
MCP Kubernetes Orchestrator via an embedded KinD cluster
The -v /var/run/docker.sock:/var/run/docker.sock mount enables the embedded Kubernetes cluster for MCP server execution. This is required for the quickstart Docker deployment. For production, use the Helm deployment with an external Kubernetes cluster instead. In quickstart mode, private network IPs (e.g. 192.168.x.x, 10.x.x.x) are automatically trusted, so authentication works without extra configuration when accessing from another device on your network.
If you already have Kubernetes installed locally and want to use it for the MCP orchestrator instead of KinD, ensure kubectl points to the right cluster and omit the socket mount and the ARCHESTRA_QUICKSTART flag:
If you do not specify DATABASE_URL, PostgreSQL runs inside the container. This is intended for development and tinkering only — data is not persisted when the container stops. Always use an external database for any environment where data must survive restarts.
This command installs or upgrades the release named archestra-platform, creates the archestra namespace if it doesn’t exist, and waits for all resources to be ready.After installation, access the platform via port forwarding:
ARCHESTRA_AUTH_SECRET is optional — the Helm chart auto-generates a 64-character value on first install and stores it in a RELEASE_NAME-auth Secret. To manage the secret yourself:
If postgresql.external_database_url is not specified, the chart deploys a managed PostgreSQL instance using the Bitnami PostgreSQL chart. For Bitnami-specific options, see the Bitnami PostgreSQL chart documentation.
When the HPA is enabled, the chart defaults to a minimum of 2 web pods, scales up to 10, uses memory utilization as the primary scaling signal, scales up aggressively, and scales down conservatively with a 5-minute stabilization window.
Archestra Platform requires longer-than-default timeout settings on the upstream load balancer. Without these, streaming responses will end prematurely with a “network error” in the UI. Configure the appropriate timeout for your cloud provider before going to production.
Google Cloud (GKE)
AWS EKS
Azure AKS
nginx / Traefik
For GKE deployments using the GCE Ingress Controller, configure load balancer timeouts with BackendConfig resources. The Helm chart can create and manage these for you.Enable the gkeBackendConfig section in your Helm values (replace RELEASE_NAME with your actual release name, e.g. archestra-platform):
For Traefik, configure the timeout via a Traefik IngressRoute or Middleware resource, as Traefik does not support timeout annotations on standard Kubernetes Ingress objects:
The following tables cover the most important environment variables for configuring Archestra in production. For the complete reference, see the platform-deployment source docs.
For production, use a cloud-hosted PostgreSQL database rather than the bundled instance. Cloud-managed databases provide high availability with automatic failover, automated backups and point-in-time recovery, scaling without downtime, and built-in encryption and monitoring.Pass the connection string via ARCHESTRA_DATABASE_URL (Docker) or postgresql.external_database_url (Helm). When an external database is specified, the bundled PostgreSQL instance is automatically disabled.
The Knowledge Base enterprise feature requires the pgvector PostgreSQL extension for vector similarity search. The database user must have permission to run CREATE EXTENSION vector.
AWS RDS — pgvector is not a trusted extension; connect as the RDS master user with the rds_superuser role to install it.
Google Cloud SQL — pgvector is supported natively. Enable via the Cloud SQL console or CREATE EXTENSION vector.
Azure Database for PostgreSQL — Allow-list pgvector in server parameters, then run CREATE EXTENSION vector.
Self-managed PostgreSQL — Install the pgvector package (e.g. apt install postgresql-17-pgvector) and grant SUPERUSER or CREATE privilege to the database user.
If pgvector is not installed or the database user lacks the necessary permissions, the Knowledge Base migration will fail. This does not affect other Archestra features.
Enable the optional Kubernetes NetworkPolicy to prevent MCP server pods from accessing private or internal networks. This policy is disabled by default to avoid breaking MCP servers that connect to internal Kubernetes services (e.g. grafana.monitoring.svc.cluster.local). If your MCP servers only need public internet access, enabling this policy is strongly recommended.
When enabled, the policy blocks outbound connections to RFC 1918 private ranges (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16), link-local / cloud metadata endpoints (169.254.0.0/16), loopback (127.0.0.0/8), and carrier-grade NAT (100.64.0.0/10). DNS and public internet access remain available.
SSRF protection requires a CNI plugin that enforces NetworkPolicies (e.g. Calico, Cilium). The default GKE CNI (kubenet) does not enforce NetworkPolicies unless Dataplane V2 or Calico is enabled. To whitelist specific internal services, use archestra.orchestrator.kubernetes.networkPolicy.additionalEgressRules.
For the worker Deployment, resource-based autoscaling is usually the wrong signal — consider KEDA with a PostgreSQL scaler against the tasks table instead:
SELECT COUNT(*) FROM tasks WHERE status = 'pending' AND scheduled_for <= NOW()