Skip to main content

Deploy Bytebot on Kubernetes with Helm

Helm provides a simple way to deploy Bytebot on Kubernetes clusters.

Prerequisites

  • Kubernetes cluster (1.19+)
  • Helm 3.x installed
  • kubectl configured
  • 8GB+ available memory in cluster

Quick Start

1

Clone Repository

git clone https://github.com/bytebot-ai/bytebot.git
cd bytebot
2

Configure API Keys

Create a values.yaml file with at least one API key:
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"
3

Install Bytebot

helm install bytebot ./helm \
  --namespace bytebot \
  --create-namespace \
  -f values.yaml
4

Access Bytebot

# Port-forward for local access
kubectl port-forward -n bytebot svc/bytebot-ui 9992:9992

# Access at http://localhost:9992

Basic Configuration

API Keys

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"

Resource Limits (Optional)

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"

External Access (Optional)

Enable ingress for domain-based access:
ui:
  ingress:
    enabled: true
    hostname: bytebot.your-domain.com
    tls: true

Accessing Bytebot

kubectl port-forward -n bytebot svc/bytebot-ui 9992:9992
Access at: http://localhost:9992

External Access

If you configured ingress:

Verifying Deployment

Check that all pods are running:
kubectl get pods -n bytebot
Expected 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

Troubleshooting

Pods Not Starting

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

Connection Issues

Test service connectivity:
kubectl logs -n bytebot deployment/bytebot-agent

View Logs

# All logs
kubectl logs -n bytebot -l app=bytebot --tail=100

# Specific component
kubectl logs -n bytebot deployment/bytebot-agent

Upgrading

# Update your values.yaml as needed, then:
helm upgrade bytebot ./helm -n bytebot -f values.yaml

Uninstalling

# Remove Bytebot
helm uninstall bytebot -n bytebot

# Clean up namespace
kubectl delete namespace bytebot

Advanced Configuration

If using Kubernetes secret management (Vault, Sealed Secrets, etc.):
bytebot-agent:
  apiKeys:
    anthropic:
      useExisting: true
      secretName: "my-api-keys"
      secretKey: "anthropic-key"
Create the secret manually:
kubectl create secret generic my-api-keys \
  --namespace bytebot \
  --from-literal=anthropic-key="sk-ant-your-key"
For centralized LLM management, use the included LiteLLM proxy:
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
Configure persistent storage:
desktop:
  persistence:
    enabled: true
    size: "20Gi"
    storageClass: "fast-ssd"

postgresql:
  persistence:
    size: "20Gi"
    storageClass: "fast-ssd"
# Network policies
networkPolicy:
  enabled: true

# Pod security
podSecurityContext:
  runAsNonRoot: true
  runAsUser: 1000
  fsGroup: 1000

# Enable authentication
auth:
  enabled: true
  type: "basic"
  username: "admin"
  password: "changeme"  # Use secrets in production!

Next Steps

API Reference

Integrate Bytebot with your applications

LiteLLM Integration

Use any LLM provider with Bytebot
Need help? Join our Discord community or check our GitHub discussions.