本文档概述了 n8n 中可用的命令行接口 (CLI) 命令以及控制从基本服务器设置到高级工作流执行行为的广泛配置选项。配置值可以通过环境变量或配置文件进行设置。
有关使用 Docker 部署 n8n 的信息,请参阅 Docker 部署。
n8n 提供了几个命令行命令来启动和管理系统的不同组件。主要命令包括:
来源:packages/cli/src/commands/start.ts39-46 packages/cli/src/commands/worker.ts17-21 packages/cli/src/commands/webhook.ts13-16
n8n 使用强类型配置系统,从环境变量和文件中加载设置。配置分为逻辑类别,例如数据库、执行、工作流等。
来源:packages/@n8n/config/src/decorators.ts packages/@n8n/config/src/index.ts packages/cli/src/config/index.ts39-70
start 命令启动主要的 n8n 进程,包括 Web UI、API 和工作流管理。
选项
--tunnel - 通过 hooks.n8n.cloud 隧道服务器运行 webhooks (用于测试/开发)--open, -o - 自动在浏览器中打开 UI--reinstallMissingPackages - 如果缺少节点包,尝试自我修复 n8nstart 命令初始化所有核心组件,包括:
来源:packages/cli/src/commands/start.ts40-62 packages/cli/src/commands/start.ts174-246
worker 命令启动一个工作进程,该进程在队列模式下处理工作流执行。
选项
--concurrency=<number> - 可以并行运行多少个作业 (默认值:10)当 n8n 在启用队列模式的分布式设置中运行时,使用 worker 命令。Worker 连接到与主进程相同的 Redis 实例,并从队列中拉取执行作业。
来源:packages/cli/src/commands/worker.ts17-28 packages/cli/src/commands/worker.ts135-147
webhook 命令启动一个专用进程来处理生产环境的 webhooks。
webhook 命令在队列模式下使用,用于将 webhook 处理与主进程分离。这使得 webhook 端点可以更好地扩展和提高可靠性。
来源:packages/cli/src/commands/webhook.ts13-16 packages/cli/src/commands/webhook.ts44-60
n8n 中的配置可以通过四种方式设置:
export N8N_PORT=5678)N8N_CONFIG_FILES 环境变量指定的 JSON 文件_FILE 后缀引用它 (例如:N8N_USER_MANAGEMENT_JWT_SECRET_FILE=/path/to/secret)当提供无效值时,n8n 将记录警告并改用默认值。
来源:packages/@n8n/config/src/decorators.ts99-117 packages/cli/src/config/index.ts39-94 packages/@n8n/config/test/config.test.ts415-426
这些选项控制您的 n8n 实例的基本服务器设置
| 选项 | 环境变量 | 默认 | 描述 |
|---|---|---|---|
| 路径 | N8N_PATH | / | n8n 部署的路径 |
| 主机 | N8N_HOST | localhost | n8n 可访问的主机名 |
| 端口 | N8N_PORT | 5678 | n8n 可访问的 HTTP 端口 |
| 监听地址 | N8N_LISTEN_ADDRESS | :: | n8n 应监听的 IP 地址 |
| 协议 | N8N_PROTOCOL | http | HTTP 协议 (http 或 https) |
| SSL 密钥 | N8N_SSL_KEY | `` | HTTPS 协议的 SSL 密钥 |
| SSL 证书 | N8N_SSL_CERT | `` | HTTPS 协议的 SSL 证书 |
| 编辑器基础 URL | N8N_EDITOR_BASE_URL | `` | 可访问编辑器的公共 URL |
| 代理跳数 | N8N_PROXY_HOPS | 0 | n8n 运行所在的反向代理数量 |
来源:packages/@n8n/config/src/index.ts86-103 packages/cli/src/config/schema.ts105-122
n8n 可以根据各种扩展和可靠性要求以不同的模式部署
来源: packages/cli/src/commands/start.ts203-214 packages/cli/src/commands/worker.ts62-65 packages/cli/src/commands/webhook.ts46-59
这些选项控制工作流的执行方式
| 选项 | 环境变量 | 默认 | 描述 |
|---|---|---|---|
| 执行模式 | EXECUTIONS_MODE | regular | 执行模式(regular 或 queue) |
| 最大超时时间 | EXECUTIONS_TIMEOUT | -1 | 最大执行时间(秒),超过此时间将停止执行(使用 -1 禁用超时) |
| 最大可配置超时时间 | EXECUTIONS_TIMEOUT_MAX | 3600 | 每个工作流可设置的最大超时时间(秒) |
| 出错时保存数据 | EXECUTIONS_DATA_SAVE_ON_ERROR | all | 出错时保存的执行数据(all 或 none) |
| 成功时保存数据 | EXECUTIONS_DATA_SAVE_ON_SUCCESS | all | 成功时保存的执行数据(all 或 none) |
| 保存执行进度 | EXECUTIONS_DATA_SAVE_ON_PROGRESS | false | 是否保存每个已执行节点的进度 |
| 保存手动执行 | EXECUTIONS_DATA_SAVE_MANUAL_EXECUTIONS | true | 保存通过编辑器启动的执行数据 |
| 队列恢复间隔 | N8N_EXECUTIONS_QUEUE_RECOVERY_INTERVAL | 180 | 检查队列恢复的频率(分钟) |
| 队列恢复批次大小 | N8N_EXECUTIONS_QUEUE_RECOVERY_BATCH | 100 | 检查队列恢复的执行批次大小 |
来源: packages/cli/src/config/schema.ts5-102 packages/cli/src/commands/start.ts365-398
| 选项 | 环境变量 | 默认 | 描述 |
|---|---|---|---|
| 生产环境限制 | N8N_CONCURRENCY_PRODUCTION_LIMIT | -1 | 在主进程(regular 模式)或工作进程(queue 模式)中允许同时运行的最大生产环境执行数 |
| 评估限制 | N8N_CONCURRENCY_EVALUATION_LIMIT | -1 | 允许同时运行的最大评估执行数 |
| Worker 并发数 | CLI 参数 --concurrency | 10 | 每个 Worker 可以并行运行的任务数(仅限 worker 命令) |
Worker 并发设置对于性能调优尤其重要。设置过低可能导致资源利用不足,而设置过高可能使系统过载。
来源: packages/cli/src/config/schema.ts13-25 packages/cli/src/commands/worker.ts23-28 packages/cli/src/commands/worker.ts135-147
n8n 支持多种数据库后端
| 选项 | 环境变量 | 默认 | 描述 |
|---|---|---|---|
| 数据库类型 | DB_TYPE | sqlite | 要使用的数据库类型(sqlite、postgresdb、mysqldb、mariadb) |
| 表前缀 | DB_TABLE_PREFIX | `` | 数据库表名称的前缀 |
来源: packages/@n8n/config/src/configs/database.config.ts139-150 packages/cli/src/commands/start.ts286-293
| 选项 | 环境变量 | 默认 | 描述 |
|---|---|---|---|
| 数据库 | DB_SQLITE_DATABASE | database.sqlite | SQLite 数据库文件名 |
| 连接池大小 | DB_SQLITE_POOL_SIZE | 0 | 连接池大小(设置为 0 可禁用连接池) |
| 启用 WAL | DB_SQLITE_ENABLE_WAL | false | 启用 SQLite 的 Write-Ahead Logging 模式 |
| 启动时执行 VACUUM | DB_SQLITE_VACUUM_ON_STARTUP | false | 启动时运行 VACUUM 以优化数据库 |
来源: packages/@n8n/config/src/configs/database.config.ts114-137 packages/cli/src/commands/start.ts286-293
| 选项 | 环境变量 | 默认 | 描述 |
|---|---|---|---|
| 主机 | DB_POSTGRESDB_HOST | localhost | PostgreSQL 数据库主机 |
| 端口 | DB_POSTGRESDB_PORT | 5432 | PostgreSQL 数据库端口 |
| 数据库 | DB_POSTGRESDB_DATABASE | n8n | PostgreSQL 数据库名 |
| 用户 | DB_POSTGRESDB_USER | postgres | PostgreSQL 数据库用户 |
| 密码 | DB_POSTGRESDB_PASSWORD | `` | PostgreSQL 数据库密码 |
| Schema | DB_POSTGRESDB_SCHEMA | 公开 | PostgreSQL 数据库 Schema |
| 连接池大小 | DB_POSTGRESDB_POOL_SIZE | 2 | 连接池大小 |
| 连接超时 | DB_POSTGRESDB_CONNECTION_TIMEOUT | 20000 | 连接超时时间(毫秒) |
来源: packages/@n8n/config/src/configs/database.config.ts53-88
| 选项 | 环境变量 | 默认 | 描述 |
|---|---|---|---|
| SSL 已启用 | DB_POSTGRESDB_SSL_ENABLED | false | 为 PostgreSQL 连接启用 SSL |
| CA 证书 | DB_POSTGRESDB_SSL_CA | `` | SSL 证书颁发机构文件 |
| 证书 | DB_POSTGRESDB_SSL_CERT | `` | SSL 客户端证书文件 |
| 键 | DB_POSTGRESDB_SSL_KEY | `` | SSL 客户端密钥文件 |
| 拒绝未经授权的连接 | DB_POSTGRESDB_SSL_REJECT_UNAUTHORIZED | true | 是否拒绝未经授权的 SSL 连接 |
来源: packages/@n8n/config/src/configs/database.config.ts27-51 packages/@n8n/config/test/config.test.ts285-290
当使用 queue 模式(EXECUTIONS_MODE=queue)时,这些选项控制队列系统
| 选项 | 环境变量 | 默认 | 描述 |
|---|---|---|---|
| Redis 主机 | QUEUE_BULL_REDIS_HOST | localhost | 队列的 Redis 主机 |
| Redis 端口 | QUEUE_BULL_REDIS_PORT | 6379 | 队列的 Redis 端口 |
| Redis 密码 | QUEUE_BULL_REDIS_PASSWORD | `` | 队列的 Redis 密码 |
| Redis 用户名 | QUEUE_BULL_REDIS_USERNAME | `` | 队列的 Redis 用户名 |
| Redis 数据库 | QUEUE_BULL_REDIS_DB | 0 | 要使用的 Redis 数据库编号 |
| Redis 集群节点 | QUEUE_BULL_REDIS_CLUSTER_NODES | `` | 逗号分隔的 Redis 集群节点 |
| 队列前缀 | QUEUE_BULL_PREFIX | bull | 队列名称的前缀 |
| 优雅关闭超时 | QUEUE_BULL_GRACEFUL_SHUTDOWN_TIMEOUT | 30 | 优雅关闭的间隔时间(秒) |
来源: packages/@n8n/config/test/config.test.ts214-226
当运行 queue 模式时,这些选项配置 worker 进程
| 选项 | 环境变量 | 默认 | 描述 |
|---|---|---|---|
| 并发 | 不适用 (CLI 参数) | 10 | Worker 可以并行运行的任务数 |
| Worker 超时 | QUEUE_WORKER_TIMEOUT | 30 | Worker 超时时间(秒)(已弃用,使用 N8N_GRACEFUL_SHUTDOWN_TIMEOUT) |
来源: packages/cli/src/commands/worker.ts22-28 packages/cli/src/commands/worker.ts142-148
这些选项控制安全相关设置
| 选项 | 环境变量 | 默认 | 描述 |
|---|---|---|---|
| JWT 密钥 | N8N_USER_MANAGEMENT_JWT_SECRET | 自动生成 | 用于 JWT 令牌生成的密钥 |
| JWT 有效期 | N8N_USER_MANAGEMENT_JWT_DURATION_HOURS | 168 | JWT 令牌有效期(小时) |
| JWT 刷新超时 | N8N_USER_MANAGEMENT_JWT_REFRESH_TIMEOUT_HOURS | 0 | JWT 过期前刷新时间(小时)(0 表示持续时间的 25%) |
| 认证方法 | 不适用 (系统设置) | email | 认证方法(email、ldap 或 saml) |
| 安全 Cookie | N8N_SECURE_COOKIE | true | 为认证 Cookie 设置 Secure 标志 |
| Same-site Cookie | N8N_SAMESITE_COOKIE | lax | Same-site Cookie 策略(strict、lax 或 none) |
| 限制文件访问 | N8N_RESTRICT_FILE_ACCESS_TO | `` | 将文件访问限制在特定目录 |
| 阻止访问 n8n 文件 | N8N_BLOCK_ACCESS_TO_N8N_FILES | true | 阻止从 Function 节点访问 n8n 文件 |
来源: packages/cli/src/config/schema.ts132-165 packages/@n8n/config/src/configs/auth.config.ts10-17 packages/@n8n/config/test/config.test.ts285-290
| 选项 | 环境变量 | 默认 | 描述 |
|---|---|---|---|
| 邮件模式 | N8N_EMAIL_MODE | smtp | 如何发送电子邮件 |
| SMTP 主机 | N8N_SMTP_HOST | `` | SMTP 服务器主机 |
| SMTP 端口 | N8N_SMTP_PORT | 465 | SMTP 服务器端口 |
| SMTP 安全 | N8N_SMTP_SSL | true | 是否为 SMTP 使用 SSL |
| SMTP StartTLS | N8N_SMTP_STARTTLS | true | 当 SSL 禁用时是否使用 STARTTLS |
| SMTP 发件人 | N8N_SMTP_SENDER | `` | 发件人电子邮件地址 |
| SMTP 用户 | N8N_SMTP_USER | `` | SMTP 用户名 |
| SMTP 密码 | N8N_SMTP_PASS | `` | SMTP 密码 |
来源: packages/@n8n/config/src/configs/user-management.config.ts6-48 packages/@n8n/config/src/configs/user-management.config.ts69-76
| 选项 | 环境变量 | 默认 | 描述 |
|---|---|---|---|
| 邀请模板 | N8N_UM_EMAIL_TEMPLATES_INVITE | `` | 用于邀请的自定义 HTML 模板路径 |
| 密码重置模板 | N8N_UM_EMAIL_TEMPLATES_PWRESET | `` | 用于密码重置的自定义 HTML 模板路径 |
| 工作流共享模板 | N8N_UM_EMAIL_TEMPLATES_WORKFLOW_SHARED | `` | 用于工作流共享的自定义 HTML 模板路径 |
| 凭证共享模板 | N8N_UM_EMAIL_TEMPLATES_CREDENTIALS_SHARED | `` | 用于凭证共享的自定义 HTML 模板路径 |
来源: packages/@n8n/config/src/configs/user-management.config.ts50-66
| 选项 | 环境变量 | 默认 | 描述 |
|---|---|---|---|
| 默认名称 | WORKFLOWS_DEFAULT_NAME | 我的工作流 | 新工作流的默认名称 |
| 调用者策略 | N8N_WORKFLOW_CALLER_POLICY_DEFAULT_OPTION | workflowsFromSameOwner | 哪些工作流可以调用当前工作流的默认选项 |
| 激活批次大小 | N8N_WORKFLOW_ACTIVATION_BATCH_SIZE | 1 | 启动时同时激活的工作流数量 |
来源: packages/@n8n/config/src/configs/workflows.config.ts9-21
| 选项 | 环境变量 | 默认 | 描述 |
|---|---|---|---|
| 日志级别 | N8N_LOG_LEVEL | info | 日志级别(error, warn, info, debug, silent) |
| 日志输出 | N8N_LOG_OUTPUT | console | 日志输出位置(console, file 或两者以逗号分隔) |
| 文件数量 | N8N_LOG_FILE_COUNT_MAX | 100 | 要保留的最大日志文件数量 |
| 文件大小 | N8N_LOG_FILE_SIZE_MAX | 16 | 每个日志文件的最大大小(MiB) |
| 日志位置 | N8N_LOG_FILE_LOCATION | logs/n8n.log | 日志文件的位置 |
来源: packages/@n8n/config/src/configs/logging.config.ts24-94
| 选项 | 环境变量 | 默认 | 描述 |
|---|---|---|---|
| 缓存后端 | N8N_CACHE_BACKEND | 自动版 (auto) | 用于缓存的后端(memory, redis, auto) |
| 内存最大大小 | N8N_CACHE_MEMORY_MAX_SIZE | 3145728 | 内存缓存的最大大小(字节) |
| 内存 TTL | N8N_CACHE_MEMORY_TTL | 3600000 | 内存缓存的生存时间(毫秒) |
| Redis 前缀 | N8N_CACHE_REDIS_KEY_PREFIX | cache | Redis 缓存键的前缀 |
| Redis TTL | N8N_CACHE_REDIS_TTL | 3600000 | Redis 缓存的生存时间(毫秒) |
来源: packages/@n8n/config/src/configs/cache.config.ts8-41
| 选项 | 环境变量 | 默认 | 描述 |
|---|---|---|---|
| REST 端点 | N/A (内部) | rest | REST API 的端点 |
| Webhook 端点 | N8N_ENDPOINT_WEBHOOK | webhook | Webhook 的端点 |
| Webhook 测试端点 | N8N_ENDPOINT_WEBHOOK_TEST | webhook-test | 测试 Webhook 的端点 |
| 表单端点 | N8N_ENDPOINT_FORM | form | 表单的端点 |
| 禁用 UI | N8N_DISABLE_UI | false | 是否禁用 UI |
| 最大载荷大小 | N8N_PAYLOAD_SIZE_MAX | 16 | 最大载荷大小(MB) |
来源: packages/@n8n/config/test/config.test.ts193-196
| 选项 | 环境变量 | 默认 | 描述 |
|---|---|---|---|
| S3 主机 | N8N_EXTERNAL_STORAGE_S3_HOST | `` | 兼容 S3 存储的主机 |
| S3 协议 | N8N_EXTERNAL_STORAGE_S3_PROTOCOL | https | S3 连接的协议(http 或 https) |
| S3 存储桶名称 | N8N_EXTERNAL_STORAGE_S3_BUCKET_NAME | `` | S3 存储桶的名称 |
| S3 存储桶区域 | N8N_EXTERNAL_STORAGE_S3_BUCKET_REGION | `` | S3 存储桶的区域 |
| S3 访问密钥 | N8N_EXTERNAL_STORAGE_S3_ACCESS_KEY | `` | S3 的访问密钥 |
| S3 访问密钥 | N8N_EXTERNAL_STORAGE_S3_ACCESS_SECRET | `` | S3 的密钥 |
来源: packages/@n8n/config/src/configs/external-storage.config.ts9-51
| 选项 | 环境变量 | 默认 | 描述 |
|---|---|---|---|
| 时区 | GENERIC_TIMEZONE | America/New_York | n8n 实例的默认时区 |
| 默认区域 | N8N_DEFAULT_LOCALE | en | UI 的默认区域 |
来源: packages/@n8n/config/src/configs/generic.config.ts9-20 packages/cli/src/config/schema.ts244-249
| 选项 | 环境变量 | 默认 | 描述 |
|---|---|---|---|
| 计算器 | N8N_EXPRESSION_EVALUATOR | tournament | 要使用的表达式计算器(tmpl 或 tournament) |
| 报告差异 | N8N_EXPRESSION_REPORT_DIFFERENCE | false | 是否报告计算器输出的差异 |
来源: packages/cli/src/config/schema.ts289-301
| 选项 | 环境变量 | 默认 | 描述 |
|---|---|---|---|
| 启用诊断 | N8N_DIAGNOSTICS_ENABLED | true | 是否启用诊断/遥测 |
| 个性化 | N8N_PERSONALIZATION_ENABLED | true | 是否启用个性化 |
| 招聘横幅 | N8N_HIRING_BANNER_ENABLED | true | 是否在浏览器控制台中启用招聘横幅 |
来源: packages/cli/src/config/schema.ts226-242 packages/cli/src/config/schema.ts235-242
来源: packages/@n8n/config/src/index.ts47-156
n8n 使用许可证系统来启用企业功能。许可证配置控制着许可证的管理方式。
| 选项 | 环境变量 | 默认 | 描述 |
|---|---|---|---|
| 服务器 URL | N8N_LICENSE_SERVER_URL | https://license.n8n.io/v1 | 许可证服务器 URL |
| 自动续订 | N8N_LICENSE_AUTO_RENEWAL_ENABLED | true | 是否自动续订许可证 |
| 分离浮动许可证 | N8N_LICENSE_DETACH_FLOATING_ON_SHUTDOWN | true | 是否在关机时分离浮动许可证 |
| 激活密钥 | N8N_LICENSE_ACTIVATION_KEY | `` | 许可证激活密钥 |
| 租户 ID | N8N_LICENSE_TENANT_ID | 1 | 许可证的租户 ID |
| 证书 | N8N_LICENSE_CERT | `` | 临时许可证的许可证证书 |
许可证系统支持多种企业功能,例如多主设置、高级权限等。在分布式设置中运行时,许可证由主实例管理并共享给从属实例。
来源: packages/cli/src/license.ts33-436 packages/@n8n/config/src/configs/license.config.ts8-22
n8n 可在不同模式下运行,每种模式都有其自身的配置要求。
来源: packages/cli/src/commands/start.ts203-214 packages/cli/src/commands/worker.ts17-28 packages/cli/src/commands/webhook.ts13-16
n8n 支持通过 npm 安装的社区贡献节点。这些设置控制着社区节点的处理方式。
| 选项 | 环境变量 | 默认 | 描述 |
|---|---|---|---|
| 已启用 | N8N_COMMUNITY_PACKAGES_ENABLED | true | 是否启用社区软件包 |
| 注册表 | N8N_COMMUNITY_PACKAGES_NPM_REGISTRY | https://registry.npmjs.org | 用于社区软件包的 npm 注册表 |
| 重新安装缺失的 | N8N_REINSTALL_MISSING_PACKAGES | false | 启动时是否自动重新安装缺失的软件包 |
| 未经验证启用 | N8N_COMMUNITY_PACKAGES_UNVERIFIED_ENABLED | true | 是否允许安装未经验证的社区软件包 |
| 已验证启用 | N8N_COMMUNITY_PACKAGES_VERIFIED_ENABLED | true | 是否允许安装已验证的社区软件包 |
| 阻止加载 | N8N_COMMUNITY_PACKAGES_PREVENT_LOADING | false | 是否阻止加载社区软件包 |
社区节点系统允许 n8n 扩展,添加核心包中未包含的节点类型。启用后,用户可以通过 UI 或 API 安装、更新和删除社区节点包。
来源: packages/cli/src/services/community-packages.service.ts68-302 packages/cli/src/commands/start.ts183-198
N8N_USER_MANAGEMENT_JWT_SECRET_FILE 后缀(例如 DB_POSTGRESDB_PASSWORD_FILE)debug,生产环境使用 info)来源: packages/@n8n/config/src/decorators.ts22-27 packages/cli/src/commands/worker.ts135-147 packages/cli/src/config/schema.ts89-101