Skip to main content

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.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

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