Configure Mach5 One
Mach5 One reads configuration from a TOML file.
Default config path:
~/.mach5-one/mach5-one.toml
Create the default config and data directories:
mach5-one init
Use a custom config file:
mach5-one --config ./mach5-one.toml start
You can also set:
export MACH5_ONE_CONFIG=./mach5-one.toml
mach5-one start
Example config
[server]
http_port = 8080
pg_port = 5432
[storage]
data_dir = "~/.mach5-one/data"
[metadata]
backend = "sqlite"
[engine]
workers = 1
# memory_limit = "4GB"
[controllers]
warehouse_interval_secs = 10
compaction_interval_secs = 60
mv_refresh_interval_secs = 30
mv_max_concurrent_jobs = 1
generation_plan_max_ingestor_workflows_limit = 8
generation_plan_append_batch_size_bytes = 1073741824
[ingestion]
# kafka_brokers = "localhost:9092"
[observability]
log_level = "info"
[ui]
# dex_dist_path = "/path/to/data-explorer/dist"
Server ports
[server]
http_port = 8080
pg_port = 5432
http_portserves the Web UI,/apis,/mcp,/session, and/version.txt.pg_portserves the PostgreSQL-compatible SQL endpoint.
The HTTP and PostgreSQL ports must be different.
Data directory
[storage]
data_dir = "~/.mach5-one/data"
Mach5 One stores local server state under data_dir.
UI assets
[ui]
dex_dist_path = "/path/to/data-explorer/dist"
When dex_dist_path is set, Mach5 One serves Data Explorer from /.
Logging
[observability]
log_level = "info"
The RUST_LOG environment variable can also control logging:
RUST_LOG=debug mach5-one start
Secrets
Mach5 One can read local secrets from:
<data_dir>/secrets/
You can also define secrets in the config file:
[secrets.my-kafka-creds]
username = "admin"
password = "redacted"
Do not commit real secrets to Git.