Configuration environment variables#
File-based configuration
You can provide a configuration file for n8n. You can also append _FILE
to certain variables to provide their configuration in a separate file. Variables that support this have the "/_FILE
" option listed below.
Credentials#
Enabling overwrites for credentials allows you to set default values for credentials which get automatically populated. The user can't see or change these credentials. The format is { CREDENTIAL_NAME: { PARAMETER: VALUE }}
.
Variable | Type | Default | Description |
---|---|---|---|
CREDENTIALS_OVERWRITE_DATA / _FILE |
* | - | Overwrites for credentials. |
CREDENTIALS_OVERWRITE_ENDPOINT |
String | - | The API endpoint to fetch credentials. |
CREDENTIALS_DEFAULT_NAME |
String | My credentials |
The default name for credentials. |
Database#
Variable | Type | Default | Description |
---|---|---|---|
DB_TYPE / _FILE |
Enum string:sqlite , mariadb (deprecated), mysqldb (deprecated), postgresdb |
sqlite |
The database to use. |
DB_TABLE_PREFIX |
* | - | Prefix to use for table names. |
MySQL#
Deprecated
n8n deprecated MySQL and MariaDB as backend databases in version 0.227.0.
n8n recommends using PostgreSQL.
Refer to how to export and import workflows and credentials for instructions.
Variable | Type | Default | Description |
---|---|---|---|
DB_MYSQLDB_DATABASE / _FILE |
String | n8n |
The name of the MySQL database. Default value is n8n . |
DB_MYSQLDB_HOST / _FILE |
String | localhost |
The MySQL host. Default value is localhost . |
DB_MYSQLDB_PORT / _FILE |
Number | 3306 |
The MySQL port. Default value is 3306 . |
DB_MYSQLDB_USER / _FILE |
String | root |
The MySQL user. Default value is root . |
DB_MYSQLDB_PASSWORD / _FILE |
String | - | The MySQL password. |
PostgreSQL#
Variable | Type | Default | Description |
---|---|---|---|
DB_POSTGRESDB_DATABASE / _FILE |
String | n8n |
The name of the PostgreSQL database. Default value is n8n . |
DB_POSTGRESDB_HOST / _FILE |
String | localhost |
The PostgreSQL host. Default value is localhost . |
DB_POSTGRESDB_PORT / _FILE |
Number | 5432 |
The PostgreSQL port. Default value is 5432 . |
DB_POSTGRESDB_USER / _FILE |
String | root |
The PostgreSQL user. Default value is root . |
DB_POSTGRESDB_PASSWORD / _FILE |
String | - | The PostgreSQL password. |
DB_POSTGRESDB_SCHEMA / _FILE |
String | public |
The PostgreSQL schema. Default value is public . |
DB_POSTGRESDB_SSL_CA / _FILE |
String | - | The PostgreSQL SSL certificate authority. |
DB_POSTGRESDB_SSL_CERT / _FILE |
String | - | The PostgreSQL SSL certificate. |
DB_POSTGRESDB_SSL_KEY / _FILE |
String | - | The PostgreSQL SSL key. |
DB_POSTGRESDB_SSL_REJECT_UNAUTHORIZED / _FILE |
Boolean | true |
If n8n should reject unauthorized SSL connections (true) or not (false). |
SQLite#
Variable | Type | Default | Description |
---|---|---|---|
DB_SQLITE_VACUUM_ON_STARTUP |
Boolean | false |
Runs VACUUM operation on startup to rebuild the database. Reduces file size and optimizes indexes. This is a long running blocking operation and increases start-up time. |
Deployment#
Variable | Type | Default | Description |
---|---|---|---|
N8N_EDITOR_BASE_URL |
String | - | Public URL where users can access the editor. Also used for emails sent from n8n. |
N8N_CONFIG_FILES |
String | - | Use to provide the path to any JSON configuration file. |
N8N_DISABLE_UI |
Boolean | false |
Disable the UI (true) or not (false). |
N8N_TEMPLATES_ENABLED |
Boolean | true |
Enable workflow templates (true) or disable (false). |
N8N_TEMPLATES_HOST |
String | https://api.n8n.io |
Change this if creating your own workflow template library. Note that to use your own workflow templates library, your API must provide the same endpoints and response structure as n8n's. Refer to Workflow templates for more information. |
N8N_ENCRYPTION_KEY |
String | Random key generated by n8n | Provide a custom key used to encrypt credentials in the n8n database. By default n8n generates a random key on first launch. |
N8N_USER_FOLDER |
String | user-folder |
Provide the path where n8n will create the .n8n folder. This directory stores user-specific data, such as database file and encryption key. |
N8N_PATH |
String | / |
The path n8n deploys to. |
N8N_HOST |
String | localhost |
Host name n8n runs on. |
N8N_PORT |
Number | 5678 |
The HTTP port n8n runs on. |
N8N_LISTEN_ADDRESS |
String | 0.0.0.0 |
The IP address n8n should listen on. |
N8N_PROTOCOL |
Enum string: http , https |
http |
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_PERSONALIZATION_ENABLED |
Boolean | true |
Whether to ask users personalisation questions and then customise n8n accordingly. |
N8N_VERSION_NOTIFICATIONS_ENABLED |
Boolean | true |
When enabled, n8n sends notifications of new versions and security updates. |
N8N_VERSION_NOTIFICATIONS_ENDPOINT |
String | https://api.n8n.io/versions/ |
The endpoint to retrieve where version information. |
N8N_VERSION_NOTIFICATIONS_INFO_URL |
String | https://docs.n8n.io/getting-started/installation/updating.html |
The URL displayed in the New Versions panel for additional information. |
N8N_DIAGNOSTICS_ENABLED |
Boolean | true |
Whether to share selected, anonymous telemetry with n8n |
N8N_DIAGNOSTICS_CONFIG_FRONTEND |
String | 1zPn9bgWPzlQc0p8Gj1uiK6DOTn;https://telemetry.n8n.io |
Telemetry configuration for the frontend. |
N8N_DIAGNOSTICS_CONFIG_BACKEND |
String | 1zPn7YoGC3ZXE9zLeTKLuQCB4F6;https://telemetry.n8n.io/v1/batch |
Telemetry configuration for the backend. |
N8N_PUSH_BACKEND |
String | websocket |
Choose whether the n8n backend uses server-sent events (sse ) or WebSockets (websocket ) to send changes to the UI. |
VUE_APP_URL_BASE_API |
String | http://localhost:5678/ |
Used when building the n8n-editor-ui package manually to set how the frontend can reach the backend API. |
N8N_HIRING_BANNER_ENABLED |
Boolean | true |
Whether to show the n8n hiring banner in the console (true) or not (false). |
N8N_PUBLIC_API_SWAGGERUI_DISABLED |
Boolean | false |
Whether the Swagger UI (API playground) is disabled (true) or not (false). |
Binary data#
By default, n8n uses memory to store binary data. Enterprise users can choose to use an external service instead. Refer to External storage for more information on using external storage for binary data.
Variable | Type | Default | Description |
---|---|---|---|
N8N_AVAILABLE_BINARY_DATA_MODES |
String | filesystem |
A comma separated list of available binary data modes. |
N8N_BINARY_DATA_STORAGE_PATH |
String | N8N_USE_FOLDER/binaryData |
The path where n8n stores binary data. |
N8N_DEFAULT_BINARY_DATA_MODE |
String | default |
The default binary data mode. default keeps binary data in memory. Set to filesystem to use the filesystem, or s3 to AWS S3. |
User management SMTP, and two-factor authentication#
Refer to User management for more information on setting up user management and emails.
Variable | Type | Default | Description |
---|---|---|---|
N8N_EMAIL_MODE |
String | smtp |
Enable emails. |
N8N_SMTP_HOST |
String | - | your_SMTP_server_name |
N8N_SMTP_PORT |
Number | - | your_SMTP_server_port |
N8N_SMTP_USER |
String | - | your_SMTP_username |
N8N_SMTP_PASS |
String | - | your_SMTP_password |
N8N_SMTP_OAUTH_SERVICE_CLIENT |
String | - | If using 2LO with a service account this is your client ID |
N8N_SMTP_OAUTH_PRIVATE_KEY |
String | - | If using 2LO with a service account this is your private key |
N8N_SMTP_SENDER |
String | - | Sender email address. You can optionally include the sender name. Example with name: N8N <contact@n8n.com> |
N8N_SMTP_SSL |
Boolean | true |
Whether to use SSL for SMTP (true) or not (false). |
N8N_UM_EMAIL_TEMPLATES_INVITE |
String | - | Full path to your HTML email template. This overrides the default template for invite emails. |
N8N_UM_EMAIL_TEMPLATES_PWRESET |
String | - | Full path to your HTML email template. This overrides the default template for password reset emails. |
N8N_USER_MANAGEMENT_JWT_SECRET |
String | - | Set a specific JWT secret. By default, n8n generates one on start. |
N8N_MFA_ENABLED |
Boolean | true |
Whether to enable two-factor authentication (true) or disable (false). n8n ignores this if existing users have 2FA enabled. |
Endpoints#
Variable | Type | Default | Description |
---|---|---|---|
N8N_PAYLOAD_SIZE_MAX |
Number | 16 |
The maximum payload size in MB. |
N8N_METRICS |
Boolean | false |
Whether to enable the /metrics endpoint. |
N8N_METRICS_PREFIX |
String | n8n_ |
Optional prefix for n8n specific metrics names. |
N8N_METRICS_INCLUDE_DEFAULT_METRICS |
Boolean | true |
Whether to expose default system and node.js metrics. |
N8N_METRICS_INCLUDE_CACHE_METRICS |
Boolean | false | Whether to include metrics (true) for cache hits and misses, or not include them (false). |
N8N_METRICS_INCLUDE_MESSAGE_EVENT_BUS_METRICS |
Boolean | false |
Whether to include metrics (true) for events, or not include them (false). |
N8N_METRICS_INCLUDE_WORKFLOW_ID_LABEL |
Boolean | false |
Whether to include a label for the workflow ID on workflow metrics. |
N8N_METRICS_INCLUDE_NODE_TYPE_LABEL |
Boolean | false |
Whether to include a label for the node type on node metrics. |
N8N_METRICS_INCLUDE_CREDENTIAL_TYPE_LABEL |
Boolean | false |
Whether to include a label for the credential type on credential metrics. |
N8N_METRICS_INCLUDE_API_ENDPOINTS |
Boolean | false |
Whether to expose metrics for API endpoints. |
N8N_METRICS_INCLUDE_API_PATH_LABEL |
Boolean | false |
Whether to include a label for the path of API invocations. |
N8N_METRICS_INCLUDE_API_METHOD_LABEL |
Boolean | false |
Whether to include a label for the HTTP method (GET, POST, ...) of API invocations. |
N8N_METRICS_INCLUDE_API_STATUS_CODE_LABEL |
Boolean | false |
Whether to include a label for the HTTP status code (200, 404, ...) of API invocations. |
N8N_ENDPOINT_REST |
String | rest |
The path used for REST endpoint. |
N8N_ENDPOINT_WEBHOOK |
String | webhook |
The path used for webhook endpoint. |
N8N_ENDPOINT_WEBHOOK_TEST |
String | webhook-test |
The path used for test-webhook endpoint. |
N8N_ENDPOINT_WEBHOOK_WAIT |
String | webhook-waiting |
The path used for waiting-webhook endpoint. |
WEBHOOK_URL |
String | - | Used to manually provide the Webhook URL when running n8n behind a reverse proxy. See here for more details. |
N8N_DISABLE_PRODUCTION_MAIN_PROCESS |
Boolean | false |
Disable production webhooks from main process. This helps ensure no HTTP traffic load to main process when using webhook-specific processes. |
External hooks#
Variable | Type | Description |
---|---|---|
EXTERNAL_HOOK_FILES |
String | Files containing external hooks. Provide multiple files as a colon-separated list (": "). |
Executions#
Variable | Type | Default | Description |
---|---|---|---|
EXECUTIONS_PROCESS (deprecated) |
Enum string: main , own |
main |
Deprecated. Whether n8n executions run in their own process or the main process. Refer to Execution modes and processes for more details. |
EXECUTIONS_MODE |
Enum string: regular , queue |
regular |
Whether executions should run directly or using queue. Refer to Execution modes and processes for more details. |
EXECUTIONS_TIMEOUT |
Number | -1 |
Sets a default timeout (in seconds) to all workflows after which n8n stops their execution. Users can override this for individual workflows up to the duration set in EXECUTIONS_TIMEOUT_MAX . Set EXECUTIONS_TIMEOUT to -1 to disable. |
EXECUTIONS_TIMEOUT_MAX |
Number | 3600 |
The maximum execution time (in seconds) that users can set for an individual workflow. |
EXECUTIONS_DATA_SAVE_ON_ERROR |
Enum string: all , none |
all |
Whether n8n saves execution data on error. |
EXECUTIONS_DATA_SAVE_ON_SUCCESS |
Enum string: all , none |
all |
Whether n8n saves execution data on success. |
EXECUTIONS_DATA_SAVE_ON_PROGRESS |
Boolean | false |
Whether to save progress for each node executed (true) or not (false). |
EXECUTIONS_DATA_SAVE_MANUAL_EXECUTIONS |
Boolean | true |
Whether to save data of executions when started manually. |
EXECUTIONS_DATA_PRUNE |
Boolean | true |
Whether to delete data of past executions on a rolling basis. |
EXECUTIONS_DATA_MAX_AGE |
Number | 336 |
The execution age (in hours) before it's deleted. |
EXECUTIONS_DATA_PRUNE_MAX_COUNT |
Number | 10000 |
Maximum number of executions to keep in the database. 0 = no limit |
EXECUTIONS_DATA_HARD_DELETE_BUFFER |
Number | 1 |
How old (hours) the finished execution data has to be to get hard-deleted. By default, this buffer excludes recent executions as the user may need them while building a workflow. |
EXECUTIONS_DATA_PRUNE_HARD_DELETE_INTERVAL |
Number | 15 |
How often (minutes) execution data should be hard-deleted. |
EXECUTIONS_DATA_PRUNE_SOFT_DELETE_INTERVAL |
Number | 60 |
How often (minutes) execution data should be soft-deleted. |
Logs#
n8n logs#
Variable | Type | Default | Description |
---|---|---|---|
N8N_LOG_LEVEL |
Enum string: info , warn , error , verbose , debug |
info |
Log output level. |
N8N_LOG_OUTPUT |
Enum string: console , file |
console |
Where to output logs. Provide multiple values as a comma-seperated list. |
N8N_LOG_FILE_COUNT_MAX |
Number | 100 |
Max number of log files to keep. |
N8N_LOG_FILE_SIZE_MAX |
Number | 16 |
Max size of each log file in MB. |
N8N_LOG_FILE_LOCATION |
String | file |
Log file location. Requires N8N_LOG_OUTPUT set to file . |
DB_LOGGING_ENABLED |
Boolean | false |
Whether to enable database-specific logging. |
DB_LOGGING_OPTIONS |
Enum string: query , error , schema , warn , info , log |
error |
Database log output level. To enable all logging, specify all . |
DB_LOGGING_MAX_EXECUTION_TIME |
Number | 1000 |
Maximum execution time (in milliseconds) before n8n logs a warning. Set to 0 to disable long running query warning. |
Log streaming#
Refer to Log streaming for more information on this feature.
Variable | Type | Default | Description |
---|---|---|---|
N8N_EVENTBUS_CHECKUNSENTINTERVAL |
Number | 0 |
How often (in milliseconds) to check for unsent event messages. Can in rare cases cause a message to be sent twice. Set to 0 to disable it. |
N8N_EVENTBUS_LOGWRITER_SYNCFILEACCESS |
Boolean | false |
Whether all file access happens synchronously within the thread (true) or not (false). |
N8N_EVENTBUS_LOGWRITER_KEEPLOGCOUNT |
Number | 3 |
How many event log files to keep. |
N8N_EVENTBUS_LOGWRITER_MAXFILESIZEINKB |
Number | 10240 |
Maximum size (in kilo-bytes) of an event log file before a new one is started. |
N8N_EVENTBUS_LOGWRITER_LOGBASENAME |
String | n8nEventLog |
Basename of the event log file. |
External data storage#
Refer to External storage for more information on using external storage for binary data.
Variable | Type | Default | Description |
---|---|---|---|
N8N_EXTERNAL_STORAGE_S3_HOST |
String | - | Host of the n8n bucket in S3-compatible external storage. For example, s3.us-east-1.amazonaws.com |
N8N_EXTERNAL_STORAGE_S3_BUCKET_NAME |
String | - | Name of the n8n bucket in S3-compatible external storage. |
N8N_EXTERNAL_STORAGE_S3_BUCKET_REGION |
String | - | Region of the n8n bucket in S3-compatible external storage. For example, us-east-1 |
N8N_EXTERNAL_STORAGE_S3_ACCESS_KEY |
String | - | Access key in S3-compatible external storage |
N8N_EXTERNAL_STORAGE_S3_ACCESS_SECRET |
String | - | Access secret in S3-compatible external storage. |
Nodes#
Variable | Type | Default | Description |
---|---|---|---|
NODES_INCLUDE |
Array of strings | - | Specify which nodes to load. |
NODES_EXCLUDE |
Array of strings | - | Specify which nodes not to load. For example, to block nodes that can be a security risk if users aren't trustworthy: NODES_EXCLUDE: "[\"n8n-nodes-base.executeCommand\", \"n8n-nodes-base.readBinaryFile\", \"n8n-nodes-base.readBinaryFiles\", \"n8n-nodes-base.writeBinaryFile\"]" |
NODE_FUNCTION_ALLOW_BUILTIN |
String | - | Permit users to import specific built-in modules in the Code node. Use * to allow all. n8n disables importing modules by default. |
NODE_FUNCTION_ALLOW_EXTERNAL |
String | - | Permit users to import specific external modules (from n8n/node_modules ) in the Code node. n8n disables importing modules by default. |
NODES_ERROR_TRIGGER_TYPE |
String | n8n-nodes-base.errorTrigger |
Specify which node type to use as Error Trigger. |
N8N_CUSTOM_EXTENSIONS |
String | - | Specify the path to additional directories containing your custom nodes. |
N8N_COMMUNITY_PACKAGES_ENABLED |
Boolean | true |
Whether community nodes are enabled (true) or not (false). |
Queues#
Variable | Type | Default | Description |
---|---|---|---|
QUEUE_BULL_PREFIX |
String | - | Prefix to use for all queue keys. |
QUEUE_BULL_REDIS_DB |
Number | 0 |
The Redis database used. |
QUEUE_BULL_REDIS_HOST |
String | localhost |
The Redis host. |
QUEUE_BULL_REDIS_PORT |
Number | 6379 |
The Redis port used. |
QUEUE_BULL_REDIS_USERNAME |
String | - | The Redis username (needs Redis version 6 or above). Don't define it for Redis < 6 compatibility |
QUEUE_BULL_REDIS_PASSWORD |
String | - | The Redis password. |
QUEUE_BULL_REDIS_TIMEOUT_THRESHOLD |
Number | 10000 |
The Redis timeout threshold (in seconds). |
QUEUE_BULL_REDIS_CLUSTER_NODES |
String | - | Expects a comma-separated list of Redis Cluster nodes in the format host:port , for the Redis client to initially connect to. If running in queue mode (EXECUTIONS_MODE = queue ), setting this variable will create a Redis Cluster client instead of a Redis client, and n8n will ignore QUEUE_BULL_REDIS_HOST and QUEUE_BULL_REDIS_PORT . |
QUEUE_BULL_REDIS_TLS |
Boolean | false |
Enable TLS on Redis connections. |
QUEUE_RECOVERY_INTERVAL |
Number | 60 |
Interval (in seconds) for active polling to the queue to recover from Redis crashes. 0 disables recovery. May increase Redis traffic significantly. |
QUEUE_WORKER_TIMEOUT |
Number | 30 |
How long should n8n wait (seconds) for running executions before exiting worker process on shutdown. |
QUEUE_HEALTH_CHECK_ACTIVE |
Boolean | false |
Whether to enable health checks (true) or disable (false). |
QUEUE_HEALTH_CHECK_PORT |
Number | - | The port to serve health checks on. |
QUEUE_WORKER_LOCK_DURATION |
Number | 30000 |
How long (in ms) is the lease period for a worker to work on a message. |
QUEUE_WORKER_LOCK_RENEW_TIME |
Number | 15000 |
How frequently (in ms) should a worker renew the lease time. |
QUEUE_WORKER_STALLED_INTERVAL |
Number | 30000 |
How often should a worker check for stalled jobs (use 0 for never). |
QUEUE_WORKER_MAX_STALLED_COUNT |
Number | 1 |
Maximum amount of times a stalled job will be re-processed. |
Security#
Variable | Type | Default | Description |
---|---|---|---|
N8N_AUTH_EXCLUDE_ENDPOINTS |
String | - | Exclude endpoints from authentication checks. Provide multiple endpoints as a colon-seperated list (": "). The endpoints must not start with a forward slash ("/ "). |
N8N_BLOCK_ENV_ACCESS_IN_NODE |
Boolean | false |
Whether to allow users to access environment variables in expressions and the Code node (false) or not (true). |
Source control#
Variable | Type | Default | Description |
---|---|---|---|
N8N_SOURCECONTROL_DEFAULT_SSH_KEY_TYPE |
String | ed25519 |
Set to rsa to make RSA the default SSH key type for Source control setup. |
Timezone and localization#
Variable | Type | Default | Description |
---|---|---|---|
GENERIC_TIMEZONE |
* | America/New_York |
The n8n instance timezone. Important for schedule nodes (such as Cron). |
N8N_DEFAULT_LOCALE |
String | en |
A locale identifier, compatible with the Accept-Language header. n8n doesn't support regional identifiers, such as de-AT . When running in a locale other than the default, n8n displays UI strings in the selected locale, and falls back to en for any untranslated strings. |
Workflows#
Variable | Type | Default | Description |
---|---|---|---|
WORKFLOWS_DEFAULT_NAME |
String | My workflow |
The default name used for new workflows. |
N8N_ONBOARDING_FLOW_DISABLED |
Boolean | false |
Whether to show onboarding tips when creating a new workflow (true) or not (false). |
N8N_WORKFLOW_TAGS_DISABLED |
Boolean | false |
Whether to disable workflow tags (true) or enable tags (false). |
N8N_WORKFLOW_CALLER_POLICY_DEFAULT_OPTION |
String | workflowsFromSameOwner |
Which workflows can call a workflow. Options are: any , none , workflowsFromAList , workflowsFromSameOwner . This feature requires Workflow sharing. |
License#
Variable | Type | Default | Description |
---|---|---|---|
N8N_HIDE_USAGE_PAGE |
boolean | false |
Hide the usage and plans page in the app. |
N8N_LICENSE_ACTIVATION_KEY |
String | '' |
Activation key to initialize license. Not applicable if the n8n instance was already activated. |
N8N_LICENSE_AUTO_RENEW_ENABLED |
Boolean | true |
Whether autorenew for licenses is enabled (true) or not (false). |
N8N_LICENSE_AUTO_RENEW_OFFSET |
Number | 60 * 60 * 72 (72 hours) |
How many seconds before expiry a license should automatically renew. |
N8N_LICENSE_SERVER_URL |
String | http://license.n8n.io/v1 |
Server URL to retrieve license. |