No description
  • Shell 54.6%
  • Jinja 45.4%
Find a file
Kevin Heyer 02b3dd95db
All checks were successful
/ lint (push) Successful in 3m45s
Add Qdrant as LXC and Docker app
Qdrant from the GitHub releases (glibc build, x86_64) plus the web UI
from qdrant/qdrant-web-ui. Qdrant publishes no checksum files, so both
downloads are verified against the SHA-256 digest GitHub reports for the
release asset. REST API/web UI on 6333 and gRPC on 6334 (private), with a
per-instance API key (qdrant_api_key), telemetry off. Own settings go to
/etc/qdrant/config/local.yaml.

update moves one minor version per run, since Qdrant only guarantees
storage compatibility between consecutive minor versions; major_lock
keeps it on 1.x. No VM image (supports lxc, docker).

Tested: lint, dev container twice (smoke green, second run changed=1),
collection create/query across a restart, update 1.17.0 -> 1.18.3 ->
1.19.2 with data kept, docker compose up (401 without key, healthy).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 06:42:45 +02:00
.forgejo/workflows Add Qdrant as LXC and Docker app 2026-10-15 06:42:45 +02:00
files Add Qdrant as LXC and Docker app 2026-10-15 06:42:45 +02:00
handlers Add Qdrant as LXC and Docker app 2026-10-15 06:42:45 +02:00
tasks Add Qdrant as LXC and Docker app 2026-10-15 06:42:45 +02:00
templates Add Qdrant as LXC and Docker app 2026-10-15 06:42:45 +02:00
tests Add Qdrant as LXC and Docker app 2026-10-15 06:42:45 +02:00
.clinerules Add Qdrant as LXC and Docker app 2026-10-15 06:42:45 +02:00
.cursorrules Add Qdrant as LXC and Docker app 2026-10-15 06:42:45 +02:00
.windsurfrules Add Qdrant as LXC and Docker app 2026-10-15 06:42:45 +02:00
AGENTS.md Add Qdrant as LXC and Docker app 2026-10-15 06:42:45 +02:00
CHANGELOG.md Add Qdrant as LXC and Docker app 2026-10-15 06:42:45 +02:00
CLAUDE.md Add Qdrant as LXC and Docker app 2026-10-15 06:42:45 +02:00
docker-compose.yml Add Qdrant as LXC and Docker app 2026-10-15 06:42:45 +02:00
GEMINI.md Add Qdrant as LXC and Docker app 2026-10-15 06:42:45 +02:00
iac.json Add Qdrant as LXC and Docker app 2026-10-15 06:42:45 +02:00
README.md Add Qdrant as LXC and Docker app 2026-10-15 06:42:45 +02:00

iac-qdrant

Qdrant – Vektordatenbank für semantische Suche und RAG – als LXC auf Proxmox VE oder mit Docker Compose. Teil von iac.

Kein VM-Image. Nur amd64 (Qdrant baut für Linux/glibc nur x86_64).

Installation

LXC (auf der Proxmox-Node):

bash -c "$(curl -fsSL https://iac.heyer.systems/qdrant/ct.sh)"

Ohne Dialog: IAC_NONINTERACTIVE=1 und var_*-Variablen – am einfachsten mit dem Generator auf https://iac.heyer.systems/apps/qdrant/.

Docker (auf einem beliebigen Docker-Host):

mkdir -p /opt/qdrant && cd /opt/qdrant
curl -fsSL https://iac.heyer.systems/qdrant/docker-compose.yml -o docker-compose.yml
echo "QDRANT_API_KEY=$(openssl rand -hex 24)" > .env
docker compose up -d

Zugriff

Port Was Erreichbar
6333/tcp REST-API, Web-UI unter /dashboard nur private Netze
6334/tcp gRPC-API nur private Netze

Jede Anfrage braucht den API-Key im Header api-key (ausgenommen /healthz, /livez, /readyz). Die Web-UI fragt beim ersten Aufruf danach. Der Key wird pro Instanz erzeugt:

grep qdrant_api_key /etc/iac/settings.env
curl -H "api-key: <KEY>" http://<ip>:6333/collections

Qdrant spricht selbst kein TLS. Außerhalb des LAN gehört ein Reverse-Proxy mit TLS davor (z. B. iac-traefik) – sonst geht der API-Key im Klartext übers Netz.

Dateien

Pfad Inhalt
/etc/qdrant/config/config.yaml Konfiguration von iac (wird bei jedem Lauf abgeglichen)
/etc/qdrant/config/local.yaml eigene Einstellungen – gewinnt gegen config.yaml, iac fasst sie nicht an
/var/lib/qdrant/storage Collections
/var/lib/qdrant/snapshots Snapshots
/usr/local/bin/qdrant Binary aus den GitHub-Releases
/usr/local/share/qdrant/dist Web-UI aus qdrant/qdrant-web-ui

Nach einer Änderung an local.yaml: systemctl restart qdrant.

Telemetrie an die Qdrant-Entwickler ist abgeschaltet (telemetry_disabled: true).

Update (im Gast)

update

Qdrant garantiert die Kompatibilität der Daten nur zwischen aufeinanderfolgenden Minor-Versionen. update geht deshalb pro Lauf höchstens eine Minor-Version weiter (z. B. 1.18.x → neueste 1.19.x) und meldet, wenn noch eine folgt – dann update erneut ausführen. Eine neue Major-Version (2.x) wird nur gemeldet, nicht installiert.

Mit dem Update kommt jeweils die neueste Web-UI. Vor großen Sprüngen lohnt ein Snapshot (POST /snapshots). Ein Zurück auf die alte Binary gibt es nicht: Die neue Version kann die Daten schon migriert haben.

Prüfsummen: Qdrant veröffentlicht keine Checksummen-Dateien. Geprüft wird gegen die SHA-256, die GitHub für jedes Release-Asset ausweist (digest in der Releases-API).

Docker: docker compose pull && docker compose up -d bleibt in der Minor-Version des Tags (v1.19-unprivileged); für die nächste den Tag um genau eine Minor-Version erhöhen.

Selbsttest (im Gast)

bash /var/lib/iac/src/core/bin/iac-smoke