Configuration
All configuration via environment variables. No config file required.
Server
| Variable | Type | Default | Description |
DAKERA_ROOT_API_KEY | string | — | Bootstrap root API key (super_admin scope). If unset, auth is disabled. |
DAKERA_HOST | string | 0.0.0.0 | Bind address |
DAKERA_PORT | u16 | 3300 | REST API port |
DAKERA_GRPC_PORT | u16 | 50051 | gRPC port |
RUST_LOG | string | info | Log level: trace/debug/info/warn/error |
Storage
| Variable | Default | Description |
DAKERA_STORAGE | memory | Backend: memory, filesystem, s3, minio |
DAKERA_STORAGE_PATH | ./data | Data directory for filesystem storage |
DAKERA_S3_BUCKET | — | S3 bucket name (3–63 chars) |
DAKERA_S3_REGION | — | S3 region (e.g. us-east-1) |
DAKERA_S3_ENDPOINT | — | S3-compatible endpoint URL (MinIO) |
AWS_ACCESS_KEY_ID | — | AWS / MinIO access key |
AWS_SECRET_ACCESS_KEY | — | AWS / MinIO secret key |
Embeddings
| Variable | Default | Description |
DAKERA_EMBEDDING_MODEL | MiniLML6V2 | ONNX model: MiniLML6V2, BGESmallENV15, E5SmallV2 |
DAKERA_INFERENCE_DEVICE | cpu | cpu or cuda |
Reranker
| Variable | Default | Description |
RERANKER_POOL_SIZE | 4 | Number of pre-allocated ONNX cross-encoder sessions in the reranker pool. Increase for higher concurrency at the cost of memory. |
RERANKER_ONNX_BATCH_SIZE | 16 | Mini-batch size for cross-encoder ONNX inference. Each mini-batch is padded to its own max seq_len, reducing memory waste vs full-chunk padding. |
RERANKER_MAX_CONCURRENT | 6 | Maximum concurrent reranker calls. Requests beyond this limit receive an immediate 503 Overloaded response rather than queuing indefinitely. |
Memory & decay
| Variable | Default | Description |
DAKERA_DECAY_ENABLED | true | Enable memory importance decay over time |
DAKERA_DECAY_HALF_LIFE_SECS | 604800 | Half-life for decay (default: 7 days) |
DAKERA_AUTOPILOT_ENABLED | false | Enable AutoPilot memory lifecycle management |
Retrieval tuning
| Variable | Default | Description |
DAKERA_RRF_K | 60 | Reciprocal Rank Fusion k-parameter |
DAKERA_ML_CLASSIFIER | false | Enable ML-based query classifier |
DAKERA_TEMPORAL_INFERENCE | true | Enable per-query temporal boost (requires ML_CLASSIFIER) |
DAKERA_INFERENCE_TEMPORAL_MULT_BETA | 0.65 | Multiplicative temporal scaling factor |
DAKERA_ENTITY_VECTOR_SEARCH | true | Enable entity-filtered second HNSW pass merged via RRF |
DAKERA_HNSW_CACHE_MAX | 50 | Max HNSW indexes in LRU cache |
Auth, rate limiting & observability
| Variable | Default | Description |
RATE_LIMIT_RPS | 100 | Requests per second |
RATE_LIMIT_BURST | 50 | Burst capacity |
DAKERA_AUTH_ENABLED | true | Enable API key authentication |
DAKERA_CORS_ORIGINS | * | Allowed CORS origins (comma-separated) |
DAKERA_TRACING_ENABLED | false | Enable OpenTelemetry tracing |
OTEL_EXPORTER_OTLP_ENDPOINT | http://localhost:4317 | OTLP collector endpoint |
DAKERA_AUDIT_LOG | false | Enable audit logging |
Observability & monitoring
Dakera exports OpenTelemetry traces and Prometheus metrics. Configure OTEL to send traces to Jaeger, Grafana Tempo, or any OTLP-compatible collector:
| Variable | Default | Description |
DAKERA_TRACING_ENABLED | false | Enable OpenTelemetry distributed tracing |
OTEL_EXPORTER_OTLP_ENDPOINT | http://localhost:4317 | OTLP gRPC collector endpoint (Jaeger, Tempo, etc.) |
OTEL_SERVICE_NAME | dakera | Service name in traces |
OTEL_RESOURCE_ATTRIBUTES | — | Additional resource attributes (e.g. deployment.environment=prod) |
DAKERA_METRICS_PORT | 3300 | Port serving /metrics (Prometheus format) |
Prometheus scrape config: target dakera:3300/metrics. 13 built-in metrics covering request latency, cache hit rates, vector index size, memory count, and replication lag.
Backup configuration
Scheduled backups create encrypted, compressed snapshots of all data. Backups include vector indexes, memories, knowledge graph, and configuration.
| Variable | Default | Description |
DAKERA_BACKUP_ENABLED | false | Enable scheduled automatic backups |
DAKERA_BACKUP_INTERVAL | 86400 | Backup interval in seconds (default: 24 hours) |
DAKERA_BACKUP_PATH | ./backups | Directory for backup files (local or mounted volume) |
DAKERA_BACKUP_RETENTION | 7 | Number of backup snapshots to retain |
DAKERA_BACKUP_ENCRYPT | true | AES-256 encrypt backup files (uses DAKERA_ROOT_API_KEY as KDF input) |
Backups use zstd compression (~5x reduction). Trigger manual backups via dk admin backup or POST /admin/backup.