mesa is configured through a TOML config file. The configuration file is searched for in the following locations
(highest priority first):
$XDG_CONFIG_HOME/mesa/config.toml(Linux only)$HOME/.config/mesa/config.toml/etc/mesa/config.toml
You can override the path to the config file with the
--config-path flag.# The domain at which all Mesa services are exposed.
#
# You can specify a custom domain, if you are self-hosting Mesa.
service-domain = "mesa.dev"
# The path at which the filesystem should be mounted.
#
# Your organizations will be visible in this path.
mount-point = "/tmp/mesa/mnt"
# The POSIX owning user of the filesystem and all children.
#
# Note that, at this moment, we do not support user names.
uid = 1000
# The POSIX owning group of the filesystem and all children.
#
# Note that, at this moment, we do not support group names.
gid = 1000
# You can list out all organizations you are a member of under this section.
#
# Note that you will need to provide the organization API key. Additionally,
# you may also pass per-repo configurations.
#
# For example:
#
# [organizations.tyrell-corp]
# api-key = "<your-api-key>"
#
# [organizations.tyrell-corp.repos.nexus-replicants]
# rev = { bookmark = "main" } # or: rev = { change-id = "abc123..." }
[organizations]
[cache]
# Enable or disable the disk cache.
#
# NOTE: disabling the disk cache will result in a severe performance hit.
enabled = true
# The path to the cache directory.
#
# Mesa will store its cached data in this directory.
path = "/tmp/mesa/cache"
# Optionally set a maximum bound for the disk cache.
#
# This field supports rich values, so you can specify:
#
# max-size = "10GB'
#
# or
#
# max-size = "100MB"
# max-size =
# Optionally set a maximum bound for the in-memory cache.
#
# This controls how much RAM Mesa uses for caching file contents
# and directory listings. The default is 320 MB.
#
# max-memory-size = "512MB"
#
# or
#
# max-memory-size = "1GB"
# max-memory-size =
# Daemon configuration.
[daemon]
# The path to the PID file for the daemon.
pid-file = "/tmp/mesa/mesa.pid"
# Configuration for the daemon logging.
[daemon.log]
# Where to write log output.
#
# target = { file = "/path/to/your/file" }
# uses the given file path to output logs
#
# target = "stdout"
# writes the log output to stdout
#
# target = "stderr"
# writes the log output to stderr
target = "stdout"
# Enable ANSI color in log output.
#
# color = "auto"
# decides based on whether the output file is a TTY (and $NO_COLOR)
#
# color = "always"
# forces the color to be enabled (disrespecting $NO_COLOR)
#
# color = "never"
# disables color output
color = "auto"
# Telemetry configuration for exporting OpenTelemetry traces.
[telemetry]
# Whether to send telemetry data to Mesa's servers.
#
# Although our default is to disable this field, we highly encourage you to
# enable vendor telemetry, as that allows us to catch bugs, as well as assist
# you better in case you run into any issues.
vendor = false
# If you wish to add an additional collector for your own internal telemetry,
# add it here.
#
# Example:
#
# collector-url = https://acme-corp.priv.mesa.dev/v1/traces
# collector-url =
# Speculative prefetching configuration.
[prefetch]
# Enable or disable speculative prefetching.
#
# When enabled, looking up a directory will trigger background
# fetching of its children's tree listings and blob content.
enabled = true
# Maximum number of concurrent fetch operations.
max-concurrency = 8
Daemon mode
You can runmesa mount as a background daemon:
mesa mount --daemonize
[daemon.log] section of the config file:
[daemon.log]
# Where to write logs: "stdout", "stderr", or a file path.
target = { file = "/var/log/mesa.log" }
# Color mode: "auto", "always", or "never".
color = "auto"

