本文档涵盖了 n8n 的配置系统和部署选项。它解释了如何为不同环境配置 n8n、可用的部署方法以及扩展方法。有关与外部系统的特定集成信息,请参阅“外部钩子”和“外部密钥”文档。
n8n 使用一个强大的配置系统,该系统按照优先级顺序从多个来源检索设置。整个配置由 GlobalConfig 类管理,该类将配置组织成逻辑类别。
来源
n8n 按以下优先级顺序检索配置值
_FILE 后缀的环境变量引用的文件加载的值N8N_CONFIG_FILES 环境变量指定的 JSON 文件加载的值例如,要设置 PostgreSQL 密码
DB_POSTGRESDB_PASSWORD=mypasswordDB_POSTGRESDB_PASSWORD_FILE=/path/to/password/file使用 JSON 配置文件
此方法允许安全地处理敏感值,尤其是在容器化环境中。
来源
n8n 支持多种数据库后端
| 数据库类型 | 环境变量 | 描述 |
|---|---|---|
| SQLite | DB_TYPE=sqlite | 默认选项,将数据存储在文件中 |
| PostgreSQL | DB_TYPE=postgresdb | 适用于生产环境 |
| MySQL/MariaDB | DB_TYPE=mysqldb | 备用的生产选项 |
PostgreSQL 配置示例
来源
n8n 支持两种执行模式
常规模式 (EXECUTIONS_MODE=regular)
队列模式 (EXECUTIONS_MODE=queue)
来源
n8n 可根据您的需求以多种方式进行部署
部署 n8n 的最简单方法是使用 Docker
此命令将
n8n_dataDocker 镜像使用入口点脚本 docker/images/n8n/docker-entrypoint.sh,该脚本管理启动。
来源
对于开发或简单的设置,通过 npm 安装 n8n
这将使用默认配置启动 n8n,并将数据存储在用户的主目录中。
来源
对于专业的部署,您可以构建自定义 Docker 镜像
当您需要包含其他依赖项或自定义 n8n 安装时,这很有用。
来源
对于简单的安装,SQLite 提供了一个无需额外依赖的简单设置
其他选项
DB_SQLITE_POOL_SIZE:连接池大小(默认:0,禁用)DB_SQLITE_ENABLE_WAL:启用写前日志,以提高性能DB_SQLITE_VACUUM_ON_STARTUP:启动时运行 VACUUM 以优化数据库来源
对于生产环境部署,推荐使用 PostgreSQL
用于安全连接的 SSL 选项
来源
n8n 支持不同的执行模式,以适应各种部署场景,从简单的单实例设置到复杂的分布式系统。
默认执行模式在单个进程中运行所有工作流
适用于小型部署或开发,但可扩展性有限。
队列模式将工作流执行分发到多个进程
启动工作进程
concurrency 参数控制工作进程可以同时执行多少个工作流。实际并发可以通过环境变量设置
启动专用 webhook 进程
来源
对于高可用性部署,n8n 支持运行多个主实例
通过此配置
多主节点设置需要启用 MULTIPLE_MAIN_INSTANCES 功能的企业许可证。
来源
下表列出了按类别分组的关键环境变量
| 类别 | 可变 | 描述 | 默认 |
|---|---|---|---|
| 通用 | N8N_PATH | n8n 的基础路径 | / |
N8N_HOST | n8n 可访问的主机名 | localhost | |
N8N_PORT | n8n 监听的端口 | 5678 | |
N8N_LISTEN_ADDRESS | n8n 应监听的 IP 地址 | :: | |
N8N_PROTOCOL | 协议(http 或 https) | http | |
N8N_SSL_KEY | SSL 密钥文件路径 | ||
N8N_SSL_CERT | SSL 证书文件路径 | ||
N8N_EDITOR_BASE_URL | 编辑器可访问的公共 URL | ||
| 数据库 | DB_TYPE | 数据库类型(sqlite、postgresdb、mysqldb) | sqlite |
DB_TABLE_PREFIX | 表名后缀 | ||
DB_POSTGRESDB_* | PostgreSQL 连接选项 | ||
DB_SQLITE_* | SQLite 选项 | ||
DB_LOGGING_ENABLED | 启用数据库查询日志 | false | |
DB_LOGGING_OPTIONS | 日志选项(all、error 等) | error | |
DB_LOGGING_MAX_EXECUTION_TIME | 记录执行时间超过此值的查询(毫秒) | 0 | |
| 执行 | EXECUTIONS_MODE | 执行模式(regular 或 queue) | regular |
EXECUTIONS_TIMEOUT | 最长工作流运行时间(秒) | -1(无限制) | |
EXECUTIONS_TIMEOUT_MAX | 可以设置的最大超时时间 | 3600 | |
N8N_CONCURRENCY_PRODUCTION_LIMIT | 最大并发生产执行数 | -1(无限制) | |
N8N_CONCURRENCY_EVALUATION_LIMIT | 最大并发评估执行数 | -1(无限制) | |
EXECUTIONS_DATA_SAVE_ON_ERROR | 发生错误时要保存的执行数据 | all | |
EXECUTIONS_DATA_SAVE_ON_SUCCESS | 成功时要保存的执行数据 | all | |
EXECUTIONS_DATA_SAVE_ON_PROGRESS | 是否为每个节点保存进度 | false | |
EXECUTIONS_DATA_SAVE_MANUAL_EXECUTIONS | 保存手动执行的数据 | true | |
| 队列 | N8N_REDIS_HOST | 队列模式的 Redis 主机 | localhost |
N8N_REDIS_PORT | Redis 端口 | 6379 | |
N8N_REDIS_PASSWORD | Redis 密码 | ||
N8N_REDIS_DB | Redis 数据库索引 | 0 | |
N8N_REDIS_KEY_PREFIX | 所有 n8n 相关键的前缀 | n8n | |
N8N_REDIS_CLUSTER_NODES | Redis 集群节点的逗号分隔列表 | ||
| 用户管理 | N8N_USER_MANAGEMENT_JWT_SECRET | JWT 令牌的密钥 | 自动生成 |
N8N_USER_MANAGEMENT_JWT_DURATION_HOURS | JWT 令牌过期时间 | 168(7 天) | |
N8N_USER_MANAGEMENT_JWT_REFRESH_TIMEOUT_HOURS | JWT 在过期前多久刷新 | 0(持续时间的 25%) | |
| 身份验证 | N8N_AUTH_COOKIE_SECURE | 身份验证 cookie 是否需要 HTTPS | true |
N8N_AUTH_COOKIE_SAMESITE | Cookie 的 SameSite 属性 | lax | |
| 许可证 | N8N_LICENSE_SERVER_URL | 许可证服务器 URL | https://license.n8n.io/v1 |
N8N_LICENSE_AUTO_RENEW_ENABLED | 自动续订许可证 | true | |
N8N_LICENSE_ACTIVATION_KEY | 许可证激活密钥 | ||
| 时区 | GENERIC_TIMEZONE | 默认时区 | America/New_York |
TZ | 系统时区 | ||
| 日志记录 | N8N_LOG_LEVEL | 日志级别(error、warn、info、debug) | info |
N8N_LOG_OUTPUT | 日志输出位置(console、file) | console | |
N8N_LOG_FILE_LOCATION | 日志文件位置 | logs/n8n.log | |
| 安全 | N8N_SECURITY_RESTRICT_FILE_ACCESS_TO | 将文件访问限制到特定目录 | |
N8N_SECURITY_BLOCK_FILE_ACCESS_TO_N8N_FILES | 阻止访问 n8n 文件 | true | |
| 社区节点 | N8N_COMMUNITY_PACKAGES_ENABLED | 启用社区包 | true |
N8N_COMMUNITY_PACKAGES_REGISTRY | 社区包的 NPM 注册表 | https://registry.npmjs.org | |
N8N_COMMUNITY_PACKAGES_UNVERIFIED_ENABLED | 允许未经验证的社区包 | true |
来源
n8n 提供了官方 Docker 镜像,使部署变得简单。Docker 镜像基于 n8nio/base 镜像构建,并包含所有必需的依赖项。
来源
为 n8n 设置时区
GENERIC_TIMEZONE:影响 n8n 操作,例如计划节点TZ:影响系统时区用于日期操作来源
对于敏感信息,n8n 支持使用 _FILE 后缀从文件加载值
这对于 Docker Swarm 或 Kubernetes secrets 尤其有用。
支持的 _FILE 环境变量包括:
DB_POSTGRESDB_DATABASE_FILEDB_POSTGRESDB_HOST_FILEDB_POSTGRESDB_PASSWORD_FILEDB_POSTGRESDB_PORT_FILEDB_POSTGRESDB_USER_FILEDB_POSTGRESDB_SCHEMA_FILE来源
更新您的 n8n Docker 安装
对于 Docker Compose 设置
来源
n8n 为不同目的提供了几个 CLI 命令
| 命令 | 描述 | 示例 |
|---|---|---|
start | 启动主 n8n 进程 | n8n start |
worker | 启动用于队列模式的工作进程 | n8n worker --concurrency=5 |
webhook | 启动专用的 webhook 进程 | n8n webhook |
execute | 执行特定的工作流 | n8n execute --id=5 |
executeBatch | 执行多个工作流 | n8n executeBatch --ids=1,2,3 |
start 命令支持多个标志
--tunnel:创建公共隧道用于 webhook 测试--open:自动在浏览器中打开 UI--reinstallMissingPackages:尝试重新安装缺失的社区节点包worker 命令支持:
--concurrency=N:设置并发工作流执行的最大数量来源
n8n 可以使用不同的缓存后端
内存缓存选项
Redis 缓存选项
来源
配置日志行为
文件日志选项
您还可以按范围过滤日志
支持的范围包括:concurrency、external-secrets、license、multi-main-setup、pruning、pubsub、push、redis、scaling、waiting-executions、task-runner 和 insights。
来源
n8n Enterprise 功能需要有效许可证
许可证系统通过功能标志和配额管理功能访问
来源
本文档提供了 n8n 配置系统和部署选项的全面概述。通过了解这些组件,您可以根据自己的需求部署 n8n,从简单的开发环境到复杂的、水平扩展的生产环境。
有关特定部署场景的更多详细信息,请参阅 n8n 官方文档:https://docs.n8n.io/hosting/。