services: loki: build: . container_name: loki ports: # Un seul numéro de port, identique dedans/dehors. - "${PORT:-8717}:${PORT:-8717}" environment: - OLLAMA_HOST=${OLLAMA_HOST:-http://host.docker.internal:11434} - DEFAULT_MODEL=${DEFAULT_MODEL:-gemma4:12b} - WORKSPACE_DIR=/workspace - DATA_DIR=/data - PORT=${PORT:-8717} # Optionnel : instance SearxNG pour web_search (sinon DuckDuckGo) - SEARX_URL=${SEARX_URL:-} volumes: - ./workspace:/workspace - ./data:/data extra_hosts: # Permet d'atteindre un Ollama installé sur la machine hôte - "host.docker.internal:host-gateway" # Le HEALTHCHECK est défini dans l'image (utilise automatiquement $PORT). restart: unless-stopped # ── Ollama optionnel ────────────────────────────────────────────────── # Par défaut, Loki se connecte à un Ollama déjà présent sur l'hôte. # Pour embarquer Ollama dans la stack, lance : docker compose --profile ollama up # et règle OLLAMA_HOST=http://ollama:11434 ollama: image: ollama/ollama:latest container_name: loki-ollama profiles: ["ollama"] environment: - NVIDIA_VISIBLE_DEVICES=all - NVIDIA_DRIVER_CAPABILITIES=compute,utility - OLLAMA_FLASH_ATTENTION=1 - OLLAMA_KV_CACHE_TYPE=q8_0 ports: - "11434:11434" volumes: - ollama-models:/root/.ollama # Accès GPU NVIDIA : sans ceci, l'Ollama embarqué tourne en CPU (très lent). # Nécessite le NVIDIA Container Toolkit installé sur l'hôte. Si tu n'as pas # de GPU NVIDIA, commente tout le bloc `deploy:` ci-dessous. deploy: resources: reservations: devices: - driver: nvidia count: all capabilities: ["gpu"] restart: unless-stopped volumes: ollama-models: