Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Environment Variables

All Kiseki configuration is done via environment variables. No configuration files are used for runtime settings (I-K8: keys are never stored in configuration files).


Server configuration

VariableTypeDefaultDescription
KISEKI_DATA_ADDRSocketAddr0.0.0.0:9100Data-path gRPC listener address
KISEKI_ADVISORY_ADDRSocketAddr0.0.0.0:9101Advisory gRPC listener address (isolated runtime)
KISEKI_S3_ADDRSocketAddr0.0.0.0:9000S3 HTTP gateway listener address
KISEKI_NFS_ADDRSocketAddr0.0.0.0:2049NFS server listener address
KISEKI_METRICS_ADDRSocketAddr0.0.0.0:9090Prometheus metrics and admin UI listener address
KISEKI_DATA_DIRPathBuf(none)Persistent storage directory for redb databases. If unset, runs in-memory only.
KISEKI_NODE_IDu640Raft node ID. 0 = single-node mode.
KISEKI_BOOTSTRAPboolfalseCreate a well-known bootstrap shard on startup. Set to true or 1 for development/testing.

TLS configuration

TLS is enabled when all three path variables are set. Otherwise the server runs in plaintext mode (development only, logged as a warning).

VariableTypeDefaultDescription
KISEKI_CA_PATHPathBuf(none)Cluster CA certificate PEM file
KISEKI_CERT_PATHPathBuf(none)Node certificate chain PEM file
KISEKI_KEY_PATHPathBuf(none)Node private key PEM file
KISEKI_CRL_PATHPathBuf(none)Optional CRL PEM file for certificate revocation

Raft configuration

VariableTypeDefaultDescription
KISEKI_RAFT_ADDRSocketAddr(none)Raft RPC listen address. Required for multi-node clusters.
KISEKI_RAFT_PEERSString(empty)Comma-separated peer list in id=addr format, e.g. 1=10.0.0.1:9200,2=10.0.0.2:9200,3=10.0.0.3:9200

Metadata capacity (ADR-030)

VariableTypeDefaultDescription
KISEKI_META_SOFT_LIMIT_PCTu850Soft limit percentage for system disk metadata usage. Exceeding triggers inline threshold reduction.
KISEKI_META_HARD_LIMIT_PCTu875Hard limit percentage for system disk metadata usage. Exceeding forces inline threshold to INLINE_FLOOR and emits alert (I-SF2).
KISEKI_RAFT_INLINE_MBPSu3210Per-shard Raft inline throughput cap in MB/s. Prevents inline data from starving metadata-only Raft operations (I-SF7).

Client cache configuration

VariableTypeDefaultDescription
KISEKI_CACHE_MODEStringorganicCache mode: organic (LRU), pinned (staging-driven), or bypass (no caching)
KISEKI_CACHE_DIRPathBuf/tmp/kiseki-cacheL2 cache pool directory on local NVMe
KISEKI_CACHE_L2_MAXu6453687091200 (50 GB)Maximum L2 cache size in bytes
KISEKI_CACHE_POOL_IDString(generated)Adopt an existing L2 pool (128-bit hex). Used for staging handoff between processes.

Transport configuration

VariableTypeDefaultDescription
KISEKI_IB_DEVICEString(auto-detect)InfiniBand device name for RDMA verbs transport. If unset, auto-detects the first available device.

Observability

Standard Rust/tokio observability variables:

VariableTypeDefaultDescription
RUST_LOGStringinfoLog filter directive (e.g., kiseki_log=debug,kiseki_raft=trace)
OTEL_EXPORTER_OTLP_ENDPOINTString(none)OpenTelemetry collector endpoint for distributed tracing

Example: single-node development

export KISEKI_DATA_DIR=/var/lib/kiseki
export KISEKI_BOOTSTRAP=true
kiseki-server

Example: three-node cluster

# Node 1
export KISEKI_NODE_ID=1
export KISEKI_DATA_DIR=/var/lib/kiseki
export KISEKI_RAFT_ADDR=10.0.0.1:9200
export KISEKI_RAFT_PEERS=1=10.0.0.1:9200,2=10.0.0.2:9200,3=10.0.0.3:9200
export KISEKI_CA_PATH=/etc/kiseki/ca.pem
export KISEKI_CERT_PATH=/etc/kiseki/node1.pem
export KISEKI_KEY_PATH=/etc/kiseki/node1-key.pem
export KISEKI_BOOTSTRAP=true
kiseki-server