Reference

Configuration

Configuring your Monospace environment.

Monospace Server can be configured using environment variables or a config.yaml file. Environment variables are prefixed with MONOSPACE_.

For nested configurations, double underscores (__) are used to separate levels.

Server

VariableTypeDefaultDescription
MONOSPACE_HOSTstring127.0.0.1Address the server binds to
MONOSPACE_PORTinteger8100Port the server listens on
MONOSPACE_BASE_URLURLhttp://localhost:3000/Public base URL used in emails, OAuth redirects, and generated links
MONOSPACE_SERVE_STATIC_DIRstring./publicDirectory to serve static files from. Defaults to the public folder next to the server binary

System Database

Configures the database Monospace uses to store its own metadata (workspaces, roles, policies, etc.). Currently supports PostgreSQL.

VariableTypeDefaultDescription
MONOSPACE_SYSTEM_DATABASE__PROVIDERstringDatabase provider. Currently: postgres

PostgreSQL Provider

VariableTypeDefaultDescription
MONOSPACE_SYSTEM_DATABASE__HOSTstringDatabase hostname
MONOSPACE_SYSTEM_DATABASE__PORTintegerDatabase port
MONOSPACE_SYSTEM_DATABASE__USERstringDatabase username
MONOSPACE_SYSTEM_DATABASE__PASSWORDstringDatabase password
MONOSPACE_SYSTEM_DATABASE__DBNAMEstringDatabase name

SSL Configuration

VariableTypeDefaultDescription
MONOSPACE_SYSTEM_DATABASE__SSL__MODEstringrequireSSL mode: disable, prefer, require, verify-ca, verify-full
MONOSPACE_SYSTEM_DATABASE__SSL__CA_CERTstringCA certificate (base64-encoded or file path)
MONOSPACE_SYSTEM_DATABASE__SSL__CLIENT_CERTstringClient certificate (base64-encoded)
MONOSPACE_SYSTEM_DATABASE__SSL__CLIENT_KEYstringClient private key (base64-encoded)
MONOSPACE_SYSTEM_DATABASE__SSL__CLIENT_KEY_PASSWORDstringPassword for encrypted client key

File Storage

Configures where Monospace stores uploaded files and assets.

VariableTypeDefaultDescription
MONOSPACE_SYSTEM_FILE_STORAGE__PROVIDERstringStorage provider: local or s3
MONOSPACE_REDIRECT_ASSET_READbooleanfalseRedirect asset reads to the file storage provider instead of proxying through the server

Local Provider

VariableTypeDefaultDescription
MONOSPACE_SYSTEM_FILE_STORAGE__ROOT_PATHstringAbsolute path to the directory where files are stored

S3 Provider

Compatible with AWS S3 and S3-compatible services (MinIO, Cloudflare R2, etc.).

VariableTypeDefaultDescription
MONOSPACE_SYSTEM_FILE_STORAGE__BUCKETstringS3 bucket name
MONOSPACE_SYSTEM_FILE_STORAGE__ACCESS_KEY_IDstringAWS access key ID
MONOSPACE_SYSTEM_FILE_STORAGE__SECRET_ACCESS_KEYstringAWS secret access key
MONOSPACE_SYSTEM_FILE_STORAGE__REGIONstringautoAWS region
MONOSPACE_SYSTEM_FILE_STORAGE__ENDPOINTstringCustom endpoint URL (for S3-compatible services)
MONOSPACE_SYSTEM_FILE_STORAGE__ROOT_PATHstringPrefix path within the bucket

Email

Configures outbound email for invitations, password resets, and notifications.

VariableTypeDefaultDescription
MONOSPACE_SYSTEM_EMAILER__PROVIDERstringEmail provider: smtp
MONOSPACE_SYSTEM_EMAILER__FROM_ADDRESSstringSender email address in the "From" header
MONOSPACE_SYSTEM_EMAILER__FROM_NAMEstringDisplay name in the "From" header

SMTP Provider

VariableTypeDefaultDescription
MONOSPACE_SYSTEM_EMAILER__HOSTstringSMTP server hostname
MONOSPACE_SYSTEM_EMAILER__PORTintegerSMTP server port (typically 25, 465, or 587)
MONOSPACE_SYSTEM_EMAILER__USERNAMEstringSMTP authentication username
MONOSPACE_SYSTEM_EMAILER__PASSWORDstringSMTP authentication password
MONOSPACE_SYSTEM_EMAILER__TLS_OFFbooleanfalseSet to true to disable TLS

Message Queue (RabbitMQ)

Monospace uses RabbitMQ for internal event processing.

VariableTypeDefaultDescription
MONOSPACE_RABBITMQ__HOSTstringRabbitMQ hostname
MONOSPACE_RABBITMQ__PORTinteger5672RabbitMQ port
MONOSPACE_RABBITMQ__USERstringRabbitMQ username
MONOSPACE_RABBITMQ__PASSWORDstringRabbitMQ password
MONOSPACE_RABBITMQ__VHOSTstring/RabbitMQ virtual host
MONOSPACE_RABBITMQ__USE_TLSbooleanfalseUse AMQPS instead of AMQP

Authentication & Tokens

VariableTypeDefaultDescription
MONOSPACE_ACCESS_TOKEN_TTLduration15mAccess token validity period
MONOSPACE_REFRESH_TOKEN_TTLduration7daysRefresh token validity period
MONOSPACE_RESET_PASSWORD_TOKEN_TTLduration15mPassword reset token validity period
MONOSPACE_RESET_PASSWORD_COOLDOWN_TTLduration30sCooldown before a user can request another password reset
MONOSPACE_INVITE_TOKEN_TTLduration7daysInvite token validity period
MONOSPACE_JWT_LEEWAYinteger60JWT clock skew tolerance in seconds
MONOSPACE_JWT_PRIVATE_KEYstringEd25519 private key for JWT signing (PEM content or file path)
MONOSPACE_JWT_PUBLIC_KEYstringEd25519 public key for JWT verification (PEM content or file path)

Duration values use human-readable format: 15m, 30s, 7days, 1h, etc.


Cookies

VariableTypeDefaultDescription
MONOSPACE_SESSION_COOKIE_NAMEstringmonospace_sessionName of the session cookie
MONOSPACE_REFRESH_COOKIE_NAMEstringmonospace_refreshName of the refresh token cookie
MONOSPACE_COOKIE_SECUREbooleantrueSet the Secure flag on cookies. Set to false for local development over HTTP

Limits

VariableTypeDefaultDescription
MONOSPACE_QUERY_LIMIT_DEFAULTinteger100Default page size when no limit is specified
MONOSPACE_QUERY_LIMIT_MAXintegerMaximum allowed page size. No limit if unset
MONOSPACE_QUERY_BATCH_SIZEintegerBatch size for bulk operations
MONOSPACE_QUERY_LIMIT_MAX_FEDERATEDinteger1000Maximum records fetched in a single cross-source relational query
MONOSPACE_MAX_PAYLOAD_SIZEstring2mMaximum request payload size. Supports g, m, k suffixes (bytes without suffix)
MONOSPACE_MAX_FILE_PAYLOAD_SIZEstring5mMaximum file upload size. Supports g, m, k suffixes (bytes without suffix)

Encryption (KMS)

Configures the Key Management Service used to encrypt sensitive values stored in the database.

VariableTypeDefaultDescription
MONOSPACE_KMS__TYPEstringKMS type. Currently: monospace (local encryption)
MONOSPACE_KMS__MASTER_KEYstringBase64-encoded master encryption key
MONOSPACE_KMS__MASTER_KEY__FILEstringPath to a file containing the master key

Content Security Policy

VariableTypeDefaultDescription
MONOSPACE_CONTENT_SECURITY_POLICY__ENABLEDbooleantrueEnable Content-Security-Policy headers
MONOSPACE_CONTENT_SECURITY_POLICY__DIRECTIVES__*stringOverride individual CSP directives

CORS

Controls the Cross-Origin Resource Sharing headers the engine sends. CORS is disabled by default — the engine sends no CORS headers until you enable it. Enable it to let browser clients on other origins call your API.

VariableTypeDefaultDescription
MONOSPACE_CORS__ENABLEDbooleanfalseSend CORS headers. The variables below apply only when enabled
MONOSPACE_CORS__ORIGINstringAllowed origins. Use true to mirror the request origin, * for any origin, or a comma-separated list of origins
MONOSPACE_CORS__METHODSstringGET, POST, PATCH, DELETEAllowed request methods
MONOSPACE_CORS__ALLOWED_HEADERSstringContent-Type, AuthorizationAllowed request headers. * allows any header
MONOSPACE_CORS__EXPOSED_HEADERSstringContent-RangeResponse headers exposed to the browser
MONOSPACE_CORS__CREDENTIALSbooleantrueAllow credentialed requests (cookies, Authorization header)
MONOSPACE_CORS__MAX_AGEduration18000sHow long a browser may cache the preflight response

The default methods, headers, credentials, and max age above apply when MONOSPACE_CORS__ENABLED is true and the variable is left unset.

A wildcard origin, method, or header cannot be combined with MONOSPACE_CORS__CREDENTIALS=true. The engine rejects this configuration at startup. Name explicit origins when you need to allow credentials.

Observability

VariableTypeDefaultDescription
MONOSPACE_LOGstringinfoLog level filter using tracing EnvFilter syntax. Examples: debug, info,aide=warn, monospace=trace
MONOSPACE_LOG_FORMATstringjsonLog output format: compact, full, pretty, or json. An invalid value fails startup
MONOSPACE_ENABLE_OTEL_EXPORTbooleanfalseExport traces to an OpenTelemetry collector

When MONOSPACE_ENABLE_OTEL_EXPORT is enabled, configure the collector endpoint using standard OpenTelemetry environment variables (e.g., OTEL_EXPORTER_OTLP_ENDPOINT).


Telemetry

VariableTypeDefaultDescription
MONOSPACE_TELEMETRY__ENABLEDbooleantrueSet to false to disable scheduled anonymous usage telemetry
MONOSPACE_INSTANCE_OWNER_SYNC_ENABLEDbooleantrueSet to false to opt out of syncing instance-owner details for compliance telemetry

Copyright © 2026