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_port serves the Web UI, /apis, /mcp, /session, and /version.txt.
  • pg_port serves 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.

Analytics Cookies

Help us understand website usage.

Necessary storage remembers your choice. With your consent, Mach5 also uses PostHog analytics to measure website traffic and interactions.

Change this anytime from Cookie Settings in the footer. Privacy Notice.