Self-hosting Chroma the easy way

Self-hosting Chroma the easy way

Yulei Chen - Content-Engineerin bei sliplane.ioYulei Chen
7 min

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

SliplaneChroma deployen >
  1. Klick auf den Deploy-Button oben
  2. Wähl ein Projekt aus
  3. Wähl einen Server aus (bei Neuanmeldung bekommst du einen 48-Stunden-Testserver gratis)
  4. Klick auf Deploy!

Über das Preset

Das One-Click-Deploy oben nutzt Sliplane's Chroma Preset. Das ist enthalten:

  • Offizielles chromadb/chroma Docker-Image (Version 1.5.9)
  • Persistenter Storage unter /data, damit deine Embeddings Neustarts überleben
  • IS_PERSISTENT auf TRUE gesetzt 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:

VariableDefaultBeschreibung
IS_PERSISTENTTRUEPersistenten Storage aktivieren
PERSIST_DIRECTORY/dataWo 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_TELEMETRYFALSESetz 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:

VariableWert
CHROMA_SERVER_AUTHN_PROVIDERchromadb.auth.token_authn.TokenAuthenticationServerProvider
CHROMA_SERVER_AUTHN_CREDENTIALSdein-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:

AnbietervCPURAMDiskMonatliche KostenHinweis
Sliplane22 GB40 GB€9 (~$10.65)Flatrate, 1 TB Bandwidth, SSL inklusive
Fly.io22 GB40 GB~$18Disk und Bandwidth separat abgerechnet
Render12 GB40 GB~$35100 GB Bandwidth, Disk separat abgerechnet
Railway22 GB40 GB~$67 + $20 PlanPro-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-2x 2 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.

Hoste Chroma selbst - ganz einfach!

Sliplane gibt dir alles, was du brauchst, um Chroma ohne Server-Stress zu betreiben.