环境变量是配置自托管 n8n 实例行为的核心机制。通过设置不同的环境变量,您可以控制 n8n 的监听地址、端口、安全设置、数据库连接、日志级别等。 您可以通过以下几种方式设置环境变量: .env 文件: 这是最常用的方法。在您的 n8n 工作目录(通常是您启动 n8n 的目录)创建一个名为 .env 的文本文件,并在其中以 KEY=VALUE 的格式定义环境变量,每行一个。n8n 在启动时会自动加载并应用这些变量。 示例 .env 文件内容: 代码段
N8N_HOST=n8n.example.comN8N_PORT=443N8N_PROTOCOL=httpsN8N_ENCRYPTION_KEY=your_strong_encryption_key_hereDATABASE_TYPE=postgresDATABASE_URL=postgres://n8n_user:your_db_password@your_db_host:5432/n8n_databaseN8N_BASIC_AUTH_ACTIVE=false
系统环境变量: 您也可以直接在您的服务器操作系统中设置全局或用户级别的环境变量。n8n 在启动时会读取这些系统环境变量。这种方法适用于您希望在多个应用程序之间共享某些配置,或者希望通过操作系统的工具进行管理的情况。 Docker Compose (docker-compose.yml): 如果您使用 Docker Compose 部署 n8n,您可以在 docker-compose.yml 文件的 services.n8n.environment 部分以列表的形式定义环境变量。 示例 docker-compose.yml 片段: YAML
services: n8n: image: n8nio/n8n environment: - N8N_HOST=n8n.example.com - N8N_PORT=443 - N8N_PROTOCOL=https - N8N_ENCRYPTION_KEY=your_strong_encryption_key_here - DATABASE_TYPE=postgres - DATABASE_URL=postgres://n8n_user:your_db_password@your_db_host:5432/n8n_database - N8N_BASIC_AUTH_ACTIVE=false
常用环境变量说明: 以下是一些您可能会经常使用到的重要环境变量: - N8N_HOST: 指定 n8n Web 界面的监听主机名或 IP 地址。
- N8N_PORT: 指定 n8n Web 界面监听的端口号(默认为 5678)。
- N8N_PROTOCOL: 设置使用的协议 (http 或 https).
- N8N_ENCRYPTION_KEY: 用于加密敏感数据的密钥。请务必设置一个高强度且唯一的密钥。
- DATABASE_TYPE: 指定使用的数据库类型 (postgres 或 mysql).
- DATABASE_URL: 数据库连接 URL。
- N8N_BASIC_AUTH_ACTIVE: 启用/禁用基本 HTTP 身份验证 (true 或 false).
- N8N_BASIC_AUTH_USER: 基本 HTTP 身份验证的用户名。
- N8N_BASIC_AUTH_PASSWORD: 基本 HTTP 身份验证的密码。
- EXECUTIONS_PROCESS: 控制工作流执行方式 (main 或 own).
- QUEUE_BULL_REDIS_URL: Redis 连接 URL (用于任务队列).
- N8N_LOG_LEVEL: 设置日志级别 (info, warn, error, debug).
- N8N_LOG_OUTPUT: 设置日志输出目标 (console 或文件路径).
- N8N_SSL_KEY: SSL 私钥文件路径 (当 N8N_PROTOCOL 为 https 时需要).
- N8N_SSL_CERT: SSL 证书文件路径 (当 N8N_PROTOCOL 为 https 时需要).
优先级: 如果同一个环境变量通过多种方式设置,其优先级通常是:系统环境变量 > .env 文件 > Docker Compose environment 部分。 最佳实践: - 将敏感信息(如数据库密码、加密密钥)存储在安全的地方,并确保只有授权用户可以访问。
- 为 N8N_ENCRYPTION_KEY 生成一个足够随机和复杂的字符串。
- 在生产环境中,强烈建议使用 HTTPS 并配置 SSL。
|