dokkaiv0.1.0
Guides

Configuration

All configuration is via environment variables, loaded from .env at startup.

Core variables

VariableDefaultDescription
DATABASE_URLpostgresql://…/dokkaiPostgres connection for conversation and job history. Boot-time migrations run automatically.
WEAVIATE_HOSTlocalhostWeaviate host (client side). Ports: 8080 HTTP, 50051 gRPC.
COLLECTION_NAMECodeEntityWeaviate collection name.
VECTORIZER_PROVIDERollamaollama | openai | cohere | local.
EMBED_MODELnomic-embed-textOllama embedding model.

The two Ollama endpoints

Two Ollama endpoints, on purpose. OLLAMA_EMBED_ENDPOINT is called by the Weaviate container (so it needs host.docker.internal), while OLLAMA_BASE_URL is called by the API process on the host (so it's localhost).
VariableDefaultDescription
OLLAMA_EMBED_ENDPOINThttp://host.docker.internal:11434Ollama URL as seen by the Weaviate server (Docker → host).
OLLAMA_BASE_URLhttp://localhost:11434Ollama URL as seen by the API process (chat).
OLLAMA_CHAT_MODEL(unset)If set: auto-configure and warm this chat model on boot.
OLLAMA_NUM_CTX8192Context window for generation.
OLLAMA_KEEP_ALIVE-1Keep model resident: -1 = forever, or a duration like 30m.

Descriptions

VariableDefaultDescription
DESC_PROVIDERollamaollama | openai | anthropic for per-entity descriptions.
DESC_MODEL(unset)Model for descriptions (e.g. qwen2.5-coder:3b). If unset, ingestion 400s before creating a job.
DESC_CONCURRENCY4Max concurrent description requests.
LLM config persistence. POST /config/llm write-through persists the active provider/model to Postgres, reloaded on every boot — taking precedence over OLLAMA_CHAT_MODEL. The env var is only a one-time seed for a fresh install.

Auth & CORS

VariableDefaultDescription
DOKKAI_ROOT_USER(unset — admin)Override the admin username, applied on boot.
DOKKAI_ROOT_PASSWORD(unset — admin)Override the admin password; changing it invalidates that user's sessions.
DOKKAI_CORS_ORIGINSlocalhost:3000, 127.0.0.1:3000Comma-separated origins allowed to call the API from a browser.