Skip to main content

Overview

Obot Architecture

Obot is a complete platform for building and running agents. The main components are:

  • Obot server
  • Postgres database
  • Caching directory

Obot stores its data under the /data path. If you are not using an external Postgres database, that data will also be under /data.

Production Considerations

For a production setup you will want to use an external Postgres database and configure encryption for your Obot data.

System requirements

Minimum

We recommend the following for local testing:

  • 2GB of RAM
  • 1 CPU core
  • 10GB of disk space
  • 4GB of RAM
  • 2 CPU cores
  • 10GB of disk space

Installation Methods

Helm

If you would like to install Obot on a Kubernetes cluster, you can use the Helm chart. We are currently working on the Helm chart and have made it available for testing here: obot-helm

Reference Production Deployment

For a production-grade deployment of Obot, we should have the following infrastructure:

  • A Postgres database
  • An S3-compatible bucket for workspace storage
  • A Cloud KMS provider for encrypting sensitive/secret information

The helm chart has mostly sane production default settings, but you will need to configure the database, workspace provider, and encryption provider.

# 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>
OPENAI_API_KEY: <openai api key>

Next Steps