Environment Variables
Complete reference of all DocIntel environment variables. Variables use a double-underscore __ delimiter for nested settings groups.
For a guided walkthrough, see Configuration →.
Server
| Variable | Default | Description |
|---|---|---|
SERVER__HOST | 0.0.0.0 | Bind address |
SERVER__PORT | 8200 | Bind port |
SERVER__WORKERS | 2 | Uvicorn worker count |
SERVER__LOG_LEVEL | info | debug · info · warning · error |
SERVER__CORS_ORIGINS | * | Comma-separated allowed CORS origins |
SERVER__API_KEY | (empty) | Bearer token required on all API calls |
SERVER__MAX_UPLOAD_MB | 100 | Maximum file upload size in MB |
SERVER__MAX_CONCURRENT_JOBS | 10 | Max simultaneous background pipeline jobs |
LLM
| Variable | Default | Description |
|---|---|---|
LLM__PROVIDER | openai | openai · anthropic · gemini · ollama |
LLM__API_KEY | (empty) | API key for the chosen provider |
LLM__MODEL | gpt-5.6-terra | Override the default model |
LLM__BASE_URL | (none) | Custom endpoint URL (Ollama, Azure, etc.) |
LLM__TEMPERATURE | 0.0 | LLM temperature |
LLM__MAX_TOKENS | 4096 | Max response tokens |
LLM__TIMEOUT_S | 60 | Per-call timeout in seconds |
LLM Windows
| Variable | Default | Description |
|---|---|---|
LLM_WINDOW__SIZE | 1000 | Characters per extraction window |
LLM_WINDOW__OVERLAP | 100 | Overlap between adjacent windows |
LLM_WINDOW__MIN_SIZE | 50 | Minimum window size |
LLM_WINDOW__WINDOW_CONCURRENCY | 8 | Max concurrent LLM calls per document (1–64) |
LLM_WINDOW__JOB_TIMEOUT_S | 600 | Per-document wall-clock timeout (0 = unlimited) |
OCR
| Variable | Default | Description |
|---|---|---|
OCR__ENABLED | true | Enable OCR for scanned / image documents |
OCR__ENGINE | tesseract | tesseract · azure_doc_intel · google_vision · textract |
OCR__AZURE_ENDPOINT | (none) | Azure Document Intelligence endpoint |
OCR__AZURE_KEY | (none) | Azure Document Intelligence key |
OCR__GOOGLE_CREDENTIALS_JSON | (none) | Path to Google Cloud credentials JSON |
OCR__AWS_REGION | us-east-1 | AWS region for Textract |
OCR__LANGUAGES | en | Comma-separated OCR languages |
Sketch / Vision
| Variable | Default | Description |
|---|---|---|
SKETCH__ENGINE | openai-vision | openai-vision · azure-vision · google-vision · local |
SKETCH__MODEL | gpt-5.6-sol | Vision model ID |
SKETCH__DETAIL_LEVEL | high | low · high · auto |
SKETCH__MAX_TOKENS | 2048 | Max tokens for vision response |
SKETCH__CONFIDENCE_THRESHOLD | 0.5 | Min confidence for labels / objects |
Purple8 Graph
| Variable | Default | Description |
|---|---|---|
GRAPH__BASE_URL | http://localhost:8100 | Purple8 Graph API URL |
GRAPH__API_KEY | (empty) | Graph API auth key |
GRAPH__TENANT_ID | (none) | Multi-tenant tenant ID |
GRAPH__AUTO_COMMIT | true | Auto-commit to Graph on extraction completion |
GRAPH__TIMEOUT_S | 30 | Connection timeout |
Licensing
| Variable | Default | Description |
|---|---|---|
LICENSE__KEY | (empty) | License key string (omit for unlicensed Beta mode) |
LICENSE__SERVER_URL | (empty) | License server URL for activation checks |
LICENSE__ENFORCE | true | false disables license enforcement (dev mode) |
LICENSE__GRACE_PERIOD_HOURS | 72 | Hours to allow after license expiry |
Storage
DocIntel persists jobs in an embedded durable p8l log (/data/docintel_jobs.p8l) with zero external database dependencies.
| Variable | Default | Description |
|---|---|---|
STORAGE__TEMP_DIR | /tmp/purple8_docintel | Temporary file directory |
Top-level
| Variable | Default | Description |
|---|---|---|
APP_NAME | Purple8 Document Intelligence | Application display name |
DEBUG | false | Debug mode |