refactor: remplacer les proxies Jean par un unique llm-proxy + WOL

- llm-proxy: 1 service, 4 routes (3011 Ollama, 3012 llama.cpp, 3015 STT, 3016 TTS)
- Wake-on-LAN integre avec anti-spam (3 paquets magic, timeout 300s)
- suppression de jean-router, jean-proxy, wol-proxy, litellm
- OpenWebUI repointe vers le proxy (OpenAI 3012 + Ollama 3011 + STT 3015)
- docs a jour (README, WOL)
This commit is contained in:
Effi Server
2026-08-22 09:26:24 +00:00
parent 14460d387b
commit 5ab8242134
15 changed files with 260 additions and 1718 deletions
+24 -43
View File
@@ -6,44 +6,20 @@
services:
# ─────────────────────────────────────────────────────────
# 0. VALKEY - Backend de rate limiting pour SearXNG
# → Port interne uniquement (non exposé)
# ─────────────────────────────────────────────────────────
valkey:
image: valkey/valkey:7-alpine
container_name: effi-valkey
restart: unless-stopped
command: valkey-server /usr/local/etc/valkey/valkey.conf
volumes:
- ./searxng-config/valkey.conf:/usr/local/etc/valkey/valkey.conf:ro
- valkey-data:/data/valkey-data
networks:
- effi-net
# ─────────────────────────────────────────────────────────
# 1. SEARXNG - Meta-search Engine (API JSON)
# → http://192.168.1.27:6060
# 0. SEARXNG - Meta-search Engine (Web Search)
# → http://192.168.1.27:11112
# ─────────────────────────────────────────────────────────
searxng:
image: searxng/searxng:latest
container_name: effi-searxng
restart: unless-stopped
ports:
- "6060:8080"
- "11112:8080"
volumes:
- ./searxng-config/settings.yml:/etc/searxng/settings.yml:ro
- ./searxng-data:/etc/searxng:rw
environment:
- SEARXNG_BASE_URL=http://192.168.1.27:6060/
- SEARXNG_BASE_URL=http://192.168.1.27:11112/
- SEARXNG_SECRET=${SEARXNG_SECRET_KEY}
- SEARXNG_SETTINGS_PATH=/etc/searxng/settings.yml
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/healthz"]
interval: 30s
timeout: 10s
retries: 3
start_period: 30s
depends_on:
- valkey
networks:
- effi-net
@@ -61,40 +37,46 @@ services:
- "3000:8080"
environment:
- OLLAMA_BASE_URL=http://host.docker.internal:3011
- OPENAI_API_BASE_URL=http://host.docker.internal:3012/v1
- OPENAI_API_KEY=any
- ENABLE_OPENAI_API=True
- WEBUI_SECRET_KEY=${WEBUI_SECRET_KEY}
- VECTOR_DB=qdrant
- QDRANT_URI=http://qdrant:6333
- DEFAULT_LOCALE=fr-FR
- ENABLE_MEMORIES=true
- AUDIO_STT_ENGINE=openai
- AUDIO_STT_OPENAI_API_BASE_URL=http://192.168.1.11:8200/v1
- AUDIO_STT_OPENAI_API_BASE_URL=http://host.docker.internal:3015/v1
- AUDIO_STT_OPENAI_API_KEY=anything
- AUDIO_STT_MODEL=Systran/faster-whisper-large-v3
volumes:
- open-webui-data:/app/backend/data
depends_on:
- qdrant
- wol-proxy
- llm-proxy
networks:
- effi-net
# ─────────────────────────────────────────────────────────
# 2. WOL PROXY - Réveil PC Gaming avant appel Ollama
# → Proxy :3011 → PC Gaming :11434
# 2. LLM PROXY - Proxy unique vers le PC Gaming + Wake-on-LAN
# :3011 → Ollama (.11:11434)
# :3012 → llama.cpp (.11:8080)
# :3015 → STT (.11:8200)
# :3016 → TTS (serveur local :8100, pas de WOL)
# Si le PC est éteint, un paquet WoL est envoyé avant l'attente.
# ─────────────────────────────────────────────────────────
wol-proxy:
build: ./wol-proxy
container_name: wol-proxy
llm-proxy:
build: ./llm-proxy
container_name: llm-proxy
restart: unless-stopped
network_mode: host
environment:
- TARGET_HOST=${OLLAMA_HOST}
- TARGET_PORT=11434
- TARGET_MAC=${PC_GAMING_MAC}
- LISTEN_PORT=3011
- WAKE_TIMEOUT=${WAKE_TIMEOUT:-180}
- CHECK_INTERVAL=5
- PC_HOST=${OLLAMA_HOST}
- PC_MAC=${PC_GAMING_MAC}
- BROADCAST_IP=${BROADCAST_IP}
- WAKE_TIMEOUT=${WAKE_TIMEOUT:-300}
- SERVICE_TIMEOUT=120
- CHECK_INTERVAL=5
# ─────────────────────────────────────────────────────────
# 3. MCPO - Proxy outils MCP (Obsidian, etc.)
@@ -289,4 +271,3 @@ volumes:
open-webui-data:
pipelines-data:
whisper-cache:
redis-data: