# Environment Variables ## Credentials Enabling overwrites for credentials allows you to set default values for credentials which get automatically prefilled. The user cannot see or change these credentials. The format is `{ CREDENTIAL_NAME: { PARAMTER: VALUE }}`. | Variable | Type | Description | | :------- | :--- | :---------- | | `CREDENTIALS_OVERWRITE_DATA` | `*` | Overwrites for credentials. | | `CREDENTIALS_OVERWRITE_ENDPOINT` | `string` | The API endpoint to fetch credentials. | ## Database | Variable | Type | Description | | :------- | :--- | :---------- | | `DB_TYPE` | `enum string`: `sqlite`, `mariadb`, `mysqldb`, `postgresdb` | The type of database to use. | | `DB_TABLE_PREFIX` | `*` | Prefix to be used for table names. | ### MySQL | Variable | Type | Description | | :------- | :--- | :---------- | | `DB_MYSQLDB_DATABASE` | `string` | The name of the MySQL database. | | `DB_MYSQLDB_HOST` | `string` | The MySQL host (e.g. `localhost`). | | `DB_MYSQLDB_PORT` | `number` | The MySQL port (e.g. `3306`). | | `DB_MYSQLDB_USER` | `string` | The MySQL user (e.g. `root`). | | `DB_MYSQLDB_PASSWORD` | `string` | The MySQL password. | ### Postgres | Variable | Type | Description | | :------- | :--- | :---------- | | `DB_POSTGRESDB_DATABASE` | `string` | The name of the PostgresDB database. | | `DB_POSTGRESDB_HOST` | `string` | The PostgresDB host (e.g. `localhost`). | | `DB_POSTGRESDB_PORT` | `number` | The PostgresDB port (e.g. `5432`). | | `DB_POSTGRESDB_USER` | `string` | The PostgresDB user (e.g. `root`). | | `DB_POSTGRESDB_PASSWORD` | `string` | The PostgresDB password. | | `DB_POSTGRESDB_SCHEMA` | `string` | The PostgresDB schema (e.g. `public`). | | `DB_POSTGRESDB_SSL_CA` | `string` | The PostgresDB SSL certificate authority. | | `DB_POSTGRESDB_SSL_CERT` | `string` | The PostgresDB SSL certificate. | | `DB_POSTGRESDB_SSL_KEY` | `string` | The PostgresDB SSL key. | | `DB_POSTGRESDB_SSL_REJECT_UNAUTHORIZED` | `boolean` | If unauthorized SSL connections should be rejected. | ### SQLite | Variable | Type | Description | | :------- | :--- | :---------- | | `DB_SQLITE_VACUUM_ON_STARTUP` | `boolean` | Runs `VACUUM` operation on startup to rebuild the database. Reduces file size and optimizes indexes. This is a long running blocking operation and will increase start-up time. | ## Deployment | Variable | Type | Description | | :------- | :--- | :---------- | | `N8N_PATH` | `string` | The path n8n is deployed to. | | `N8N_HOST` | `string` | Host name (e.g. `localhost`) where n8n can be reached. | | `N8N_PORT` | `number` | The HTTP port (e.g. `5678`) where n8n can be reached. | | `N8N_LISTEN_ADDRESS` | `string` | The IP address n8n should listen on. | | `N8N_PROTOCOL` | `enum string`: `http`, `https` | The protocol used to reach n8n. | | `N8N_SSL_KEY` | `string` | The SSL Key for HTTPS protocol. | | `N8N_SSL_CERT` | `string` | The SSL certificate for HTTPS protocol. | | `N8N_VERSION_NOTIFICATIONS_ENABLED` | `boolean` | When enables, notifications of new versions and security updates are provided. | | `N8N_VERSION_NOTIFICATIONS_ENDPOINT` | `string` | The endpoint where version information is retreived. By default `https://api.n8n.io/versions/` is used. | | `N8N_VERSION_NOTIFICATIONS_INFO_URL` | `string` | The URL displayed in the New Versions panel for additional information. By default `https://docs.n8n.io/getting-started/installation/updating.html` is used. | ## Endpoints | Variable | Type | Description | | :------- | :--- | :---------- | | `N8N_PAYLOAD_SIZE_MAX` | `number` | The maximum payload size in MB. | | `N8N_METRICS` | `boolean` | Whether to enable the metrics endpoint. | | `N8N_METRICS_PREFIX` | `string` | Optional prefix to be used for metrics names. | | `N8N_ENDPOINT_REST` | `string` | The path used for REST endpoint. | | `N8N_ENDPOINT_WEBHOOK` | `string` | The path used for webhook endpoint. | | `N8N_ENDPOINT_WEBHOOK_TEST` | `string` | The path used for test-webhook endpoint. | | `N8N_DISABLE_PRODUCTION_MAIN_PROCESS` | `boolean` | Disable production webhooks from main process. This helps ensures no HTTP traffic load to main process when using webhook-specific processes. | | `N8N_SKIP_WEBHOOK_DEREGISTRATION_SHUTDOWN` | `boolean` | Deregister webhooks on external services only when workflows are deactivated. | ## External Hooks | Variable | Type | Description | | :------- | :--- | :---------- | | `EXTERNAL_HOOK_FILES` | `string` | Files containing external hooks. Multiple files can be provided separated by colon (":"). | ## Executions | Variable | Type | Description | | :------- | :--- | :---------- | | `EXECUTIONS_PROCESS` | `enum string`: `main`, `own` | Whether processes are executed in their own process (default) or the main process. | | `EXECUTIONS_MODE` | `enum string`: `regular`, `queue` | Whether processes should run directly (default) or via queue. | | `EXECUTIONS_TIMEOUT` | `number` | The max run time (in seconds) before stopping a workflow execution. Set to `-1` to disable. | | `EXECUTIONS_TIMEOUT_MAX` | `number` | The max execution time (in seconds) that can be set for a workflow individually. | | `EXECUTIONS_DATA_SAVE_ON_ERROR` | `enum string`: `all`, `none` | Whether execution data is saved on error. | | `EXECUTIONS_DATA_SAVE_ON_SUCCESS` | `enum string`: `all`, `none` | Whether execution data is saved on success. | | `EXECUTIONS_DATA_SAVE_ON_PROGRESS` | `boolean` | Whether to save progress for each node executed. | | `EXECUTIONS_DATA_SAVE_MANUAL_EXECUTIONS` | `boolean` | Whether to save data of executions when started manually. | | `EXECUTIONS_DATA_PRUNE` | `boolean` | Whether to delete data of past executions on a rolling basis. | | `EXECUTIONS_DATA_MAX_AGE` | `number` | The execution age (in hours) before it is deleted. | | `EXECUTIONS_DATA_PRUNE_TIMEOUT` | `number` | The timeout (in seconds) after execution data has been pruned. | ## Logs | Variable | Type | Description | | :------- | :--- | :---------- | | `N8N_LOG_LEVEL` | `enum string`: `info`, `warn`, `error`, `verbose`, `debug` | Log output level. | | `N8N_LOG_OUTPUT` | `enum string`: `console`, `file` | Where to output logs. Multiple values can be provided separated by a comma. | | `N8N_LOG_FILE_COUNT_MAX` | `number` | Max number of log files to keep. | | `N8N_LOG_FILE_SIZE_MAX` | `number` | Max size of each log file in MB. | | `N8N_LOG_FILE_LOCATION` | `string` | Log file location. Only used if log output is set to `file`. | ## Nodes | Variable | Type | Description | | :------- | :--- | :---------- | | `NODES_INCLUDE` | `string` | Specify which nodes to load. | | `NODES_EXCLUDE` | `string` | Specify which nodes not to load. | | `NODES_ERROR_TRIGGER_TYPE` | `string` | Specify which node Node Type to use as Error Trigger. | ## Queues | Variable | Type | Description | | :------- | :--- | :---------- | | `QUEUE_BULL_PREFIX` | `string` | Prefix to be used for all queue keys. | | `QUEUE_BULL_REDIS_DB` | `number` | The Redis database used. | | `QUEUE_BULL_REDIS_HOST` | `string` | The Redis host (e.g. `localhost`). | | `QUEUE_BULL_REDIS_PORT` | `number` | The Redis port used (e.g. `6379`). | | `QUEUE_BULL_REDIS_PASSWORD` | `string` | The Redis password. | | `QUEUE_BULL_REDIS_TIMEOUT_THRESHOLD` | `number` | The Redis timeout threshold (in seconds). | | `QUEUE_RECOVERY_INTERVAL` | `number` | Internal (in seconds) for active polling to the queue to recover from Redis crashes. `0` is disabled. May increase Redis traffic significantly. | ## Security | Variable | Type | Description | | :------- | :--- | :---------- | | `N8N_AUTH_EXCLUDE_ENDPOINTS` | `string` | Additional endpoints to exclude auth checks. Multiple endpoints can be provided separated by a colon (":"). | | `N8N_BASIC_AUTH_ACTIVE` | `boolean` | Whether basic auth should be activated for editor and REST-API access. | | `N8N_BASIC_AUTH_USER` | `string` | The name of the n8n user for basic authentication. | | `N8N_BASIC_AUTH_PASSWORD` | `string` | The password of the n8n user for basic authentication. | | `N8N_BASIC_AUTH_HASH` | `boolean` | Whether the basic authentication password is hashed. | | `N8N_JWT_AUTH_ACTIVE` | `boolean` | Whether JWT authentication should be activated for editor and REST-API access. | | `N8N_JWT_AUTH_HEADER` | `string` | The request header containing a signed JWT. | | `N8N_JWT_AUTH_HEADER_VALUE_PREFIX` | `string` | Optional. The request header value prefix to strip. | | `N8N_JWKS_URI` | `string` | The URI to fetch JWK Set for JWT authentication. | | `N8N_JWT_ISSUER` | `string` | Optional. The expected JWT issuer. | | `N8N_JWT_NAMESPACE` | `string` | Optional. The expected JWT namespace. | | `N8N_JWT_ALLOWED_TENANT` | `string` | Optional. The allowed JWT tenant. | | `N8N_JWT_ALLOWED_TENANT_KEY` | `string` | Optional. The JWT tenant key name to inspect within the JWT namespace. | ## Timezone | Variable | Type | Description | | :------- | :--- | :---------- | | `GENERIC_TIMEZONE` | `*` | The timezone to use (e.g. `America/New York). Important for schedule nodes (i.e. Cron). | ## Workflows | Variable | Type | Description | | :------- | :--- | :---------- | | `WORKFLOWS_DEFAULT_NAME` | `string` | The default name used for new workflows (e.g. `My workflow`). |