Skip to main content
Version: 0.8

Configure

Marmot is configured using a YAML file or environment variables. All settings have sensible defaults so you only need to specify what you want to change.

Configuration Topics​

Configuration File​

By default, Marmot looks for config.yaml in the current directory. Use the --config flag to specify a different path.

database:
host: localhost
port: 5432
user: postgres
password: secret
name: marmot
server:
host: 0.0.0.0
port: 8080
logging:
level: info
format: json

Environment Variables​

All configuration options can be set via environment variables using the MARMOT_ prefix with underscores separating nested keys. For example, database.host becomes MARMOT_DATABASE_HOST.

Database​

Marmot requires PostgreSQL 14 or later. Ensure the database user has privileges to create tables and indexes.

KeyDescriptionDefaultEnvironment Variable
database.hostPostgreSQL hostlocalhostMARMOT_DATABASE_HOST
database.portPostgreSQL port5432MARMOT_DATABASE_PORT
database.userDatabase usernamepostgresMARMOT_DATABASE_USER
database.passwordDatabase password-MARMOT_DATABASE_PASSWORD
database.nameDatabase namemarmotMARMOT_DATABASE_NAME
database.sslmodeSSL mode (disable, require, verify-full)disableMARMOT_DATABASE_SSLMODE
database.maxConnsMaximum open connections10MARMOT_DATABASE_MAX_CONNS
database.idleConnsMinimum idle connections5MARMOT_DATABASE_IDLE_CONNS
database.connLifetimeConnection lifetime in minutes30MARMOT_DATABASE_CONN_LIFETIME

Server​

KeyDescriptionDefaultEnvironment Variable
server.hostBind address0.0.0.0MARMOT_SERVER_HOST
server.portPort number8080MARMOT_SERVER_PORT
server.root_urlPublic URL of this Marmot instance-MARMOT_SERVER_ROOT_URL
server.tls.cert_pathPath to server TLS certificate-MARMOT_SERVER_TLS_CERT_PATH
server.tls.key_pathPath to server TLS private key-MARMOT_SERVER_TLS_KEY_PATH
server.tls.ca_cert_pathPath to CA cert for client verification (mTLS)-MARMOT_SERVER_TLS_CA_CERT_PATH
Root URL Required for Authentication

server.root_url must be set when using OAuth/OIDC authentication or CLI login (marmot login). It is the URL that users access Marmot from (e.g. https://marmot.example.com). This is used to generate OAuth callback URLs and redirect users after authentication.

server:
root_url: https://marmot.example.com

Or via environment variable:

export MARMOT_SERVER_ROOT_URL=https://marmot.example.com

Logging​

Marmot uses structured logging. Set the format to console for human-readable output during development.

KeyDescriptionDefaultEnvironment Variable
logging.levelLog level (debug, info, warn, error)infoMARMOT_LOGGING_LEVEL
logging.formatOutput format (json, console)jsonMARMOT_LOGGING_FORMAT
KeyDescriptionDefaultEnvironment Variable
search.timeoutSearch query timeout in seconds10MARMOT_SEARCH_TIMEOUT

See Elasticsearch for options related to the optional Elasticsearch search backend.

OpenLineage​

KeyDescriptionDefaultEnvironment Variable
openlineage.auth.enabledRequire authentication for the OpenLineage endpointtrueMARMOT_OPENLINEAGE_AUTH_ENABLED