# ============================================================================= # 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