| title | Helm Deployment |
|---|---|
| description | Deploy Bytebot on Kubernetes using Helm charts |
Helm provides a simple way to deploy Bytebot on Kubernetes clusters.
- Kubernetes cluster (1.19+)
- Helm 3.x installed
- kubectl configured
- 8GB+ available memory in cluster
```yaml
bytebot-agent:
apiKeys:
anthropic:
value: "sk-ant-your-key-here"
# Optional: Add more providers
# openai:
# value: "sk-your-key-here"
# gemini:
# value: "your-key-here"
```
# Access at http://localhost:9992
```
Configure at least one AI provider:
bytebot-agent:
apiKeys:
anthropic:
value: "sk-ant-your-key-here"
openai:
value: "sk-your-key-here"
gemini:
value: "your-key-here"Adjust resources based on your needs:
# Desktop container (where automation runs)
desktop:
resources:
requests:
memory: "2Gi"
cpu: "1"
limits:
memory: "4Gi"
cpu: "2"
# Agent (AI orchestration)
agent:
resources:
requests:
memory: "1Gi"
cpu: "500m"Enable ingress for domain-based access:
ui:
ingress:
enabled: true
hostname: bytebot.your-domain.com
tls: truekubectl port-forward -n bytebot svc/bytebot-ui 9992:9992Access at: http://localhost:9992
If you configured ingress:
- Access at: https://bytebot.your-domain.com
Check that all pods are running:
kubectl get pods -n bytebotExpected output:
NAME READY STATUS RESTARTS AGE
bytebot-agent-xxxxx 1/1 Running 0 2m
bytebot-desktop-xxxxx 1/1 Running 0 2m
bytebot-postgresql-0 1/1 Running 0 2m
bytebot-ui-xxxxx 1/1 Running 0 2m
Check pod status:
kubectl describe pod -n bytebot <pod-name>Common issues:
- Insufficient memory/CPU: Check node resources with
kubectl top nodes - Missing API keys: Verify your values.yaml configuration
Test service connectivity:
kubectl logs -n bytebot deployment/bytebot-agent# All logs
kubectl logs -n bytebot -l app=bytebot --tail=100
# Specific component
kubectl logs -n bytebot deployment/bytebot-agent# Update your values.yaml as needed, then:
helm upgrade bytebot ./helm -n bytebot -f values.yaml# Remove Bytebot
helm uninstall bytebot -n bytebot
# Clean up namespace
kubectl delete namespace bytebot```yaml
bytebot-agent:
apiKeys:
anthropic:
useExisting: true
secretName: "my-api-keys"
secretKey: "anthropic-key"
```
Create the secret manually:
```bash
kubectl create secret generic my-api-keys \
--namespace bytebot \
--from-literal=anthropic-key="sk-ant-your-key"
```
```bash
helm install bytebot ./helm \
-f values-proxy.yaml \
--namespace bytebot \
--create-namespace \
--set bytebot-llm-proxy.env.ANTHROPIC_API_KEY="your-key"
```
This provides:
- Centralized API key management
- Request routing and load balancing
- Rate limiting and retry logic
```yaml
desktop:
persistence:
enabled: true
size: "20Gi"
storageClass: "fast-ssd"
postgresql:
persistence:
size: "20Gi"
storageClass: "fast-ssd"
```
# Pod security
podSecurityContext:
runAsNonRoot: true
runAsUser: 1000
fsGroup: 1000
# Enable authentication
auth:
enabled: true
type: "basic"
username: "admin"
password: "changeme" # Use secrets in production!
```