- Shell 54.6%
- Jinja 45.4%
|
All checks were successful
/ lint (push) Successful in 3m45s
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> |
||
|---|---|---|
| .forgejo/workflows | ||
| files | ||
| handlers | ||
| tasks | ||
| templates | ||
| tests | ||
| .clinerules | ||
| .cursorrules | ||
| .windsurfrules | ||
| AGENTS.md | ||
| CHANGELOG.md | ||
| CLAUDE.md | ||
| docker-compose.yml | ||
| GEMINI.md | ||
| iac.json | ||
| README.md | ||
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