Skip to main content
CyborgDB can be deployed as a standalone microservice using Docker. This allows you to run a fully self-contained encrypted vector search service on your own infrastructure with minimal setup. The service exposes a REST API for integration with any stack.
Looking to use the Python service? Check out our Python Quickstart Guide.

Overview

The Docker service is ideal for teams looking to self-host CyborgDB in cloud, on-prem, or containerized environments.
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

Choose Your Storage Backend (Optional)

The container ships with three storage backends. Skip this step and you get disk by default — persisted in /app/cyborgdb_data inside the container, which you’ll typically bind to a host volume.
  • Disk (default) — persistent local disk, no external dependencies.
  • S3 — AWS S3 or any S3-compatible store (MinIO, Cloudflare R2, …). Best for cloud-native and multi-replica deployments.
  • Memory — in-process only, nothing persists across restarts. For tests and ephemeral indexes.
For full details, see the Backing Stores guide.
3

Pull the Docker Image

The CyborgDB service is available as a Docker image. You can pull it from Docker Hub:
This image contains everything you need to run the CyborgDB service, including all dependencies and configurations.
4

Run with Docker (Quick Start)

Inside the container the disk path defaults to /app/cyborgdb_data — the -v mount above is what makes the data survive container recreation. Add -e CYBORGDB_API_KEY=… to lift the free-tier 1M-items-per-index cap.
Platform Differences:
  • Linux uses --network host because Docker runs natively and can directly access the host network
  • macOS uses -p 8000:8000 and host.docker.internal because Docker runs in a VM and needs port mapping
5

Run with Docker Compose (Recommended)

For a reproducible setup, use Docker Compose:
Create a docker-compose.yml file:
Then run:
6

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.
7

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).
8

Advanced Configuration

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

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
  • Base Image: python:3.11-slim
  • Python Version: 3.11
  • PyTorch: CPU-optimized for maximum compatibility
  • Docker Image Size: ~1.8GB
  • Platform: linux/amd64, linux/arm64
  • Default Port: 8000
Both approaches provide identical CyborgDB functionality. Choose based on your deployment preferences and infrastructure requirements.