services: llmrouter: image: git.42i.org/spine/llmrouter:latest build: context: . dockerfile: docker/Dockerfile ports: - "4010:4010" volumes: # Caches und Einstellungen liegen alle unter ./data — siehe data/README.md - ./data:/data environment: # Konfiguration, ACLs, Keys und Logs wandern komplett nach /data, # weil logDir und ACLs relativ zum CONFIG_PATH aufgelöst werden. LLMROUTER_CONFIG: /data/config.json LLMROUTER_ACLS: /data/key-acls.json KEYS_FILE: /data/keys.json # Upstream-Keys kommen aus .env (Vorlage: .env.example). Leere Werte # sind okay: der Router startet trotzdem, Auffrischen scheitert dann # graceful und /health bleibt bedienbar. OPENROUTER_API_KEY: ${OPENROUTER_API_KEY:-} MISTRAL_API_KEY: ${MISTRAL_API_KEY:-} KIRA_REASONING_KEY: ${KIRA_REASONING_KEY:-} KIRA_STT_KEY: ${KIRA_STT_KEY:-} KIRA_TTS_KEY: ${KIRA_TTS_KEY:-} ARTIFICIALANALYSIS_API_KEY: ${ARTIFICIALANALYSIS_API_KEY:-} ADMIN_KEY: ${ADMIN_KEY:-} # Optional: eigene Sperrliste statt der Default unter $HOME # MODEL_BLOCKLIST: /data/model-blocklist.json restart: unless-stopped