Skip to content

Environment Variables

Every chatto.toml setting can be overridden with an environment variable. The naming pattern is CHATTO_{SECTION}_{KEY} in uppercase.

CHATTO_LOG_LEVEL info
TOML: general.log_level

Log level. Values: debug, info, warn, error.

CHATTO_WEBSERVER_URL required
TOML: webserver.url

Public URL of the instance, used for absolute links and OAuth redirects.

CHATTO_WEBSERVER_PORT 4000
TOML: webserver.port

Port to listen on.

CHATTO_WEBSERVER_COOKIE_SIGNING_SECRET required
TOML: webserver.cookie_signing_secret

256-bit hex secret for signing session cookies. Generate with openssl rand -hex 32.

CHATTO_WEBSERVER_WEBSOCKET_COMPRESSION true
TOML: webserver.websocket_compression

Enable WebSocket compression.

CHATTO_WEBSERVER_REQUEST_LOGGING false
TOML: webserver.request_logging

Log HTTP requests.

CHATTO_CORE_ASSETS_SIGNING_SECRET required
TOML: core.assets.signing_secret

256-bit hex secret for signing asset URLs. Generate with openssl rand -hex 32.

CHATTO_CORE_ASSETS_MAX_UPLOAD_SIZE 25 MB
TOML: core.assets.max_upload_size

Max file upload size (e.g., 25MB, 25 MiB).

CHATTO_CORE_ASSETS_STORAGE_BACKEND nats
TOML: core.assets.storage_backend

Storage backend for file attachments. Values: nats, s3.

CHATTO_NATS_EMBEDDED_ENABLED true
TOML: nats.embedded.enabled

Enable the embedded NATS server. Set to false when connecting to an external NATS server.

CHATTO_NATS_EMBEDDED_PORT 4222
TOML: nats.embedded.port

Embedded NATS server port.

CHATTO_NATS_EMBEDDED_BIND_ADDRESS 127.0.0.1
TOML: nats.embedded.bind_address

Embedded NATS server bind address.

CHATTO_NATS_EMBEDDED_DATA_DIR ./data
TOML: nats.embedded.data_dir

JetStream data directory for the embedded server.

CHATTO_NATS_EMBEDDED_AUTH_TOKEN
TOML: nats.embedded.auth_token

Auth token for the embedded NATS server. Must match CHATTO_NATS_CLIENT_TOKEN when using token auth.

CHATTO_NATS_CLIENT_URL nats://localhost:4222
TOML: nats.client.url

NATS server URL to connect to.

CHATTO_NATS_CLIENT_AUTH_METHOD token
TOML: nats.client.auth_method

NATS authentication method. Values: none, token, userpass, credentials, nkey.

CHATTO_NATS_CLIENT_TOKEN
TOML: nats.client.token

NATS auth token (when using token auth method). Must match CHATTO_NATS_EMBEDDED_AUTH_TOKEN when using the embedded server.

CHATTO_SMTP_ENABLED false
TOML: smtp.enabled

Enable SMTP email sending.

CHATTO_SMTP_HOST
TOML: smtp.host

SMTP server hostname.

CHATTO_SMTP_PORT
TOML: smtp.port

SMTP port. Common values: 587 (TLS), 465 (SSL), 25 (unencrypted).

CHATTO_SMTP_USERNAME
TOML: smtp.username

SMTP username.

CHATTO_SMTP_PASSWORD
TOML: smtp.password

SMTP password.

CHATTO_SMTP_FROM
TOML: smtp.from

From address for outgoing emails.

CHATTO_PUSH_ENABLED false
TOML: push.enabled

Enable Web Push notifications.

CHATTO_PUSH_VAPID_PUBLIC_KEY
TOML: push.vapid_public_key

VAPID public key for Web Push. Generate with npx web-push generate-vapid-keys.

CHATTO_PUSH_VAPID_PRIVATE_KEY
TOML: push.vapid_private_key

VAPID private key for Web Push.

CHATTO_PUSH_VAPID_SUBJECT
TOML: push.vapid_subject

VAPID subject identifier. Must be a mailto: or https: URL.

CHATTO_ADMIN_EMAILS
TOML: admin.emails

Comma-separated list of instance admin email addresses. Only verified email addresses are matched.