Docker安装指南#
Docker 提供以下优势:
- 在全新环境中安装n8n。
- 更轻松地设置您偏好的数据库。
- 可以避免由于不同操作系统导致的问题,因为Docker提供了统一的系统环境。
- 可以避免因操作系统和工具差异导致的兼容性问题。
- 使迁移到新主机或环境更加简单直接。
你也可以在Docker中使用n8n配合Docker Compose。你可以在n8n-hosting仓库中找到适用于各种架构的Docker Compose配置。
自托管知识先决条件
自托管n8n需要具备以下技术知识:
- 设置和配置服务器及容器
- 管理应用程序资源和扩展
- 保护服务器和应用程序安全
- 配置n8n
n8n 建议专家用户自行托管。操作失误可能导致数据丢失、安全问题和服务中断。如果您没有服务器管理经验,n8n 推荐使用 n8n Cloud。
先决条件#
在继续之前,请先安装 Docker Desktop。
Linux用户
Docker Desktop适用于Mac和Windows系统。Linux用户需要根据您的发行版单独安装Docker Engine和Docker Compose。
最新版本和下一版本
n8n 每周都会发布一个新的次要版本。latest 版本适用于生产环境。next 是最新发布的版本。您应该将 next 视为测试版:它可能不稳定。如需报告问题,请使用 论坛。
当前 latest: 1.92.2
当前 next: 1.93.0
启动n8n#
从您的终端运行:
1 2 3 | |
该命令创建一个用于存储持久化数据的卷,下载所需的n8n镜像,并启动容器,暴露在端口5678上。为了在容器重启时保存您的工作,它还挂载了一个docker卷n8n_data,以便在本地持久化您的数据。
运行后,您可以通过打开以下地址访问n8n: http://localhost:5678
与PostgreSQL一起使用#
默认情况下,n8n使用SQLite来保存credentials、历史执行记录和工作流。n8n还支持PostgreSQL,可通过如下环境变量进行配置。
使用PostgreSQL时,持久化存储在/home/node/.n8n文件夹中的数据仍然很重要。这包括n8n用户数据,更重要的是凭证的加密密钥。当使用n8n隧道时,它也是webhook的名称。
如果n8n在启动时找不到/home/node/.n8n目录,它会自动创建一个。这种情况下,n8n之前用不同加密密钥保存的所有现有凭证将不再有效。
请记住
虽然持久化/home/node/.n8n目录与PostgreSQL是推荐的最佳实践,但这并非硬性要求。您可以通过在启动Docker容器时传递N8N_ENCRYPTION_KEY环境变量来提供加密密钥。
要在PostgreSQL中使用n8n,请执行以下命令,并将占位符(用尖括号表示,例如)替换为您的实际值:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
你可以在n8n托管仓库中找到PostgreSQL的完整docker-compose文件。
设置时区#
要定义n8n应使用的时区,您可以设置GENERIC_TIMEZONE环境变量。面向调度的节点(如Schedule Trigger节点)会使用此设置来确定正确的时区。
您可以设置系统时区,这将控制某些脚本和date等命令返回的结果,通过使用TZ环境变量来实现。
这个例子为两个变量设置了相同的时区:
1 2 3 4 5 6 7 8 9 | |
更新#
要更新n8n,在Docker Desktop中,导航至Images标签页,然后从上下文菜单中选择Pull以下载最新的n8n镜像:
你也可以通过命令行拉取最新版本或指定版本:
1 2 3 4 5 6 7 8 | |
拉取更新后的镜像后,停止您的n8n容器并重新启动。您也可以使用命令行。将以下命令中的替换为您在第一条命令中找到的容器ID:
1 2 3 4 5 6 7 8 9 10 11 | |
更新Docker Compose#
如果您使用Docker Compose文件运行n8n,请按照以下步骤更新n8n:
1 2 3 4 5 6 7 8 | |
延伸阅读#
你可以在Docker镜像的README文件中找到更多关于Docker设置的信息。
n8n 使用隧道#
危险
用于本地开发和测试。在生产环境中使用不安全。
要使用Webhook触发像GitHub这样的外部服务节点,n8n必须能够从互联网访问。n8n运行着一个隧道服务,可以将来自n8n服务器的请求重定向到您本地的n8n实例。
通过运行以下命令以--tunnel参数启动n8n:
1 2 3 4 5 6 7 8 | |
