Run gw-server config check against the exact environment before rollout. Alcarta has additional
bounded tuning keys; this page focuses on settings an operator normally changes.
| Setting |
Purpose |
GW_ENVIRONMENT |
Runtime safety profile, such as development or production |
GW_BASE_URL |
Public HTTPS origin, JWT issuer, and link base |
GW_BIND_ADDR |
Application listener |
GW_METRICS_BIND_ADDR |
Private metrics listener |
GW_DATABASE_URL |
PostgreSQL connection string |
GW_REDIS_URL |
Redis connection string |
GW_EVENT_BUS |
Coordination backend; use Redis for multiple replicas |
GW_EXPECT_HA |
Refuse unsafe process-local coordination in an HA deployment |
GW_MIGRATE_ON_BOOT |
Migration behavior during process startup |
GW_SWEEPER_ENABLED |
Run expiry and cleanup workers in this process |
GW_EXECUTOR_ENABLED |
Run approval execution workers in this process |
GW_OUTBOX_ENABLED |
Run webhook delivery workers in this process |
GW_CONFIG_FILE |
Optional TOML configuration path |
| Setting |
Purpose |
GW_JWT_ACTIVE_KEY_PATH |
Active Ed25519 signing key |
GW_JWT_ACTIVE_KID |
Identifier placed in new JWT headers |
GW_MESSAGE_HANDLE_KEY_PATH |
Opaque message-handle root key |
GW_SESSION_SECRET_PATH |
Browser-session root secret |
GW_KEK_ACTIVE_ID |
Active credential-wrapping key version |
GW_KEK_ACTIVE_PATH |
Active credential-wrapping key file |
Keep the matching key slot/path configuration for previous keys during rotation. Key material is
file-only.
| Setting |
Default |
Purpose |
GW_MONITOR_INBOX_MAX_TIMEOUT_SECONDS |
300 |
Maximum inbox wait |
GW_MONITOR_APPROVAL_MAX_TIMEOUT_SECONDS |
14400 |
Maximum approval wait |
GW_LONGPOLL_FALLBACK_POLL_SECONDS |
5 |
Poll fallback cadence |
GW_MAX_BODY_BYTES |
1 MiB |
Normal JSON request limit |
GW_MAX_UPLOAD_BYTES |
36 MiB |
Draft requests carrying base64 attachments |
GW_MAX_MESSAGE_BYTES |
25 MiB |
Decoded message-size limit |
GW_DRAFT_MAX_ATTACHMENTS |
10 |
Attachment-count limit |
GW_SEND_MAX_RECIPIENTS |
50 |
Total To, Cc, and Bcc recipients |
GW_SEND_MAX_DOMAINS |
25 |
Distinct recipient domains |
| Setting |
Purpose |
GW_LOG_LEVEL |
Runtime log filter |
GW_OTLP_ENDPOINT |
Enables OpenTelemetry export when set |
GW_OTLP_PROTOCOL |
grpc or http/protobuf |
GW_TRACE_SAMPLE_RATIO |
Normal trace sampling ratio |
GW_SHUTDOWN_GRACE_SECONDS |
Drain budget for in-flight work |
GW_EXECUTOR_WORKERS |
Approval executor concurrency |
GW_OUTBOX_WORKERS |
Webhook delivery concurrency |
Compose uses EMCP_* deployment variables to render canonical GW_* settings into its
containers. Consult .env.prod.example beside the Compose file for that mapping.