Skip to content

Commit 0b51602

Browse files
author
Android-16
committed
feat: add ChromaDB extension (Wave 1, Light-Heart-Labs#5 priority)
1 parent ae4e6e4 commit 0b51602

3 files changed

Lines changed: 113 additions & 0 deletions

File tree

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
# ChromaDB Extension for Dream Server
2+
3+
## Overview
4+
5+
ChromaDB is an AI-native open-source vector database designed for building embeddings-based applications with a focus on developer productivity and ease of use.
6+
7+
## Features
8+
9+
- Vector search with metadata filtering
10+
- Multiple embedding functions support
11+
- Persistent storage for embeddings and metadata
12+
- REST API for easy integration
13+
- GPU acceleration not required (CPU-based)
14+
15+
## Usage
16+
17+
### Enable the extension
18+
19+
```bash
20+
dream extensions enable chromadb
21+
```
22+
23+
### Access the API
24+
25+
```
26+
http://localhost:${CHROMADB_PORT:-8000}
27+
```
28+
29+
### Health Check
30+
31+
```bash
32+
curl http://localhost:8000/api/v1/heartbeat
33+
```
34+
35+
## Integration
36+
37+
ChromaDB integrates with:
38+
- **n8n workflows** — Vector search and storage nodes
39+
- **Custom applications** — Direct HTTP API access
40+
- **Embeddings service** — Store and query vector embeddings
41+
42+
## API Examples
43+
44+
### Create a collection
45+
```bash
46+
curl -X POST http://localhost:8000/api/v1/collections \
47+
-H "Content-Type: application/json" \
48+
-d '{"name": "my_collection"}'
49+
```
50+
51+
### Add embeddings
52+
```bash
53+
curl -X POST http://localhost:8000/api/v1/collections/my_collection/add \
54+
-H "Content-Type: application/json" \
55+
-d '{
56+
"ids": ["doc1", "doc2"],
57+
"embeddings": [[0.1, 0.2, ...], [0.3, 0.4, ...]],
58+
"metadatas": [{"source": "doc1"}, {"source": "doc2"}]
59+
}'
60+
```
61+
62+
## Uninstall
63+
64+
```bash
65+
dream extensions disable chromadb
66+
```
67+
68+
This removes the container. Your data in `./data/chromadb/` is preserved.
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
name: chromadb
2+
3+
services:
4+
chromadb:
5+
image: chromadb/chroma:v0.5.20
6+
container_name: chromadb
7+
ports:
8+
- "${CHROMADB_PORT:-8000}:8000"
9+
volumes:
10+
- ./data/chromadb:/chromadb
11+
environment:
12+
- CHROMA_DB_ANSI_COLOR_ENABLED=true
13+
- LLM_API_URL=${LLM_API_URL:-http://localhost:8000}
14+
restart: unless-stopped
15+
healthcheck:
16+
test: ["CMD", "wget", "-q", "--spider", "http://localhost:8000/api/v1/heartbeat"]
17+
interval: 30s
18+
timeout: 10s
19+
retries: 3
20+
start_period: 60s
21+
networks:
22+
- dream-network
23+
24+
networks:
25+
dream-network:
26+
external: true
27+
name: dream-network
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
name: chromadb
2+
version: "1.0.0"
3+
description: ChromaDB - The AI-native vector database
4+
category: database
5+
authors:
6+
- chromadb
7+
website: https://chromadb.com/
8+
image: chromadb/chroma:v0.5.20
9+
gpu: [amd, nvidia]
10+
port: 8000
11+
data:
12+
- ./data/chromadb:/chromadb
13+
healthcheck:
14+
- wget -q --spider http://localhost:8000/api/v1/heartbeat
15+
env:
16+
- LLM_API_URL
17+
dependencies: []
18+
tags: [database, vector, ai]

0 commit comments

Comments
 (0)