# =============================================================================
#  Nibiru docs site — production compose for jwilder/nginx-proxy
#
#  Default LLM backend: Ollama at https://api.neuronetz.ai (your own instance).
#  No paid API keys required for normal operation.
#
#  Prereqs (one-time, on the host):
#    docker network create nginx-proxy
#
#  Bring up:
#    docker compose up -d --build
#
#  Update after a docs change:
#    git pull && docker compose up -d --build
# =============================================================================

services:
  docs:
    build:
      context: .
      dockerfile: Dockerfile
      args:
        # Used at build time only — to embed docs into the Oracle index.
        OLLAMA_BASE_URL:    ${OLLAMA_BASE_URL:-https://api.neuronetz.ai}
        OLLAMA_EMBED_MODEL: ${OLLAMA_EMBED_MODEL:-nomic-embed-text}
        EMBED_PROVIDER:     ${EMBED_PROVIDER:-ollama}
    image: nibiru-framework/docs:latest
    container_name: nibiru-docs
    restart: unless-stopped
    expose:
      - "4321"
    environment:
      # --- nginx-proxy (jwilder) routing ---
      VIRTUAL_HOST:      nibiru-framework.com,www.nibiru-framework.com
      VIRTUAL_PORT:      "4321"
      VIRTUAL_PROTO:     "http"
      LETSENCRYPT_HOST:  nibiru-framework.com,www.nibiru-framework.com
      LETSENCRYPT_EMAIL: ${LETSENCRYPT_EMAIL:-stephan.kasdorf@bittomine.com}

      # --- Oracle: LLM provider (default = your own Ollama on neuronetz.ai) ---
      LLM_PROVIDER:       ${LLM_PROVIDER:-ollama}
      OLLAMA_BASE_URL:    ${OLLAMA_BASE_URL:-https://api.neuronetz.ai}
      OLLAMA_CHAT_MODEL:  ${OLLAMA_CHAT_MODEL:-qwen2.5-coder:14b}
      OLLAMA_EMBED_MODEL: ${OLLAMA_EMBED_MODEL:-nomic-embed-text}
      EMBED_PROVIDER:     ${EMBED_PROVIDER:-ollama}

      # --- Optional fallbacks (only used if LLM_PROVIDER=anthropic / EMBED_PROVIDER=openai) ---
      ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY:-}
      ANTHROPIC_MODEL:   ${ANTHROPIC_MODEL:-claude-haiku-4-5-20251001}
      OPENAI_API_KEY:    ${OPENAI_API_KEY:-}
      OPENAI_EMBED_MODEL: ${OPENAI_EMBED_MODEL:-text-embedding-3-small}

      ORACLE_TOP_K:    ${ORACLE_TOP_K:-6}
      ORACLE_MAX_TOKENS: ${ORACLE_MAX_TOKENS:-800}

      HOST: 0.0.0.0
      PORT: "4321"

    healthcheck:
      test: ["CMD", "wget", "--quiet", "--spider", "http://127.0.0.1:4321/"]
      interval: 30s
      timeout: 5s
      retries: 3
      start_period: 20s

    networks:
      - nginx-proxy

networks:
  nginx-proxy:
    external: true
