Skip to content
liteio

Configuration

Every flag and environment variable liteio accepts.

liteio reads configuration from command-line flags. Every flag has a corresponding environment variable in the form LITEIO_<FLAG_NAME_UPPERCASED> with hyphens replaced by underscores.

Core flags

Flag Env Default Description
--address LITEIO_ADDRESS :9000 S3 API listen address
--console-address LITEIO_CONSOLE_ADDRESS :9001 Web console listen address
--drives LITEIO_DRIVES Comma-separated drive paths or endpoint patterns
--parity LITEIO_PARITY drives/2 Number of parity shards per erasure set
--access-key LITEIO_ACCESS_KEY Root credential access key
--secret-key LITEIO_SECRET_KEY Root credential secret key

Cluster flags

These flags are only needed in distributed mode. A single-node deployment omits them entirely.

Flag Env Default Description
--cluster-address LITEIO_CLUSTER_ADDRESS Inter-node RPC listen address. Setting this enables distributed mode.
--node-host LITEIO_NODE_HOST Hostname of this node (used to detect local vs remote drives)
--peers LITEIO_PEERS Comma-separated cluster addresses of peer nodes
--cluster-cert LITEIO_CLUSTER_CERT Path to TLS certificate for inter-node mTLS
--cluster-key LITEIO_CLUSTER_KEY Path to TLS private key for inter-node mTLS
--cluster-ca LITEIO_CLUSTER_CA Path to CA certificate bundle for inter-node mTLS
--cluster-server-name LITEIO_CLUSTER_SERVER_NAME TLS server name used when dialing peers

TLS flags

Flag Env Default Description
--tls-cert LITEIO_TLS_CERT TLS certificate for the S3 API listener
--tls-key LITEIO_TLS_KEY TLS private key for the S3 API listener
--console-tls-cert LITEIO_CONSOLE_TLS_CERT TLS certificate for the console listener
--console-tls-key LITEIO_CONSOLE_TLS_KEY TLS private key for the console listener
--console-insecure-cookie LITEIO_CONSOLE_INSECURE_COOKIE false Allow the console session cookie over plain HTTP (dev only)

Metrics flag

Flag Env Default Description
--metrics-token LITEIO_METRICS_TOKEN Bearer token required to scrape /metrics. No token = endpoint disabled.

Debug flag

Flag Env Default Description
--debug-address LITEIO_DEBUG_ADDRESS Address to serve net/http/pprof handlers for CPU and memory profiling

Drive patterns

In distributed mode, --drives accepts endpoint patterns using brace expansion:

https://node{1...4}.example.com:9100/mnt/disk{1...8}

This expands to 32 drive endpoints (4 nodes × 8 disks). liteio distributes them across erasure sets automatically based on the total drive count and the configured parity level.

A drive endpoint is local to the node when its hostname matches --node-host. Remote drives are served over the inter-node RPC transport; local drives use direct O_DIRECT I/O.

Environment-only settings

A few low-level knobs are only exposed as environment variables.

Env Description
LITEIO_GO_MAX_PROCS Overrides GOMAXPROCS. Defaults to the number of available CPUs.

Example: single node

liteio \
  --address :9000 \
  --drives /mnt/d1,/mnt/d2,/mnt/d3,/mnt/d4 \
  --parity 2 \
  --access-key admin \
  --secret-key changeme \
  --metrics-token secret-scrape-token \
  --tls-cert /etc/liteio/server.crt \
  --tls-key /etc/liteio/server.key

Example: environment-only

All flags can be set from the environment, which is useful in containerized deployments where you want to avoid shell quoting:

export LITEIO_ADDRESS=:9000
export LITEIO_DRIVES=/mnt/d1,/mnt/d2,/mnt/d3,/mnt/d4
export LITEIO_ACCESS_KEY=admin
export LITEIO_SECRET_KEY=changeme
liteio