# Dulus — quick-start stack. # # Usage: # 1. Copy .env.example to .env and add your API keys # 2. docker compose up -d # 3. Open http://localhost:5050/ for the WebChat UI (5050, not 5000, so the # container doesn't collide with a native Dulus on the same host) # 4. Or: docker compose exec dulus dulus # interactive REPL # # Optional Ollama service for local-only models — uncomment the `ollama:` # block and the `OLLAMA_HOST` env var below. services: dulus: image: ghcr.io/kevrojo/dulus:latest # Build from this directory if you want a local image: # build: # context: . # dockerfile: Dockerfile container_name: dulus restart: unless-stopped # Daemon mode is right for compose — REPL stays available via `exec`. command: ["dulus", "--daemon"] environment: # Pull API keys from .env (loaded automatically by Compose). # Only the providers you actually use need a key. ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY:-} OPENAI_API_KEY: ${OPENAI_API_KEY:-} GEMINI_API_KEY: ${GEMINI_API_KEY:-} NVIDIA_API_KEY: ${NVIDIA_API_KEY:-} DEEPSEEK_API_KEY: ${DEEPSEEK_API_KEY:-} QWEN_API_KEY: ${QWEN_API_KEY:-} KIMI_API_KEY: ${KIMI_API_KEY:-} # OLLAMA_HOST: http://ollama:11434 # Host ports default to 5050 / 5152 so the container doesn't fight a Dulus # install running natively on the host (which uses 5000 / 5151). The # container still listens on 5000 / 5151 internally — those are the ports # Dulus expects inside the box. Override via DULUS_WEB_PORT in .env if 5050 # is also taken. ports: - "${DULUS_WEB_PORT:-5050}:5000" # WebChat browser UI -> http://localhost:5050 - "${DULUS_IPC_PORT:-5152}:5151" # IPC bridge for /bg, plugins, integrations volumes: - dulus-memory:/root/.dulus healthcheck: test: ["CMD", "curl", "-fsS", "http://127.0.0.1:5000/api/health"] interval: 30s timeout: 5s retries: 3 start_period: 20s # Uncomment to require Ollama up first: # depends_on: # - ollama # ─── Optional: local Ollama for $0-API models ───────────────────────────── # ollama: # image: ollama/ollama:latest # container_name: dulus-ollama # restart: unless-stopped # ports: # - "11434:11434" # volumes: # - ollama-data:/root/.ollama # # GPU support: uncomment the next block on hosts with NVIDIA + nvidia-container-toolkit # # deploy: # # resources: # # reservations: # # devices: # # - driver: nvidia # # count: all # # capabilities: [gpu] volumes: dulus-memory: # ollama-data: