refactor: split openai/ into ollama/, openwebui/, searxng/
Move services out of the monolithic openai/docker-compose.yml: - ollama/ — ollama GPU + CPU inference servers - openwebui/ — open-webui chat UI (uses env var for ANTHROPIC_API_KEY) - searxng/ — SearXNG container + searxng-mcp MCP server (port 3102) openai/ now contains only: litellm, langfuse, qdrant, faster-whisper, silero-tts, pipecat. searxng-mcp exposes a single searxng_search tool via MCP HTTP on :3102. Registered in ~/.claude.json as the "searxng" MCP server. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,65 +1,4 @@
|
||||
services:
|
||||
ollama:
|
||||
image: ollama/ollama
|
||||
container_name: ollama
|
||||
ports:
|
||||
- "11436:11434"
|
||||
volumes:
|
||||
- /mnt/ssd/ai/ollama:/root/.ollama
|
||||
- /mnt/ssd/ai/open-webui:/app/backend/data
|
||||
restart: always
|
||||
environment:
|
||||
# Allow qwen3:8b + qwen2.5:1.5b to coexist in VRAM (~6.7-7.7 GB on 8 GB GPU)
|
||||
- OLLAMA_MAX_LOADED_MODELS=2
|
||||
# One GPU inference at a time — prevents compute contention between models
|
||||
- OLLAMA_NUM_PARALLEL=1
|
||||
# Force all layers to GPU — fail instead of falling back to CPU
|
||||
- OLLAMA_NUM_GPU=999
|
||||
runtime: nvidia
|
||||
mem_limit: 4g
|
||||
|
||||
ollama-cpu:
|
||||
image: ollama/ollama
|
||||
container_name: ollama-cpu
|
||||
ports:
|
||||
- "11435:11434"
|
||||
volumes:
|
||||
- /mnt/ssd/ai/ollama-cpu:/root/.ollama
|
||||
restart: always
|
||||
|
||||
open-webui:
|
||||
image: ghcr.io/open-webui/open-webui:main
|
||||
container_name: open-webui
|
||||
ports:
|
||||
- "3125:8080"
|
||||
volumes:
|
||||
- /mnt/ssd/ai/open-webui:/app/backend/data
|
||||
extra_hosts:
|
||||
- "host.docker.internal:host-gateway"
|
||||
restart: always
|
||||
deploy:
|
||||
resources:
|
||||
reservations:
|
||||
devices:
|
||||
- driver: nvidia
|
||||
count: all
|
||||
capabilities: [gpu]
|
||||
environment:
|
||||
- ANTHROPIC_API_KEY=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
|
||||
- OPENAI_API_BASE_URL=http://host.docker.internal:4000/v1
|
||||
- OPENAI_API_KEY=dummy
|
||||
# STT — Faster-Whisper large-v3-turbo
|
||||
- AUDIO_STT_ENGINE=openai
|
||||
- AUDIO_STT_OPENAI_API_BASE_URL=http://host.docker.internal:8880/v1
|
||||
- AUDIO_STT_OPENAI_API_KEY=dummy
|
||||
- AUDIO_STT_MODEL=deepdml/faster-whisper-large-v3-turbo-ct2
|
||||
# TTS — Silero v4
|
||||
- AUDIO_TTS_ENGINE=openai
|
||||
- AUDIO_TTS_OPENAI_API_BASE_URL=http://host.docker.internal:8881/v1
|
||||
- AUDIO_TTS_OPENAI_API_KEY=dummy
|
||||
- AUDIO_TTS_MODEL=silero
|
||||
- AUDIO_TTS_VOICE=onyx
|
||||
|
||||
litellm-db:
|
||||
image: postgres:16-alpine
|
||||
container_name: litellm-db
|
||||
@@ -119,16 +58,6 @@ services:
|
||||
- langfuse-db
|
||||
restart: always
|
||||
|
||||
searxng:
|
||||
image: docker.io/searxng/searxng:latest
|
||||
container_name: searxng
|
||||
volumes:
|
||||
- /mnt/ssd/ai/searxng/config/:/etc/searxng/
|
||||
- /mnt/ssd/ai/searxng/data/:/var/cache/searxng/
|
||||
restart: always
|
||||
ports:
|
||||
- "11437:8080"
|
||||
|
||||
qdrant:
|
||||
image: qdrant/qdrant
|
||||
container_name: qdrant
|
||||
|
||||
Reference in New Issue
Block a user