id: qdrant
name: "Qdrant"
version: "1.0"
description: "Vektordatenbank für KI-Embeddings und semantische Suche"
category: infrastructure

links:
  homepage: "https://qdrant.tech/"
  docs: "https://qdrant.tech/documentation/"
  github: "https://github.com/qdrant/qdrant"
  download: "https://hub.docker.com/r/haktansuren/qdrant-pi5-fixed-jemalloc"

image:
  name: "haktansuren/qdrant-pi5-fixed-jemalloc"
  tag: "latest"

ports:
  - host: 8107
    container: 6333
    protocol: tcp
    description: "HTTP API + Web UI (Dashboard)"

  - host: 8108
    container: 6334
    protocol: tcp
    description: "gRPC API"

volumes:
  - host: "/opt/appctl/data/qdrant"
    container: "/qdrant/storage"
    description: "Vektoren, Collections und Snapshots"

environment:
  - key: "QDRANT__SERVICE__API_KEY"
    value: "${QDRANT_API_KEY}"

secrets:
  - key: "QDRANT_API_KEY"
    description: "API Key für Qdrant (schützt API + Web UI)"
    required: true
    generate: "api_key"

depends_on: []

post_install:
  messages:
    - "Qdrant laeuft auf http://itbox.local:8107"
    - "Web UI: http://itbox.local:8107/dashboard (API Key wird abgefragt)"
    - "API Key anzeigen: sudo cat /opt/appctl/compose/.env | grep QDRANT_API_KEY"
    - "HTTP API: http://itbox.local:8107 (Header: api-key)"
    - "gRPC API: itbox.local:8108"
    - "Optimiert fuer Raspberry Pi 5 (jemalloc-Fix)"

  ports_info:
    - port: 8107
      protocol: tcp
      description: "HTTP API + Dashboard - Für Tunnel: sudo tnl add qdrant 8107"

resources:
  ram_mb: 512
  cpu_cores: 0.5
  disk_mb: 100

warnings:
  - "API Key wird bei jedem Zugriff (API + Web UI) abgefragt"
  - "Fuer TLS-verschluesselte Verbindungen Reverse-Proxy nutzen"
  - "Nutzt spezielles Raspberry Pi 5 Image (jemalloc-Fix)"
