Skip to main content
CyborgDB can be deployed as a Python service using pip installation. This approach provides a lightweight alternative to Docker, allowing you to run the CyborgDB service directly in your Python environment with full control over dependencies and configuration.
Looking to use Docker? Check out our Docker Quickstart Guide.

Overview

The Python service is ideal for developers who prefer managing Python environments directly, need custom dependency management, or want to integrate CyborgDB service into existing Python applications. It provides the same REST API functionality as the Docker version.
1

Get an API Key (Optional)

The service runs without an API key — leave CYBORGDB_API_KEY unset and the core engine starts in free-tier mode, capped at 1,000,000 items per index. Set it to lift that cap. Get a key from the CyborgDB Admin Dashboard, or generate a temporary demo key with any of the SDKs:
Pass the key as CYBORGDB_API_KEY when starting the service. This is the core license key, not a service-authentication credential — it does not gate access to the REST API.
Service authentication is separate and controlled by CYBORGDB_SERVICE_ROOT_KEY. Leave it unset (the default) and the service accepts all requests. Set it to require callers to send the root key — or a cdbk_ user token minted under it — in the X-API-Key header. See Managing Keys.
2

Check Prerequisites

Ensure you have the required Python version and environment tools:
  • Python: 3.10, 3.11, 3.12, 3.13, or 3.14
  • Package Manager: conda (recommended) or pip with virtual environment
While conda is mentioned in the build instructions, the wheel works with any Python environment manager including pip, pipenv, poetry, etc.
3

Choose Your Storage Backend (Optional)

The service ships with three storage backends. Skip this step and you get disk by default — the data directory is ~/.cyborgdb/data.
  • Disk (default) — persistent local disk. No external dependencies. Best for single-node deployments and edge devices.
  • S3 — AWS S3 or any S3-compatible store (MinIO, Cloudflare R2, …). Best for cloud-native and multi-node deployments.
  • Memory — in-process only, nothing persists across restarts. For tests and ephemeral indexes.
For full details, see the Backing Stores guide.
4

Install CyborgDB Service

Install the CyborgDB service package using conda and pip:
Using conda or a virtual environment is strongly recommended to avoid dependency conflicts with other Python packages.
5

Configure Environment Variables

Set the required environment variables for your deployment:
No environment variables are required — disk is the default and data goes to ~/.cyborgdb/data. Set these only to override the defaults:
Using a .env file is the most convenient method as it persists your configuration and keeps sensitive data out of your shell history.
For more information on environment variables, refer to this guide.
6

Start the Service

Run the CyborgDB service using the installed command:
The service will start and display startup information including:
  • Configured storage backend (memory, disk, or s3)
  • Server URL (default: http://localhost:8000)
  • Available API endpoints
For additional configuration options, run cyborgdb-service --help to see all available command-line arguments.
7

Verify Installation

Once the service is running, verify it’s working correctly:Health Check:
API Documentation: Navigate to http://localhost:8000/v1/docs to explore the interactive API documentation.You should see a response indicating the service is healthy and ready to accept requests.
8

Run Your First Query

With the service running, install the Python client and complete a full connect → index → upsert → query loop:
Python
Store index_key before you upsert any data. CyborgDB has no key-recovery path — data encrypted with a lost key is unrecoverable. For anything past evaluation, keep the key in AWS Secrets Manager, Vault, or your KMS. See Managing Keys.
index_key is a 32-byte per-index encryption key you generate and hold. It’s separate from CYBORGDB_API_KEY (the core license key) and CYBORGDB_SERVICE_ROOT_KEY (service authentication).
9

Advanced Configuration

For production deployments, consider these additional configurations:
None of these are required — the service starts with no configuration, using disk storage rooted at ~/.cyborgdb/data, free-tier licensing, and authentication disabled. For the full list (including S3 credentials and KMS), see the Environment Variables guide.
10

Next Steps

The Python client above is the fastest way to reach a first query. To integrate from another language, install the equivalent client SDK:

REST API Reference

Learn how to use the REST API for direct integration

Python SDK Reference

Learn how to use the Python SDK for direct integration

JS/TS SDK Reference

Learn how to use the JavaScript/TypeScript SDK for direct integration

Go SDK Reference

Learn how to use the Go SDK for direct integration
Both approaches provide identical CyborgDB functionality. Choose based on your deployment preferences and infrastructure requirements.