name: nuc-ai-core include: # - path: ./lobehub.yml # decommissioned 2026-05-26 - path: ./open-terminal.yml - path: ./qdrant.yml - path: ./tei.yml - path: ./nomic.yml - path: ./searxng.yaml #- path: ./mcp-tools.yaml # All your MCP servers (Nextcloud, etc.) # SAIA image/STT/edit now handled natively by LiteLLM (saia-* models in # litellm-config/config.yaml); Docling moved to the docling-mcp stack. services: # --- LiteLLM Gateway --- # --- LiteLLM (DECOMMISSIONED 2026-05-26 — stopped; Bifrost replaced it) --- # litellm: # image: ghcr.io/berriai/litellm:main-latest # container_name: litellm # volumes: # - ./litellm-config:/app/config # env_file: .env # ports: # - "14000:4000" # networks: # - ai-internal # - shared_backend # command: ["--config", "/app/config/config.yaml"] # labels: # - "homepage.group=ai" # - "homepage.name=LiteLLM" # - "homepage.icon=sh-litellm" # - "homepage.href=https://ai.nuclide.systems" # - "homepage.instance.internal.href=http://192.168.1.40:14000" # - "homepage.instance.public.href=https://ai.nuclide.systems" # healthcheck: # test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:4000/health/liveliness')"] # interval: 10s # timeout: 5s # retries: 10 # start_period: 30s # syncstack: # build: # context: . # dockerfile: Dockerfile.syncstack # env_file: .env # volumes: # - ./.env:/app/.env # - .:/project # - /var/run/docker.sock:/var/run/docker.sock # networks: # - ai-internal # depends_on: # litellm: # condition: service_healthy # lobe: # condition: service_healthy # restart: "no" # claude-max-bridge: build: context: /opt/stacks/ai/claude-max-bridge dockerfile: Dockerfile container_name: claude-max-bridge restart: unless-stopped environment: CLAUDE_BIN: /usr/local/bin/claude CLAUDE_HOME: /root/.claude LOG_LEVEL: INFO REQUEST_TIMEOUT_S: "120" volumes: - /usr/local/bin/claude:/usr/local/bin/claude:ro - /root/.claude:/root/.claude:rw - /root/.claude.json:/root/.claude.json:rw networks: - ai-internal healthcheck: test: ["CMD", "python3", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8000/health')"] interval: 30s timeout: 5s retries: 3 start_period: 10s networks: ai-internal: external: true shared_backend: external: true