n8n 一行命令自托管部署完整指南
2026/9/17 10:03:52 网站建设 项目流程

n8n 一行命令自托管部署完整指南

【免费下载链接】n8nFair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.项目地址: https://gitcode.com/GitHub_Trending/n8/n8n

如果你想在本地或自己的服务器上自托管一个 n8n 实例,用可视化画布搭自动化工流,官方的一行安装脚本是最快的路。把它丢进终端,脚本会用 Docker Compose 拉起 n8n 本体、任务 runners、AI 沙箱和 SearXNG 搜索服务,生成一套只属于这台机器的随机密钥,等健康检查通过才收工。装完在浏览器打开 http://localhost:5678 就能开始建工作流。硬前提只有一个:机器上装了 Docker(含 Compose v2 插件)且守护进程在运行。

开始前检查:Docker 环境自检清单

跑命令前先对四项,任何一项不过,脚本都会立刻停下并指出是哪一项:

检查项怎么查不满足时怎么办
Docker 与守护进程docker info正常返回先装 Docker;Podman、Colima 等兼容引擎需装带 compose 插件的 docker CLI,并用DOCKER_HOST指向它们的 socket
Compose v2 插件docker compose version可执行旧的独立docker-compose二进制不受支持,需升级 compose 插件
5678 端口空闲curl http://127.0.0.1:5678/无响应只要有进程应答(HTTP 响应或连接被接受)就判定占用;停掉占用进程,或先改端口
安装目录默认./n8n不能已存在且非空非空目录会被拒绝写入;用N8N_DIR=./some-dir换目录

最小可行启动:一行命令安装 n8n 步骤

最短路径就这一行:

curl -fsSL https://get.n8n.io | sh

想先审查再执行的话(脚本头部推荐的方式),先落地成文件通读一遍再跑:

curl -fsSL https://get.n8n.io -o get-n8n.sh && less get-n8n.sh && sh get-n8n.sh

执行后脚本依次做这些事(完整逻辑见安装脚本源码):

  1. 解析版本:取最新稳定 release,查询失败时回退到内置的2.32.0;版本号以N8N_VERSION写入.env并固定,不用浮动 tag,容器重建不会静默升级或触发数据库迁移。
  2. ./n8n下生成三个文件:compose.yml(栈定义,下载一次后归你所有,脚本以后永不重写)、.env(权限 600,内含本次安装随机生成的唯一密钥)、searxng-settings.yml
  3. 拉取镜像(首次可能要几分钟),然后docker compose up -d启动全部服务。
  4. 每 3 秒轮询http://127.0.0.1:5678/healthz,最多等 180 秒。
  5. 成功时打印摘要:运行地址、数据位置、配置位置、启停命令和安全提示。

常用选项拼在管道后,环境变量按行前缀传:

选项 / 环境变量作用何时用
sh -s -- --version 2.32.0安装指定版本,必须像2.32.0这样三段式固定某个发布版本
sh -s -- --version只打印脚本版本和将安装的 n8n 版本,不做改动安装前确认版本号
sh -s -- --no-start只写配置文件,不拉镜像、不启动需要先改端口映射再手动启动
N8N_DIR=./some-dir改变安装目录(默认./n8n当前目录下n8n不可用
DO_NOT_TRACK=1安装/升级失败时不再询问是否发送匿名失败报告非交互环境

如何确认安装成功:健康检查与容器状态

别只看脚本自己的摘要,用两个独立信号复核。健康检查端点(脚本判定就绪用的就是它):

curl http://127.0.0.1:5678/healthz

容器状态(预期值来自仓库的e2e 测试):

docker compose -f n8n/compose.yml ps

n8nsandbox-apisandbox-runner-1runnerssearxng应为 running;sandbox-certs是一次性证书引导容器,以退出码 0 结束(exited 0)。最后浏览器打开 http://localhost:5678,看到编辑器就稳了:

日常操作速查:启停、升级与卸载命令

启停(脚本成功摘要中给出的形式):

docker compose -f n8n/compose.yml down # 停止 docker compose -f n8n/compose.yml up -d # 启动

在已有安装上不带--upgrade重跑一行脚本是安全的 no-op:不改任何文件,只报告当前状态、启动地址和升级命令。

升级:

curl -fsSL https://get.n8n.io | sh -s -- --upgrade

它只修改.env中的N8N_VERSION一行(可与--version x.y.z组合指定目标版本),然后拉取镜像并重启,其他配置和密钥一概不动。若线上栈定义版本比本地compose.yml新,它会提示你查看变更,但不替你改写文件。

卸载:

docker compose -f n8n/compose.yml down -v && rm -rf n8n

警告:down -v会连带删除n8n-data数据卷,rm -rf删除配置目录——全部工作流、凭据和执行记录都会丢失。执行前确认不再需要这个实例。

常见失败排查:端口占用与限流报错

四种典型失败,按「报错原文 → 原因 → 修复」处理:

something is already listening on port 5678原因:机器上已有进程占用 5678。修复:停掉占用进程重跑;或加--no-start只生成配置,手动改n8n/compose.yml的端口映射后再启动。

./n8n exists and is not empty — refusing to write into it原因:安装目录非空。修复:用N8N_DIR=./some-dir换一个干净目录。

Docker Hub pull rate limit reached原因:撞上 Docker Hub 匿名拉取限流。修复:配置文件不受影响;等约一小时用docker compose -f n8n/compose.yml up -d启动,或docker login登录账号提高限额后重跑脚本。

n8n did not become ready原因:180 秒内/healthz没通过,一般是启动卡住。修复:docker compose -f n8n/compose.yml logs n8n查 n8n 容器日志。

部署边界与轻量替代方案

一行部署定位是本地试用:TLS、Postgres、队列模式这类生产级需求不在脚本范围内。

两件事必须记住。数据存在 Docker 卷n8n-data中,挂载到容器内/home/node/.n8n:工作流保存在 SQLite 数据库里,该目录还有 webhook URL 和凭据加密密钥——启动时若找不到这些数据,n8n 会自动生成新密钥,已有凭据将无法再解密(见镜像数据说明)。安全边界方面:只有 5678 端口应暴露到公网;sandbox-runner-1是特权 Docker-in-Docker 容器,永远不要发布它的端口;runnerssandbox-apisearxng只在 compose 网络内以服务名访问,不发布主机端口(见栈定义文件)。

如果不想引入 runners/沙箱这套完整栈,单容器方式更轻,访问地址同样是 http://localhost:5678:

docker volume create n8n_data docker run -it --rm --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n

注意这里数据卷名叫n8n_data,和完整栈的n8n-data不同,挂载路径同为/home/node/.n8n

【免费下载链接】n8nFair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.项目地址: https://gitcode.com/GitHub_Trending/n8/n8n

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询