feat(stack): bring back qdrant as OmniRoute's memory vector store

Bare service, no static config — wired up as a memory provider by
hand in the OmniRoute dashboard. Not published to the host; only
OmniRoute (same ai-stack network) talks to it. Also drops two stale
comments left over from the OMNIROUTE_PORT:4000 removal.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Qx22CV9EUS3hGATucQav13
This commit is contained in:
2026-09-03 21:19:06 +02:00
co-authored by Claude-Bot
parent c795993a64
commit 885de477ba
2 changed files with 23 additions and 13 deletions
+21 -9
View File
@@ -56,6 +56,22 @@ services:
curl -L --fail --create-dirs -o /models/${LLAMA_MODEL_FILE:-Qwen3.8-27B-UD-Q4_K_XL.gguf}
https://huggingface.co/unsloth/Qwen3.8-27B-GGUF/resolve/main/${LLAMA_MODEL_FILE:-Qwen3.8-27B-UD-Q4_K_XL.gguf}
# Vector store for OmniRoute's memory feature — wired up in the OmniRoute
# dashboard as a memory service, not via static config here. Not published
# to the host: only OmniRoute (same ai-stack network) talks to it.
qdrant:
image: qdrant/qdrant:latest
container_name: qdrant
volumes:
- qdrant-data:/qdrant/storage
restart: unless-stopped
networks: [ai-stack]
healthcheck:
test: ["CMD-SHELL", "bash -c 'exec 3<>/dev/tcp/localhost/6333'"]
interval: 10s
timeout: 5s
retries: 5
# Replaces litellm — see issue #31 (wayfinder map) for the full migration
# rationale/findings. No static config.yaml equivalent: provider routing
# (llama-server, searxng-search) is registered once through the dashboard
@@ -67,15 +83,15 @@ services:
depends_on:
llama-server:
condition: service_started
qdrant:
condition: service_healthy
volumes:
- omniroute-data:/app/data
env_file: .env
environment:
# Split-port mode: dashboard and API are fully separate ports (unlike
# LiteLLM's single :4000 for both /v1 and /ui) — only API_PORT (via
# the OMNIROUTE_PORT:4000 host mapping below) is published, so the
# dashboard has no network route in from outside this container at
# all. No NPM path-deny rule needed.
# LiteLLM's single :4000 for both /v1 and /ui) — both published
# directly below, unlike the old :4000-only host mapping.
- API_HOST=0.0.0.0
- API_PORT=${OMNIROUTE_API_PORT:-20129}
- DASHBOARD_PORT=${OMNIROUTE_DASHBOARD_PORT:-20128}
@@ -97,11 +113,6 @@ services:
# network can't resolve search.home on its own.
extra_hosts:
- "search.home:${SEARXNG_LAN_IP}"
# OMNIROUTE_PORT (host) is decoupled from API_PORT (container-internal,
# left at omniroute's own default) via plain Docker port mapping — the
# gateway needs to stay reachable at the same :4000 this stack has
# always published (NPM/firewall already point there), without having
# to also change omniroute's own internal port config to match.
ports:
- "${OMNIROUTE_API_PORT:-20129}:${OMNIROUTE_API_PORT:-20129}"
- "${OMNIROUTE_DASHBOARD_PORT:-20128}:${OMNIROUTE_DASHBOARD_PORT:-20128}"
@@ -153,3 +164,4 @@ networks:
volumes:
models:
omniroute-data:
qdrant-data: