Kubernetes Deployment
Deploy Obot on Kubernetes for production-grade reliability, scalability, and high availability.
Prerequisites
- Helm
- PostgreSQL 17+ with pgvector extension
- S3-compatible storage (for production)
- Encryption provider (AWS KMS, GCP KMS, or Azure Key Vault recommended)
Minimum Cluster Requirements
- Nodes: 1+ nodes
- CPU: 2 cores
- Memory: 4GB
Recommended Cluster Requirements
- HA Cluster
- CPU: 4 cores for Obot
- Memory: 8GB for Obot
Helm Installation
Obot provides a Helm chart for easy deployment here.
The chart has sane defaults for a test cluster.
Production Installation
Create a values.yaml file with your production configuration:
# Enable ingress or use a service of type loadbalancer to expose Obot
ingress:
enabled: true
hosts:
- <your obot hostname>
# This can be turned off because we are persisting data externally in postgres and S3
persistence:
enabled: false
# In this example, we will be using S3 and AWS KMS for encryption
config:
# this should have IAM permissions for S3 and KMS
AWS_ACCESS_KEY_ID: <access key>
AWS_SECRET_ACCESS_KEY: <secret key>
AWS_REGION: <aws region>
# This should be set to avoid ratelimiting certain actions that interact with github, such as catalogs
GITHUB_AUTH_TOKEN: <PAT from github>
# Enable encryption
OBOT_SERVER_ENCRYPTION_PROVIDER: aws
OBOT_AWS_KMS_KEY_ARN: <your kms arn>
# Enable S3 workspace provider
OBOT_WORKSPACE_PROVIDER_TYPE: s3
WORKSPACE_PROVIDER_S3_BUCKET: <s3 bucket name>
# optional - this will be generated automatically if you do not set it
OBOT_BOOTSTRAP_TOKEN: <some random value>
# Point this to your postgres database
OBOT_SERVER_DSN: postgres://<user>:<pass>@<host>/<db>
OBOT_SERVER_HOSTNAME: <your obot hostname>
# Setting these is optional, but you'll need to setup a model provider from the Admin UI before using chat.
# You can set either, neither or both.
OPENAI_API_KEY: <openai api key>
ANTHROPIC_API_KEY: <anthropic api key>
For detailed configuration options, see:
- Server Configuration - All available environment variables
- Workspace Provider - S3 storage configuration
- Encryption Providers - KMS encryption setup
Cloud-Specific Guides
For detailed cloud-specific deployment instructions:
- Google Kubernetes Engine (GKE)
- Amazon Elastic Kubernetes Service (EKS)
- Azure Kubernetes Service (AKS)
Next Steps
- Configure Authentication: Set up auth providers
- Add Model Providers: Configure model providers
- Set Up MCP Servers: Deploy MCP tools
- Configure Monitoring: Set up logging and metrics
- Review Security: Enable authentication and encryption