Environment Variable Reference

May 14, 2026 · View on GitHub

Complete reference for all Dakera server environment variables. Set these in docker/.env (Docker Compose) or in your Kubernetes Secret/ConfigMap.

Required (Production)

VariableDescription
DAKERA_ROOT_API_KEYRoot API key. Generate with openssl rand -hex 32. The default compose refuses to start without this.
MINIO_ROOT_USERMinIO admin username. Change from minioadmin in production.
MINIO_ROOT_PASSWORDMinIO admin password. Change from minioadmin in production.

Core

VariableDefaultDescription
DAKERA_HOST0.0.0.0Bind address
DAKERA_PORT3000REST API port
DAKERA_GRPC_PORT50051gRPC API port
DAKERA_STORAGEmemoryStorage backend: memory (ephemeral) or s3 (persistent)
RUST_LOGinfoLog verbosity (error, warn, info, debug, trace)
DAKERA_AUTH_ENABLEDtrue (prod) / false (local)Require API key authentication

S3 / MinIO Storage

Required when DAKERA_STORAGE=s3.

VariableDefaultDescription
DAKERA_S3_ENDPOINTS3-compatible endpoint (e.g. http://minio:9000)
DAKERA_S3_BUCKETdakeraStorage bucket name
DAKERA_S3_REGIONus-east-1S3 region
AWS_ACCESS_KEY_IDS3 access key (or DAKERA_S3_ACCESS_KEY)
AWS_SECRET_ACCESS_KEYS3 secret key (or DAKERA_S3_SECRET_KEY)

Cache

VariableDefaultDescription
DAKERA_L1_CACHE_SIZE536870912 (512MB)In-memory L1 cache size in bytes
DAKERA_L2_CACHE_PATH/data/rocksdbRocksDB L2 cache directory
DAKERA_CACHE_DIR/data/cacheGeneral cache directory

Tiered Storage

Automatically moves data between hot (L1), warm (L2/RocksDB), and cold (L3/S3) tiers.

VariableDefaultDescription
DAKERA_TIERED_STORAGEfalseEnable tiered storage
DAKERA_HOT_TO_WARM_SECS3600Seconds before hot → warm tier transition
DAKERA_WARM_TO_COLD_SECS86400Seconds before warm → cold tier transition
DAKERA_AUTO_TIERfalseEnable automatic tier transitions
DAKERA_TIER_CHECK_INTERVAL_SECS300Interval between tier sweep checks

Cluster (HA Mode)

VariableDefaultDescription
DAKERA_CLUSTER_MODEfalseEnable cluster mode
DAKERA_CLUSTER_ROLENode role: primary or replica
DAKERA_CLUSTER_SEEDSComma-separated seed nodes (host:port,host:port)
DAKERA_NODE_IDUnique node identifier
DAKERA_GOSSIP_PORT7946Gossip protocol port
DAKERA_GOSSIP_BIND0.0.0.0:7946Gossip bind address
DAKERA_API_ADVERTISEAdvertised API URL for the node
DAKERA_CACHE_REDIS_URLRedis URL for distributed cache
DAKERA_REDIS_URLRedis URL for rate-limit counters and SSE pub/sub

Request Limits

VariableDefaultDescription
DAKERA_MAX_BODY_SIZE524288000Max request body size in bytes (500 MB)
DAKERA_REQUEST_TIMEOUT120Request timeout in seconds

Docker Compose Port Overrides

The default and HA compose files expose different ports to allow co-deployment on the same host.

Default Profile (docker-compose.yml)

VariableDefaultService
DAKERA_PORT3000Dakera REST API
DAKERA_GRPC_PORT50051Dakera gRPC
MINIO_API_PORT9000MinIO S3 API
MINIO_CONSOLE_PORT9001MinIO web console
PROMETHEUS_PORT9090Prometheus (monitoring profile)
GRAFANA_PORT3003Grafana (monitoring profile)
DASHBOARD_PORT3002Dashboard UI (dashboard profile)

HA Profile (docker-compose.ha.yml)

All HA ports use the HA_ prefix to avoid conflicts with the default profile.

VariableDefaultService
HA_LB_HTTP_PORT3100Traefik → Dakera REST API
HA_LB_GRPC_PORT50151Traefik → Dakera gRPC
HA_TRAEFIK_PORT8080Traefik dashboard
HA_MINIO_API_PORT9100MinIO S3 API
HA_MINIO_CONSOLE_PORT9101MinIO web console
HA_REDIS_PORT6480Redis
HA_DASHBOARD_PORT3202Dashboard UI
HA_PROMETHEUS_PORT9190Prometheus (monitoring profile)
HA_GRAFANA_PORT3203Grafana (monitoring profile)
HA_JAEGER_UI_PORT16787Jaeger UI (monitoring profile)