services: llm-gateway: build: . container_name: llm-gateway ports: - "3100:3100" extra_hosts: - "host.docker.internal:host-gateway" environment: NODE_ENV: production PORT: "3100" DATABASE_URL: "${DATABASE_URL}" TIP_DATABASE_URL: "${TIP_DATABASE_URL}" OLLAMA_URL: "http://192.168.178.169:11434" OLLAMA_BASE_URL: "${OLLAMA_BASE_URL:-https://ollama.fichtmueller.org}" CLAUDE_BRIDGE_ENABLED: "true" CLAUDE_BRIDGE_URL: "${CLAUDE_BRIDGE_URL:-http://host.docker.internal:3250}" CLAUDE_CODE_URL: "${CLAUDE_CODE_URL:-http://host.docker.internal:3250}" OPENAI_BRIDGE_URL: "${OPENAI_BRIDGE_URL:-http://host.docker.internal:3251}" CHATGPT_BRIDGE_URL: "${CHATGPT_BRIDGE_URL:-http://host.docker.internal:3251}" COPILOT_BRIDGE_URL: "${COPILOT_BRIDGE_URL:-http://host.docker.internal:3252}" GEMINI_BRIDGE_URL: "${GEMINI_BRIDGE_URL:-http://host.docker.internal:3254}" CODEX_BRIDGE_URL: "${CODEX_BRIDGE_URL:-http://host.docker.internal:3253}" OPENAI_CODEX_URL: "${OPENAI_CODEX_URL:-http://host.docker.internal:3253}" AIDER_BRIDGE_URL: "${AIDER_BRIDGE_URL:-http://host.docker.internal:3256}" SHIELDX_URL: "${SHIELDX_URL:-}" GITEA_URL: "http://gitea.context-x.org" LOG_LEVEL: "${LOG_LEVEL:-info}" DASHBOARD_AUTH_TOKEN: "${DASHBOARD_AUTH_TOKEN:-}" REFERENCE_INPUT_COST_PER_1K: "${REFERENCE_INPUT_COST_PER_1K:-0.005}" REFERENCE_OUTPUT_COST_PER_1K: "${REFERENCE_OUTPUT_COST_PER_1K:-0.015}" restart: unless-stopped healthcheck: test: ["CMD", "wget", "-q", "-O-", "http://localhost:3100/health/live"] interval: 30s timeout: 10s retries: 3 networks: - gateway-net llm-learning: build: context: packages/learning dockerfile: Dockerfile container_name: llm-learning environment: DATABASE_URL: "${DATABASE_URL}" GATEWAY_URL: "http://llm-gateway:3100" restart: unless-stopped depends_on: llm-gateway: condition: service_healthy networks: - gateway-net networks: gateway-net: driver: bridge