
Self-hosting Chroma the easy way
Yulei ChenChroma ist die Open-Source Vector-Datenbank für AI-Anwendungen. Sie kümmert sich um Embeddings, semantische Suche und Retrieval - und ist damit eine beliebte Wahl für RAG-Pipelines, Chatbots und Empfehlungssysteme. Managed Vector-Datenbank-Services können schnell teuer werden, besonders wenn deine Daten wachsen.
Sliplane ist eine managed Container-Plattform, die Self-Hosting einfach macht. Mit One-Click-Deployment hast du Chroma in wenigen Minuten am Laufen - kein Server-Setup, kein Reverse Proxy, keine Infrastruktur zum Verwalten.
Voraussetzungen
Vor dem Deployment brauchst du einen Sliplane Account (kostenlose Testphase verfügbar).
Schnellstart
Sliplane bietet One-Click-Deployment mit Presets.
- Klick auf den Deploy-Button oben
- Wähl ein Projekt aus
- Wähl einen Server aus (bei Neuanmeldung bekommst du einen 48-Stunden-Testserver gratis)
- Klick auf Deploy!
Über das Preset
Das One-Click-Deploy oben nutzt Sliplane's Chroma Preset. Das ist enthalten:
- Offizielles
chromadb/chromaDocker-Image (Version 1.5.9) - Persistenter Storage unter
/data, damit deine Embeddings Neustarts überleben IS_PERSISTENTaufTRUEgesetzt für dauerhaften Speichermodus- HTTP Health Check über
/api/v2/heartbeat - Lauscht auf Port 8000
- Telemetrie standardmäßig deaktiviert
Chroma stellt eine REST API bereit. Nach dem Deployment kannst du sofort Collections erstellen und Embeddings hinzufügen - aus jeder Sprache oder jedem Framework, das HTTP spricht.
Nächste Schritte
Nach dem Deployment erreichst du Chroma über die von Sliplane bereitgestellte Domain (z.B. chroma-xxxx.sliplane.app). Chroma hat standardmäßig kein Web-UI - es ist eine API-first Datenbank. Du interagierst über die REST API oder einen der offiziellen Client-Libraries.
Mit Chroma verbinden
Nutz den Python Client:
import chromadb
client = chromadb.HttpClient(host="chroma-xxxx.sliplane.app", port=443, ssl=True)
collection = client.get_or_create_collection("my-collection")
Oder den JavaScript Client:
import { ChromaClient } from "chromadb";
const client = new ChromaClient({ path: "https://chroma-xxxx.sliplane.app" });
const collection = await client.getOrCreateCollection({ name: "my-collection" });
Ersetze chroma-xxxx.sliplane.app durch deine tatsächliche Sliplane-Domain.
Umgebungsvariablen
Hier sind nützliche Umgebungsvariablen, die du in deinen Sliplane-Service-Einstellungen anpassen kannst:
| Variable | Default | Beschreibung |
|---|---|---|
IS_PERSISTENT | TRUE | Persistenten Storage aktivieren |
PERSIST_DIRECTORY | /data | Wo Chroma Daten speichert |
CHROMA_SERVER_AUTHN_PROVIDER | (keiner) | Setz auf chromadb.auth.token_authn.TokenAuthenticationServerProvider für Token-Auth |
CHROMA_SERVER_AUTHN_CREDENTIALS | (keiner) | Das Auth-Token bei aktivierter Token-Auth |
ANONYMIZED_TELEMETRY | FALSE | Setz auf TRUE um Telemetrie wieder zu aktivieren |
Authentifizierung aktivieren
Standardmäßig läuft Chroma ohne Authentifizierung. Für den Produktionseinsatz solltest du tokenbasierte Auth aktivieren. Füg diese Umgebungsvariablen in deinen Sliplane-Service-Einstellungen hinzu:
| Variable | Wert |
|---|---|
CHROMA_SERVER_AUTHN_PROVIDER | chromadb.auth.token_authn.TokenAuthenticationServerProvider |
CHROMA_SERVER_AUTHN_CREDENTIALS | dein-geheimer-token |
Dann übergib den Token in deinem Client:
client = chromadb.HttpClient(
host="chroma-xxxx.sliplane.app",
port=443,
ssl=True,
headers={"Authorization": "Bearer dein-geheimer-token"}
)
Logging
Chroma loggt standardmäßig nach STDOUT, was super mit Sliplane's eingebautem Log-Viewer funktioniert. Für allgemeine Docker-Log-Tipps schau dir unseren Post zu Docker Logs an.
Kostenvergleich
Du kannst Chroma auch bei anderen Cloud-Anbietern self-hosten. Hier ein Preisvergleich der gängigsten Anbieter:
| Anbieter | vCPU | RAM | Disk | Monatliche Kosten | Hinweis |
|---|---|---|---|---|---|
| Sliplane | 2 | 2 GB | 40 GB | €9 (~$10.65) | Flatrate, 1 TB Bandwidth, SSL inklusive |
| Fly.io | 2 | 2 GB | 40 GB | ~$18 | Disk und Bandwidth separat abgerechnet |
| Render | 1 | 2 GB | 40 GB | ~$35 | 100 GB Bandwidth, Disk separat abgerechnet |
| Railway | 2 | 2 GB | 40 GB | ~$67 + $20 Plan | Pro-Plan-Minimum, nutzungsbasiert, Bandwidth separat |
Klick hier um die Berechnung zu sehen.
(Angenommen eine dauerhaft laufende Instanz mit 730 Std/Monat)
- Sliplane: pauschal €9/Monat für den Base Server. Unbegrenzte Services auf dem gleichen Server, 1 TB Egress und SSL inklusive.
- Fly.io:
shared-cpu-2x2 GB = $11.83/Mo + 40 GB Volume × $0.15/GB = $6 -> ~$17.83/Mo. Egress separat ($0.02/GB in EU). - Render: nächste Übereinstimmung ist Standard ($25, 1 vCPU / 2 GB) plus 40 GB Disk × $0.25/GB = $10 -> ~$35/Mo. Upgrade auf Pro (2 vCPU / 4 GB) kostet $85/Mo + Disk.
- Railway (Pro Plan): CPU 2 × $0.00000772/s × 2,628,000 s = $40.57; RAM 2 × $0.00000386/s × 2,628,000 s = $20.29; Volume 40 × $0.00000006/s × 2,628,000 s = $6.31 -> ~$67/Mo Compute, plus $20/Mo Pro-Plan-Minimum und $0.05/GB Egress.
Bandwidth-Kosten können bei nutzungsbasierten Anbietern schnell explodieren. Nutz unser Bandwidth-Kostenvergleichstool um zu sehen, was dein Egress bei den verschiedenen Plattformen kosten würde.
FAQ
Wofür wird Chroma verwendet?
Chroma ist eine Vector-Datenbank für AI-Anwendungen. Sie speichert Embeddings (Vektor-Repräsentationen von Text, Bildern oder anderen Daten) und ermöglicht schnelle Ähnlichkeitssuchen. Typische Anwendungsfälle sind Retrieval-Augmented Generation (RAG), semantische Suche, Empfehlungssysteme und Chatbot-Memory. Wenn du irgendetwas mit LLMs baust, das Dokumente durchsuchen muss, ist Chroma eine solide Wahl. Es lässt sich gut mit Tools wie Langflow oder AnythingLLM kombinieren.
Wie konfiguriere ich Authentifizierung?
Standardmäßig läuft Chroma ohne Authentifizierung. Um tokenbasierte Auth zu aktivieren, setz CHROMA_SERVER_AUTHN_PROVIDER auf chromadb.auth.token_authn.TokenAuthenticationServerProvider und CHROMA_SERVER_AUTHN_CREDENTIALS auf einen geheimen Token. Übergib diesen Token dann im Authorization-Header deines Clients. Mehr Details im Abschnitt Authentifizierung aktivieren.
Wie update ich Chroma?
Ändere den Image-Tag in deinen Sliplane-Service-Einstellungen und deploye neu. Auf Docker Hub findest du die neueste stabile Version. Deine Daten liegen auf einem persistenten Volume und überleben das Update.
Gibt es Alternativen zu Chroma?
Ja. Qdrant ist eine weitere beliebte Open-Source Vector-Datenbank mit starkem Fokus auf Performance und Filtering. Weaviate bietet eingebaute Vektorisierungsmodule. Milvus ist für große Produktions-Workloads ausgelegt. Wenn du nur einfache Vektorsuche brauchst, unterstützen auch traditionelle Datenbanken wie PostgreSQL (mit pgvector) das.
Kann ich Chroma mit anderen AI-Tools auf Sliplane verwenden?
Auf jeden Fall. Du kannst Chroma zusammen mit anderen AI-Services auf dem gleichen Sliplane-Server betreiben. Kombinier es zum Beispiel mit Langflow für visuelles AI-Workflow-Building oder verbinde es mit Open WebUI für ein Chat-Interface mit RAG-Funktionalität. Da alle Services auf dem gleichen Server ein internes Netzwerk teilen, kannst du sie über interne Hostnames wie chroma.internal:8000 verbinden.