Configuration
Complete environment variables reference for DocuStore.
DocuStore is configured via environment variables. All settings are defined in services/.env.
| Variable | Description | Default |
|---|
LLM_PROVIDER | Provider type: ollama, openai, anthropic, or gemini | ollama |
LLM_MODEL_NAME | Model name (e.g., gemma4:31b, gpt-4o) | gemma4:31b |
LLM_BASE_URL | Ollama base URL (ignored for cloud providers) | http://localhost:11434 |
OPENAI_API_KEY | OpenAI API key (if using OpenAI) | — |
ANTHROPIC_API_KEY | Anthropic API key (if using Anthropic) | — |
GOOGLE_API_KEY | Gemini API key (if using Gemini) | — |
See Embedding Models for choosing a model. Changing the model requires re-embedding documents.
| Variable | Description | Default |
|---|
EMBEDDING_MODEL_PROVIDER | sentence-transformers (local), openai, gemini, or openrouter | sentence-transformers |
EMBEDDING_MODEL_NAME | Text embedding model | ibm-granite/granite-embedding-english-r2 |
EMBEDDING_DIMENSIONS | Vector dimensions (all models are asked for this) | 768 |
EMBEDDING_DEVICE | Local models: cpu, cuda, or mps | cpu |
EMBEDDING_API_KEY | API models; falls back to OPENAI_API_KEY / GOOGLE_API_KEY | — |
EMBEDDING_BASE_URL | openai provider only: any OpenAI-compatible endpoint | — |
| Variable | Description | Default |
|---|
BLOB_BASE_URL | Blob storage root: file:// for local, s3:// for S3, az:// for Azure Blob Storage (see Blob Storage) | file://<services>/blobs |
BLOB_STORAGE_OPTIONS | JSON object of fsspec storage options | {} |
| Variable | Description | Default |
|---|
EVENTSTOREDB_URI | EventStoreDB connection string | esdb://localhost:2113?tls=false |
MONGO_URI | MongoDB connection string | mongodb://localhost:27017/?replicaSet=rs0 |
MONGO_DB | MongoDB database name | docu_store |
QDRANT_URL | Qdrant HTTP URL | http://localhost:6333 |
TEMPORAL_ADDRESS | Temporal server address | localhost:7233 |
KAFKA_BOOTSTRAP_SERVERS | Kafka broker addresses | localhost:19092 |
The dev compose stack publishes EventStoreDB on host port 2114 and Temporal on 7234, so local .env files use esdb://localhost:2114?tls=false and localhost:7234.
| Variable | Description | Default |
|---|
TEMPORAL_MAX_CONCURRENT_ACTIVITIES | Max parallel activities on the CPU/IO worker | 10 |
TEMPORAL_LLM_TASK_QUEUE | Task queue for the LLM worker | llm_processing |
TEMPORAL_MAX_CONCURRENT_LLM_ACTIVITIES | Max parallel LLM activities (Ollama: 1-2, cloud APIs: 5-10) | 2 |
The CPU/IO worker's task queue is fixed at artifact_processing.
| Variable | Description | Default |
|---|
PROMPT_REPOSITORY_TYPE | Prompt source: langfuse or yaml | langfuse |
LANGFUSE_PUBLIC_KEY | Langfuse public key for LLM tracing | — |
LANGFUSE_SECRET_KEY | Langfuse secret key | — |
LANGFUSE_HOST | Langfuse server URL (dev compose: http://localhost:3100) | http://localhost:3000 |
| Variable | Description | Default |
|---|
DUAR_URL | Duar authorization service URL | http://localhost:9003 |
DUAR_SERVICE_KEY | Service key for this app in Duar | — |
DUAR_SERVICE_NAME | Service name registered in Duar | docu-store |
DUAR_IDP_JWKS_URL | IdP JWKS URL for verifying login tokens | https://www.googleapis.com/oauth2/v3/certs |
DUAR_IDP_AUDIENCE | Required: your OAuth client ID (IdP token aud) | — |
DUAR_IDP_ISSUER | Expected IdP token issuer | https://accounts.google.com |
DUAR_CACHE_TTL | Seconds to cache permission checks (0 disables) | 120 |
| Variable | Description | Default |
|---|
ARTIFACT_SUMMARIZATION_BATCH_SIZE | Pages per summarization batch | 10 |
| Variable | Description | Default |
|---|
QDRANT_COLLECTION_NAME | Text embeddings collection | page_embeddings |
QDRANT_COMPOUND_COLLECTION_NAME | SMILES embeddings collection | compound_embeddings |
QDRANT_SUMMARY_COLLECTION_NAME | Summary embeddings collection | summary_embeddings |