CLI Reference

Reference for the rustfs command-line interface, including the server, info, and tls subcommands, key flags with environment variable equivalents, and volume path syntax.

The rustfs binary ships three subcommands. Running rustfs with no subcommand starts the server.

Subcommands

CommandDescription
rustfs server [OPTIONS] <VOLUMES>...Start the object storage server (default when no subcommand is given).
rustfs info [--all] [--json] [system|runtime|build|config|deps]Display system, runtime, build, configuration, or dependency information.
rustfs tls inspect --path <DIR>Inspect a TLS certificate directory layout and parsing status.
Examples
rustfs server /data/rustfs
rustfs info --all --json
rustfs tls inspect --path /etc/rustfs/tls

Legacy invocation compatibility

Arguments are preprocessed for backward compatibility, so older invocation styles keep working:

Legacy formInterpreted as
rustfs /datarustfs server /data
rustfs --address :9000 /datarustfs server --address :9000 /data
rustfs (no arguments)rustfs server with volumes read from RUSTFS_VOLUMES
rustfs --inforustfs info
rustfs helprustfs --help

Server flags

Every server flag has an environment variable equivalent; the flag wins when both are set.

FlagEnvironment variableDefaultDescription
<VOLUMES>... (positional)RUSTFS_VOLUMESrequiredStorage volumes or endpoints, space-separated.
--addressRUSTFS_ADDRESS:9000S3 API bind address (ADDRESS:PORT, IP or hostname).
--server-domainsRUSTFS_SERVER_DOMAINSunsetComma-separated domains for virtual-hosted-style requests.
--access-keyRUSTFS_ACCESS_KEYunsetRoot access key (conflicts with --access-key-file).
--access-key-fileRUSTFS_ACCESS_KEY_FILEunsetFile containing the root access key.
--secret-keyRUSTFS_SECRET_KEYunsetRoot secret key (conflicts with --secret-key-file).
--secret-key-fileRUSTFS_SECRET_KEY_FILEunsetFile containing the root secret key.
--console-enableRUSTFS_CONSOLE_ENABLEtrueEnable the embedded web console.
--console-addressRUSTFS_CONSOLE_ADDRESS:9001Console bind address.
--obs-endpointRUSTFS_OBS_ENDPOINTemptyOTLP/HTTP base URL for traces, metrics, and logs.
--tls-pathRUSTFS_TLS_PATHunsetTLS certificate directory for the API and console.
--licenseRUSTFS_LICENSEunsetLicense string.
--regionRUSTFS_REGIONunsetService region reported to clients.
--kms-enableRUSTFS_KMS_ENABLEfalseEnable KMS server-side encryption.
--kms-backendRUSTFS_KMS_BACKENDlocalKMS backend: local, vault / vault-kv2, vault-transit.
--kms-key-dirRUSTFS_KMS_KEY_DIRunsetKey directory for the local KMS backend.
--kms-local-master-keyRUSTFS_KMS_LOCAL_MASTER_KEYunsetMaster key for local KMS key-file encryption.
--kms-vault-addressRUSTFS_KMS_VAULT_ADDRESSunsetVault address for the Vault backends.
--kms-vault-tokenRUSTFS_KMS_VAULT_TOKENunsetVault token for the Vault backends.
--kms-vault-mount-pathRUSTFS_KMS_VAULT_MOUNT_PATHunsetVault mount path.
--kms-default-key-idRUSTFS_KMS_DEFAULT_KEY_IDunsetDefault KMS key ID for encryption.
--kms-allow-insecure-dev-defaultsRUSTFS_KMS_ALLOW_INSECURE_DEV_DEFAULTSfalseAllow development-only insecure KMS defaults.
--buffer-profileRUSTFS_BUFFER_PROFILEGeneralPurposeWorkload profile for adaptive buffer sizing.
--buffer-profile-disableRUSTFS_BUFFER_PROFILE_DISABLEfalseUse legacy fixed-size buffers.

:::note If neither --access-key/--secret-key nor their file variants are provided, the server falls back to the built-in default credentials (rustfsadmin/rustfsadmin) and logs a warning. Set real credentials for any non-throwaway deployment. :::

Volume syntax

Volumes are passed as positional arguments (or via RUSTFS_VOLUMES) and are space-separated.

Ellipses expansion

A volume token may contain one or more {N...M} ranges, which expand numerically:

Ellipses expansion
# Expands to /data/rustfs0 /data/rustfs1 /data/rustfs2 /data/rustfs3
rustfs server /data/rustfs{0...3}

# Multi-node: expands across hosts and disks
rustfs server http://node{1...4}:9000/data/rustfs{0...3}

Rules verified from the parser:

  • The range format is {N...M} where N and M are decimal or hexadecimal positive integers and M must be greater than N.
  • A single token may carry multiple ranges (e.g. host range plus disk range); all combinations are expanded.
  • The maximum expanded size of one range is 10,000 entries.

Multiple pools

Separate server pools are expressed as space-separated groups of endpoints. Each argument (one per space) forms its own expansion group:

Two pools
rustfs server http://node{1...4}:9000/data/rustfs{0...3} http://node{5...8}:9000/data/rustfs{0...3}

When set through the environment, the same string goes into RUSTFS_VOLUMES:

Via environment
export RUSTFS_VOLUMES="http://node{1...4}:9000/data/rustfs{0...3}"
rustfs server

On this page