Overview
External dependency requirements and Helm values for self-hosted LlamaCloud: supported versions, sizing, and configuration examples for Postgres, MongoDB, Redis, RabbitMQ, and Temporal.
Self-Hosting Documentation Access
This section requires a password to access. Interested in self-hosting? Contact sales to learn more.
LlamaCloud uses a few external dependencies — Postgres, Redis, and Temporal are always required; MongoDB and RabbitMQ are required for the full feature surface but can be omitted with the store-less minimal profile (see below).
Requirements
Section titled “Requirements”We officially support the following versions of the dependencies:
- Postgres
- Minimum Version
>=15.x - Admin Access to the database. LlamaCloud will read/write and apply migrations.
- We recommend
1 - 2 vCPUsand1 - 2 GBi RAMas a starting point for the database. As your usage grows, you can scale the database accordingly. - When Postgres is also the Index vector-store target (the minimal profile’s default), the server must have the pgvector extension installed — LlamaCloud runs
CREATE EXTENSION IF NOT EXISTS vectoron first index export. See Index Configuration. - Recommended Managed Services:
- Minimum Version
- MongoDB — optional (see minimal profile)
- Minimum Version
>=7.x - We recommend
1 - 2 vCPUsand1 - 2 GBi RAMas a starting point for the database. As your usage grows, you can scale the database accordingly. - Recommended Managed Services:
- Minimum Version
- RabbitMQ — optional (see minimal profile)
- Minimum Version
>=3.11.x - We recommend
200 - 500m vCPUsand500Mi - 2GBi RAMas a starting point for the database. As your usage grows, you can scale the database accordingly. - Recommended Managed Services:
- Minimum Version
- Redis
- Minimum Version
>=7.x - We recommend
200 - 500m vCPUsand500Mi - 2GBi RAMas a starting point for the database. As your usage grows, you can scale the database accordingly. - Recommended Managed Services:
- Minimum Version
- Temporal
Store-less deployments (minimal profile)
Section titled “Store-less deployments (minimal profile)”MongoDB and RabbitMQ can be omitted entirely by setting mongodb.enabled: false and rabbitmq.enabled: false in your Helm values — the chart then injects MONGO_DISABLED / AMQP_DISABLED, renders no store secrets, and skips the AMQP jobs-worker Deployment. The chart ships a preset overlay for this shape:
helm install llamacloud . -f my-values.yaml -f examples/profiles/minimal.yamlFeature surface under the minimal profile:
- Works end to end (Temporal + PostgreSQL + Redis): Parse, Extract, and Index — directory sync, export, retrieval, and chat against the
postgres(pgvector) index target. - Returns cause-coded 4xx errors instead of accepting work it cannot run: v1 parse, pipelines (the legacy pipeline API surface), retrieval over pipeline documents, and the
mongodbindex export destination.
The minimal preset pins the default index destination to postgres; the vector-store connection inherits your inline postgresql.* values automatically (see Index Configuration for details and the pgvector requirement).
External Dependency Configuration
Section titled “External Dependency Configuration”To connect your LlamaCloud deployment to an external dependency, configure the necessary sections in your values.yaml file.
postgresql: host: "postgresql" port: "5432" database: "llamacloud" username: "llamacloud" password: "llamacloud"
mongodb: host: "mongodb" port: "27017" username: "root" password: "password"
rabbitmq: scheme: "amqp" host: "rabbitmq" port: "5672" username: "guest" password: "guest"
redis: scheme: "redis" host: "redis-master" port: "6379" db: 0
# Deploy Temporal as a subchart (host/port auto-configured)temporal: deploy: true
# Temporal subchart configuration.# The Temporal store password comes from your postgresql.password —# the chart generates the temporal-postgresql-secret automatically.temporal-subchart: server: config: persistence: defaultStore: default visibilityStore: visibility datastores: default: sql: connectAddr: "<postgresql-host>:5432" databaseName: temporal user: <username> visibility: sql: connectAddr: "<postgresql-host>:5432" databaseName: temporal_visibility user: <username>postgresql: host: "postgresql" port: "5432" database: "llamacloud" username: "llamacloud" password: "llamacloud"
mongodb: host: "mongodb" port: "27017" username: "root" password: "password"
rabbitmq: scheme: "amqp" host: "rabbitmq" port: "5672" username: "guest" password: "guest"
redis: scheme: "redis" host: "redis-master" port: "6379" db: 0
# Use an existing external Temporal deploymenttemporal: deploy: false host: temporal-frontend port: 7233The examples below install each store with the Bitnami Helm charts.
Example Postgresql Configuration
Section titled “Example Postgresql Configuration”Example Postgresql installation:
helm upgrade --install postgresql \ oci://registry-1.docker.io/bitnamicharts/postgresql \ -f postgresql.yaml --wait --timeout 10mimage: registry: docker.io repository: bitnamilegacy/postgresql
auth: enabled: true database: llamacloud username: llamacloud password: llamacloud
## Ref: https://github.com/bitnami/charts/blob/main/bitnami/postgresql/values.yaml#L481primary: resources: requests: cpu: 250m memory: 128Mi limits: cpu: 250m memory: 256Mi
global: security: allowInsecureImages: true
resourcesPreset: microExample MongoDB Configuration
Section titled “Example MongoDB Configuration”Example MongoDB installation:
helm upgrade --install \ mongodb oci://registry-1.docker.io/bitnamicharts/mongodb \ -f mongodb.yaml --wait --timeout 10mimage: registry: ghcr.io repository: xavidop/mongodb tag: '7.0'
auth: enabled: true rootUser: root rootPassword: password
global: security: allowInsecureImages: true
resourcesPreset: microExample Redis Configuration
Section titled “Example Redis Configuration”Example Redis installation:
helm upgrade --install redis \ oci://registry-1.docker.io/bitnamicharts/redis \ -f redis.yaml --wait --timeout 10mimage: registry: docker.io repository: bitnamilegacy/redis
auth: enabled: false #password: "password"
tls: enabled: false
architecture: standalone
global: security: allowInsecureImages: true
resourcesPreset: microExample RabbitMQ Configuration
Section titled “Example RabbitMQ Configuration”Example RabbitMQ installation:
helm upgrade --install rabbitmq \ oci://registry-1.docker.io/bitnamicharts/rabbitmq \ -f rabbitmq.yaml --wait --timeout 10mimage: registry: docker.io repository: bitnamilegacy/rabbitmq digest: sha256:8a36cf44a55be2ae25cafa0376b89041412c50bbcab9fa0109713d60b2ec06fb
global: security: allowInsecureImages: true
auth: username: guest password: guest erlangCookie: secretcookie
resourcesPreset: microExample Temporal Configuration
Section titled “Example Temporal Configuration”LlamaCloud supports two approaches for deploying Temporal:
Option 1: Deploy Temporal as a Subchart (Recommended)
Section titled “Option 1: Deploy Temporal as a Subchart (Recommended)”The simplest way to deploy Temporal is as a subchart within LlamaCloud. This approach automatically configures the Temporal host and port for LlamaCloud services.
In your values.yaml, set temporal.deploy: true and configure the temporal-subchart section:
# Deploy Temporal as a subcharttemporal: deploy: true
# Temporal subchart configurationtemporal-subchart: serviceAccount: create: true name: temporal-server
web: additionalEnv: - name: TEMPORAL_CSRF_COOKIE_INSECURE value: "true" service: port: 80
server: config: persistence: defaultStore: default visibilityStore: visibility datastores: default: sql: driverName: postgres12 pluginName: postgres12 connectAddr: "<postgresql-host>:5432" connectProtocol: tcp databaseName: temporal user: <username> maxConns: 20 maxIdleConns: 20 maxConnLifetime: "1h"
visibility: sql: driverName: postgres12 pluginName: postgres12 connectAddr: "<postgresql-host>:5432" connectProtocol: tcp databaseName: temporal_visibility user: <username> # createDatabase/manageSchema default to true in the LlamaCloud chart, # so the schema job provisions the databases and schema automatically. maxConns: 20 maxIdleConns: 20 maxConnLifetime: "1h"Option 2: Use an External Temporal Deployment
Section titled “Option 2: Use an External Temporal Deployment”If you already have a Temporal deployment or prefer to manage Temporal separately, you can connect LlamaCloud to an external Temporal instance.
First, install Temporal separately:
helm install --repo https://go.temporal.io/helm-charts \ temporal temporal -f temporal.yamlserviceAccount: create: true name: temporal-server
web: additionalEnv: - name: TEMPORAL_CSRF_COOKIE_INSECURE value: "true" service: port: 80
server: config: namespaces: create: true persistence: defaultStore: default visibilityStore: visibility datastores: default: sql: driverName: postgres12 pluginName: postgres12 connectAddr: "<hostname>:5432" connectProtocol: tcp databaseName: temporal user: <username> password: <password> # Have the chart's schema job create the database and manage the schema. createDatabase: true manageSchema: true maxConns: 20 maxIdleConns: 20 maxConnLifetime: "1h"
visibility: sql: driverName: postgres12 pluginName: postgres12 connectAddr: "<hostname>:5432" connectProtocol: tcp databaseName: temporal_visibility user: <username> password: <password> createDatabase: true manageSchema: true maxConns: 20 maxIdleConns: 20 maxConnLifetime: "1h"Then configure LlamaCloud to connect to your external Temporal:
# LlamaCloud values.yamltemporal: deploy: false host: temporal-frontend # Your Temporal frontend service name port: 7233Connecting to the Temporal datastore over TLS
Section titled “Connecting to the Temporal datastore over TLS”If your SQL datastore requires TLS — common with managed databases such as Amazon RDS, Azure Database for PostgreSQL, or Cloud SQL — enable TLS on each Temporal datastore under persistence.datastores.<store>.sql.tls and mount the certificate files into the Temporal pods. The example below uses the bundled subchart (temporal.deploy: true); the same server / admintools structure applies to an external Temporal deployment.
1. Create a Secret with your certificates
Section titled “1. Create a Secret with your certificates”Create a Kubernetes Secret in the release namespace holding at least the CA bundle (add a client cert/key only if your database requires mutual TLS):
kubectl create secret generic temporal-db-tls -n <namespace> \ --from-file=ca.pem=./ca.pem# For mutual TLS, also add:# --from-file=client.pem=./client.pem \# --from-file=client-key.pem=./client-key.pem2. Enable TLS on both datastores and mount the certs
Section titled “2. Enable TLS on both datastores and mount the certs”temporal: deploy: true
temporal-subchart: server: config: persistence: defaultStore: default visibilityStore: visibility datastores: default: sql: connectAddr: "postgresql:5432" databaseName: temporal user: <username> tls: enabled: true caFile: /etc/temporal/tls/ca.pem enableHostVerification: true serverName: <db-hostname-in-cert> # must match the DB certificate SAN # For mutual TLS, also set: # certFile: /etc/temporal/tls/client.pem # keyFile: /etc/temporal/tls/client-key.pem visibility: sql: connectAddr: "postgresql:5432" databaseName: temporal_visibility user: <username> tls: enabled: true caFile: /etc/temporal/tls/ca.pem enableHostVerification: true serverName: <db-hostname-in-cert>
# Mount the cert Secret into the running Temporal server pods additionalVolumes: - name: temporal-db-tls secret: secretName: temporal-db-tls additionalVolumeMounts: - name: temporal-db-tls mountPath: /etc/temporal/tls readOnly: true
# Mount it into admintools as well — see the caution below. admintools: additionalVolumes: - name: temporal-db-tls secret: secretName: temporal-db-tls additionalVolumeMounts: - name: temporal-db-tls mountPath: /etc/temporal/tls readOnly: trueSet serverName to the hostname in your database’s server certificate (its SAN), and keep enableHostVerification: true for production — only disable host verification when testing against self-signed certificates.
Complete Configuration Reference
Section titled “Complete Configuration Reference”For the most up-to-date and comprehensive configuration options, refer directly to our Helm repository:
- Complete values.yaml reference - Full configuration options with detailed comments
- External dependencies example - Complete working example for external dependencies
- Helm chart documentation - Generated documentation with all configuration parameters