Zum Inhalt springen

Qdrant selbst hosten (Docker Compose)

Admin

Wer die kostenlose bzw. Evaluierungs-Version von CompanyWizard nutzt, kann eine eigene Qdrant-Vektordatenbank per Docker betreiben und so die hochwertige semantische Suche freischalten. Diese Seite liefert ein fertiges, best-practice-geprüftes Compose-Setup. Wie Sie die laufende Instanz danach in der App hinterlegen, beschreibt Qdrant einrichten; wann sich Qdrant lohnt, erklärt RAG & Suche.

Legen Sie einen Ordner an (z. B. qdrant/) und darin folgende docker-compose.yaml:

services:
qdrant:
# Version PINNEN statt :latest — sonst zieht ein späteres "up" eine andere
# Version und kann das On-Disk-Format ändern. Aktuelle stabile Version auf
# https://hub.docker.com/r/qdrant/qdrant/tags nachsehen.
image: qdrant/qdrant:v1.12.4
container_name: qdrant
restart: unless-stopped # kommt nach Reboot/Crash automatisch wieder
ports:
# Nur lokal erreichbar (Evaluierung/Einzelplatz). Für Zugriff aus dem Netz
# das "127.0.0.1:" entfernen UND einen API-Key setzen (siehe unten).
- "127.0.0.1:6333:6333" # REST-API
- "127.0.0.1:6334:6334" # gRPC
volumes:
# Persistenz per Bind-Mount: Daten überleben Container-Neustarts.
- ./qdrant_storage:/qdrant/storage
environment:
# Leer = kein Schutz (ok rein lokal). Sobald über localhost hinaus
# erreichbar: in einer .env setzen — siehe Abschnitt „Absicherung".
- QDRANT__SERVICE__API_KEY=${QDRANT_API_KEY:-}

Starten:

Terminal-Fenster
docker compose up -d

Erreichbarkeit prüfen — die REST-API antwortet unter Port 6333, gRPC unter 6334:

Terminal-Fenster
curl http://localhost:6333/healthz # -> "healthz check passed"

Die Web-Oberfläche (Dashboard) erreichen Sie unter http://localhost:6333/dashboard.

Oben nutzen wir einen Bind-Mount (./qdrant_storage) — die Daten liegen sichtbar neben der Compose-Datei und sind leicht zu sichern. Alternativ ein von Docker verwaltetes Named Volume:

volumes:
- qdrant_data:/qdrant/storage
volumes:
qdrant_data:
driver: local

Qdrant hat standardmäßig keine Authentifizierung. Rein lokal (Ports an 127.0.0.1 gebunden) ist das vertretbar. Sobald die Instanz über localhost hinaus erreichbar ist:

  1. Einen API-Key in einer .env neben der Compose-Datei setzen:

    Terminal-Fenster
    QDRANT_API_KEY=ein-langes-zufaelliges-geheimnis
  2. Das 127.0.0.1:-Präfix bei den Ports entfernen (oder hinter einen TLS-Reverse-Proxy stellen).

Den gleichen API-Key tragen Sie anschließend in den Systemeinstellungen der App ein (wird dort verschlüsselt gespeichert).

In Administration → Systemeinstellungen → Qdrant hinterlegen Sie:

  • Endpoint — http://localhost:6333 (bzw. die erreichbare Adresse),
  • API-Schlüssel — falls gesetzt,
  • Collection-Name, Vektor-Dimension, Such-Limit, Mindest-Score.

Eine Testverbindung speichert die Werte und prüft die Erreichbarkeit. Details und die zugehörigen appsettings-Schlüssel: Qdrant einrichten.