配置
您可以通过环境变量来修改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 - Single file
export N8N_CONFIG_FILES = /<path-to-config>/my-config.json
# Bash - Multiple files are comma-separated
export N8N_CONFIG_FILES = /<path-to-config>/my-config.json,/<path-to-config>/production.json
# PowerShell - Single file, persist for current user
# Note that setting scope (Process, User, Machine) has no effect on Unix systems
[ 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-Secrets 和Kubernetes-Secrets 加载数据成为可能。
有关每个变量的详细信息,请参阅环境变量 。
虽然大多数环境变量可以使用_FILE后缀,但对于敏感数据(如credentials 和数据库配置)使用该后缀更有优势。以下是一些示例:
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