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 Pass the key as
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: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 (embedded RocksDB) by default —
persisted in
/app/cyborgdb_data inside the container, which
you’ll typically bind to a host volume.- Disk (default) — embedded RocksDB. Persistent, 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.
v0.17 collapsed the storage surface. The previous
standalone, postgres, and redis backends and the catch-all CYBORGDB_CONNECTION_STRING are gone — switch standalone → disk and use the new CYBORGDB_DISK_PATH / CYBORGDB_S3_* variables.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)
- Disk (default)
- Memory
- S3 (AWS)
- S3 (MinIO / R2)
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 hostbecause Docker runs natively and can directly access the host network - macOS uses
-p 8000:8000andhost.docker.internalbecause Docker runs in a VM and needs port mapping
5
Run with Docker Compose (Recommended)
For a reproducible setup, use Docker Compose:
- Disk (default)
- S3 (AWS)
- S3 (MinIO)
Create a Then run:
docker-compose.yml file: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
Advanced Configuration
For production deployments, consider these additional configurations:
- Environment Variables
- HTTPS Configuration
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.8
Next Steps
Now that your CyborgDB service is running, you can interact with it using client SDKs:Install Client SDKs:
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
Technical Specifications
Technical Specifications
- 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
Comparison with Python Service
Comparison with Python Service