配置
您可以通过环境变量来修改 n8n 的设置。完整的可用配置列表请参阅环境变量。
通过命令行设置环境变量
npm
对于 npm 安装方式,可以在终端使用 export
命令设置所需的环境变量,如下所示:
| export <variable>=<value>
|
Docker
在 Docker 中可以使用命令行中的 -e
标志:
| docker run -it --rm \
--name n8n \
-p 5678:5678 \
-e N8N_TEMPLATES_ENABLED="false" \
docker.n8n.io/n8nio/n8n
|
使用配置文件设置环境变量
您也可以通过配置文件来配置 n8n。
在配置文件中只需定义与默认值不同的参数。您可以使用多个配置文件,例如可以有一个包含通用基础设置的文件,以及针对不同环境包含特定值的文件。
npm
使用环境变量 N8N_CONFIG_FILES
设置 JSON 配置文件的路径:
| # Bash - 单个文件
export N8N_CONFIG_FILES=/<path-to-config>/my-config.json
# Bash - 多个文件用逗号分隔
export N8N_CONFIG_FILES=/<path-to-config>/my-config.json,/<path-to-config>/production.json
# PowerShell - 单个文件,为当前用户持久化
# 注意:在 Unix 系统上设置作用域(Process、User、Machine)无效
[Environment]::SetEnvironmentVariable('N8N_CONFIG_FILES', '<path-to-config>\config.json', 'User')
|
示例文件:
| {
"executions": {
"saveDataOnSuccess": "none"
},
"generic": {
"timezone": "Europe/Berlin"
},
"nodes": {
"exclude": "[\"n8n-nodes-base.executeCommand\",\"n8n-nodes-base.writeBinaryFile\"]"
}
}
|
JSON 格式说明
您不能总是从环境变量参考文档推断出正确的 JSON 格式。例如,要将 N8N_METRICS
设置为 true
,您需要这样写:
| {
"endpoints": {
"metrics": {
"enable": true
}
}
}
|
有关预期设置的完整详情,请参考源代码中的 Schema 文件。
Docker 配置
在 Docker 中,您可以在 docker-compose.yaml
文件的 n8n: environment:
元素中设置环境变量。
例如:
| n8n:
environment:
- N8N_TEMPLATES_ENABLED=false
|
将敏感数据保存在单独文件中
您可以在环境变量后添加 _FILE
后缀,通过单独文件提供配置,从而避免直接使用环境变量传递敏感信息。n8n 会从指定名称的文件中加载数据,这使得从 Docker 密钥 和 Kubernetes 密钥 加载数据成为可能。
有关每个变量的详细信息,请参阅环境变量。
虽然大多数环境变量都可以使用 _FILE
后缀,但对于凭据和数据库配置等敏感数据尤为实用。以下是一些示例:
1
2
3
4
5
6
7
8
9
10
11
12 | CREDENTIALS_OVERWRITE_DATA_FILE=/path/to/credentials_data
DB_TYPE_FILE=/path/to/db_type
DB_POSTGRESDB_DATABASE_FILE=/path/to/database_name
DB_POSTGRESDB_HOST_FILE=/path/to/database_host
DB_POSTGRESDB_PORT_FILE=/path/to/database_port
DB_POSTGRESDB_USER_FILE=/path/to/database_user
DB_POSTGRESDB_PASSWORD_FILE=/path/to/database_password
DB_POSTGRESDB_SCHEMA_FILE=/path/to/database_schema
DB_POSTGRESDB_SSL_CA_FILE=/path/to/ssl_ca
DB_POSTGRESDB_SSL_CERT_FILE=/path/to/ssl_cert
DB_POSTGRESDB_SSL_KEY_FILE=/path/to/ssl_key
DB_POSTGRESDB_SSL_REJECT_UNAUTHORIZED_FILE=/path/to/ssl_reject_unauth
|