Configuration Reference
Complete reference for Engine, Control, and Ledger configuration.
Engine Configuration
Precedence (highest first): environment variables (INFERADB__ENGINE__*) > YAML config (--config) > CLI flags.
Engine Settings
| Key | Env Var | Default | Description |
|---|---|---|---|
threads |
INFERADB__ENGINE__THREADS |
CPU count | Worker thread count |
logging |
INFERADB__ENGINE__LOGGING |
info |
Log level (trace, debug, info, warn, error) |
listen.http |
INFERADB__ENGINE__LISTEN__HTTP |
0.0.0.0:8080 |
HTTP listen address |
listen.grpc |
INFERADB__ENGINE__LISTEN__GRPC |
0.0.0.0:8081 |
gRPC listen address |
listen.mesh |
INFERADB__ENGINE__LISTEN__MESH |
0.0.0.0:8082 |
Mesh/internal listen address |
storage |
INFERADB__ENGINE__STORAGE |
memory |
Storage backend (memory or ledger) |
ledger.endpoint |
INFERADB__ENGINE__LEDGER__ENDPOINT |
— | Ledger gRPC endpoint |
ledger.client_id |
INFERADB__ENGINE__LEDGER__CLIENT_ID |
— | Client ID for Ledger authentication |
ledger.namespace_id |
INFERADB__ENGINE__LEDGER__NAMESPACE_ID |
— | Namespace ID for multi-tenant Ledger |
cache.enabled |
INFERADB__ENGINE__CACHE__ENABLED |
true |
Enable evaluation and relationship cache |
cache.capacity |
INFERADB__ENGINE__CACHE__CAPACITY |
100000 |
Maximum cache entries |
cache.ttl |
INFERADB__ENGINE__CACHE__TTL |
300 |
Cache TTL in seconds |
token.cache_ttl |
INFERADB__ENGINE__TOKEN__CACHE_TTL |
300 |
Token validation cache TTL in seconds |
token.clock_skew |
INFERADB__ENGINE__TOKEN__CLOCK_SKEW |
30 |
Allowed clock skew for token validation (seconds) |
token.max_age |
INFERADB__ENGINE__TOKEN__MAX_AGE |
3600 |
Maximum token age in seconds |
pem |
INFERADB__ENGINE__PEM |
— | Path to PEM file for token signing/verification |
discovery.mode |
INFERADB__ENGINE__DISCOVERY__MODE |
none |
Peer discovery mode (none, kubernetes, tailscale) |
mesh.url |
INFERADB__ENGINE__MESH__URL |
— | Mesh endpoint URL for peer communication |
mesh.timeout |
INFERADB__ENGINE__MESH__TIMEOUT |
5000 |
Mesh request timeout in milliseconds |
mesh.cache_ttl |
INFERADB__ENGINE__MESH__CACHE_TTL |
60 |
Mesh peer list cache TTL in seconds |
auth.enabled |
INFERADB__ENGINE__AUTH__ENABLED |
true |
Enable request authentication |
auth.replay_protection |
INFERADB__ENGINE__AUTH__REPLAY_PROTECTION |
true |
Enable JTI-based replay protection |
Example YAML Configuration
threads: 4
logging: info
listen:
http: "0.0.0.0:8080"
grpc: "0.0.0.0:8081"
mesh: "0.0.0.0:8082"
storage: ledger
ledger:
endpoint: "http://ledger:50051"
client_id: "engine-01"
cache:
enabled: true
capacity: 100000
ttl: 300
token:
cache_ttl: 300
clock_skew: 30
max_age: 3600
pem: "/etc/inferadb/signing.pem"
discovery:
mode: kubernetes
auth:
enabled: true
replay_protection: true
Validate Configuration
inferadb-engine --config config.yaml --validate
Control Configuration
The Control service is configured via CLI flags:
| Flag | Default | Description |
|---|---|---|
--listen |
0.0.0.0:9090 |
HTTP listen address |
--storage |
memory |
Storage backend (memory or ledger) |
--dev-mode |
false |
Enable development mode (relaxed security) |
--key-file |
— | Path to Ed25519 signing key |
--ledger-endpoint |
— | Ledger gRPC endpoint |
--frontend-url |
http://localhost:3000 |
Dashboard URL (for CORS and redirects) |
--log-level |
info |
Log level |
Example
inferadb-control \
--listen 0.0.0.0:9090 \
--storage ledger \
--ledger-endpoint http://ledger:50051 \
--key-file /etc/inferadb/control.key \
--frontend-url https://dashboard.example.com \
--log-level info
Ledger Configuration
The Ledger is configured via CLI flags:
| Flag | Default | Description |
|---|---|---|
--listen |
0.0.0.0:50051 |
gRPC listen address |
--data |
./data |
Data directory for B+ tree storage |
--single |
— | Run as a single-node cluster (no quorum) |
--join |
— | Join an existing cluster at the given address |
--cluster N |
— | Bootstrap a new cluster with N initial nodes |
--peers |
— | Comma-separated list of peer addresses |
--region |
— | Region identifier for data residency |
--metrics |
— | Metrics listen address (Prometheus) |
Single-Node (Development)
inferadb-ledger --single --data /var/lib/inferadb
Three-Node Cluster
# Node 1 (bootstrap)
inferadb-ledger --cluster 3 --data /data --listen 0.0.0.0:50051 \
--peers node2:50051,node3:50051
# Node 2
inferadb-ledger --join node1:50051 --data /data --listen 0.0.0.0:50051
# Node 3
inferadb-ledger --join node1:50051 --data /data --listen 0.0.0.0:50051
Multi-Region
# US East node
inferadb-ledger --region us-east-1 --cluster 3 --data /data \
--peers node2:50051,node3:50051
# EU West node
inferadb-ledger --region eu-west-1 --cluster 3 --data /data \
--peers eu-node2:50051,eu-node3:50051