AB
AiBoss
Tutorials

n8n

Tutorials

用一条命令安装并运行 n8n 工作流自动化实例

n8n 3.0 起只通过 Docker 分发,旧的 npm 安装方式不再适用于新装。本文讲清用一条命令完成 n8n 全新安装的完整流程:前置的 Docker 与 Compose v2 要求、命令执行后自动生成的目录与配置文件、默认自带的 SQLite 数据库与 n8n Assistant 支撑服务、如何开启 Assistant、日常启停与升级命令、各命令行参数的作用,以及 Windows 用户必须走 WSL 的原因与卸载时数据会被一并删除的风险。

n8n 是一个把 AI 能力与业务流程自动化结合起来的 fair-code 许可工作流自动化工具。它解决的核心问题是:把散落在不同系统里的数据搬运、条件判断、定时触发和 AI 调用,编排成一条可以在可视化编辑器里调试、可以反复执行的流程。适合需要把多个服务串起来、又不想为每个集成单独写一套胶水代码的开发者与运维人员。本文要教会读者的是一件具体的事:在一台全新机器上用一条命令把 n8n 跑起来,并掌握它的启停、升级与卸载。如果你更想先了解这类自动化工具的整体用法,可以先看 n8n 的工具页,再回到本文动手。

需要先说明一个前提变化:从 n8n 3.0 起,n8n 只通过 Docker 分发。过去常见的 npm install n8n 与 npx n8n 方式已经不再适用于新安装。已有的 npm 安装目前仍能继续运行,但新装和后续升级都应该改用本文介绍的方式。因此本文的读者定位是全新安装,而不是改造一套已经在跑的自托管环境。

准备工作

确认适用场景

在动手之前先对照一下自己的情况,避免做无用功:

  • 如果你已经用自己的 Docker Compose 文件自托管 n8n,不需要切换到本文的脚本,现有环境可以继续用;想借鉴配置思路的话,可以去看手写 Docker Compose 的安装流程。
  • 如果你现在是用 npm 装的 n8n,现有安装暂时不受影响,但新装与未来升级应当改用本文的方法。
  • 如果你只是想把 n8n 和 n8n Assistant 尽快跑起来、不想自己写任何配置文件,本文正是为这个场景准备的。

安装 Docker 与 Compose v2

这套方式依赖 Docker,它把 n8n 打包成一个自包含的运行单元,你不需要再单独安装或配置其他依赖。如果机器上还没有 Docker,先安装 Docker;安装包同时包含 Docker Compose,安装命令也需要它。你不需要懂 Docker,只要保证它已安装并在后台运行即可。

有两个硬性条件必须满足:

  • 安装命令要求使用 docker compose v2 插件,而不是旧的独立 docker-compose 二进制文件。
  • 命令会检查 Docker 守护进程是否正在运行,没运行会直接报错并提示修复方式。

如果你用的是 Podman、Colima 或其他 Docker 兼容引擎,需要安装带 compose 插件的 docker CLI,并把 DOCKER_HOST 指向它们各自的 socket。

Windows 用户的额外要求

安装命令是一段 shell 脚本,标准的 Windows 命令提示符和 PowerShell 都无法正确执行它。Windows 用户需要在以下环境中运行:

  • WSL(Windows Subsystem for Linux),并开启 Docker Desktop 的 WSL2 集成。这是推荐路径。
  • Git Bash(随 Git for Windows 一起安装),配合正在运行的 Docker Desktop,理论上也能执行 POSIX shell 脚本,但 n8n 并未对该方式做过端到端的验证。除非你已确认自己的环境可用,否则请坚持使用 WSL。

操作步骤

第一步:执行安装命令

打开终端,在当前目录下执行:

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

这一条命令会替你完成下面这些事:

  1. 检查 Docker 是否已安装并正在运行,如果没有,会告诉你如何修复。
  2. 在当前目录下新建一个名为 n8n 的文件夹,用来存放全部内容。
  3. 写入 n8n 运行所需的配置文件。
  4. 拉取 n8n 镜像并启动服务。

命令可以重复执行。如果该文件夹里已经配置好 n8n,命令只会提示已经存在,不会改动任何东西。

一次成功的执行输出大致如下:

$ curl -fsSL https://get.n8n.io | sh
✓ Docker found (24.0.6)
✓ Docker Compose found (v2.24.0)
✓ Created ./n8n/compose.yml
✓ Created ./n8n/searxng-settings.yml
✓ Created ./n8n/.env (unique secrets generated)
Pulling images and starting (this can take a few minutes on first run)...
✓ Started n8n 2.32.0 and sandbox services
n8n is running at: http://localhost:5678
Data stored in: ./n8n (Docker volume: n8n-data)
Config files: ./n8n/compose.yml, ./n8n/.env
To stop: docker compose -f ./n8n/compose.yml down
To upgrade: curl -fsSL https://get.n8n.io | sh -s -- --upgrade
To uninstall: docker compose -f ./n8n/compose.yml down -v # -v DELETES all n8n data
rm -rf ./n8n

首次启动时 n8n 需要一点时间才能就绪。命令会等待,直到服务可用才打印访问地址。如果浏览器打开页面没有立刻加载出来,稍等片刻再刷新即可。

第二步:了解默认装了什么

执行完命令后,下面这些组件已经全部就位,不需要额外安装任何东西:

组件用途
n8n工作流编辑器本体,运行在 http://localhost:5678
内置数据库保存工作流、凭据和执行历史。这是 SQLite,一个存放在文件里的轻量数据库,不需要单独安装或管理数据库服务
n8n Assistant 支撑服务一个安全执行 n8n Assistant 所生成代码的沙箱,以及一个内置搜索工具,供它联网查询。这些服务随 n8n 自动启动,但助手本身在你添加 AI 提供商密钥之前一直处于关闭状态

如果你的用途是团队协作或生产环境,应当考虑更稳健的数据库,例如 Postgres,而不是内置的 SQLite 默认值。沙箱同理:这套安装使用的是 n8n 自带的沙箱,适合试用,生产环境目前推荐使用 Daytona。这两项都需要改用手写 Docker Compose 的方式配置。

第三步(可选):开启 n8n Assistant

n8n 在没有 n8n Assistant 的情况下功能完整,助手只是一个可选的附加项。开启它有两种方式。

方式一:在界面里配置。n8n 启动后,进入该实例的 AI 设置页面,填入你的模型 API 密钥即可,这是最省事的做法。

方式二:在登录之前就配置好。直接编辑命令生成的 .env 文件(默认位于 ./n8n/.env):

  1. 打开 .env,找到 N8N_INSTANCE_AI_MODEL_API_KEY 这一行,填入你的 AI 提供商密钥。
  2. 重启 n8n:
docker compose -f ./n8n/compose.yml up -d

默认情况下,n8n Assistant 的网页搜索走内置搜索工具,无需任何配置。如果你更想用 Brave Search,在同一份 .env 里把 Brave API 密钥填入 INSTANCE_AI_BRAVE_SEARCH_API_KEY,设置后会自动生效。

这些服务不需要你开放任何额外端口,也不需要做任何配置。从机器外部能访问的只有 n8n 本身(端口 5678),其余服务默认保持私有。

一个完整示例

下面把一次从零开始的安装串成完整流程,假设你在一台已装好 Docker 的 Linux 机器上,当前目录是家目录。

1. 检查 Docker 与 Compose 版本。

docker compose version

输出中应能看到 v2 版本号。如果提示找不到命令,说明装的是旧的独立 docker-compose,需要补装 compose v2 插件。

2. 执行安装。

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

等待镜像拉取完成。首次运行可能需要几分钟。

3. 确认目录结构。安装完成后,当前目录下会多出 n8n 文件夹,其中至少包含 compose.yml、.env 和 searxng-settings.yml 三个文件。数据存放在名为 n8n-data 的 Docker 卷里。

4. 打开编辑器。浏览器访问 http://localhost:5678,即可进入工作流编辑器开始搭建流程。

5. 按需开启 Assistant。如果要用 AI 助手,编辑 ./n8n/.env 填入 N8N_INSTANCE_AI_MODEL_API_KEY,然后重启:

docker compose -f ./n8n/compose.yml up -d

6. 日常启停。停止服务:

docker compose -f ./n8n/compose.yml down

再次启动:

docker compose -f ./n8n/compose.yml up -d

7. 升级到最新版本。

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

升级命令会把 n8n 和随附的沙箱服务一起更新到较新版本,它只修改 .env 里的两行:N8N_VERSION 和 N8N_SANDBOX_VERSION。你的数据、密钥和其他设置都保持不变。

如果你的安装早于沙箱版本被写入 .env 的时间点,compose.yml 里可能还写着固定的沙箱镜像标签。第一次升级会把这些镜像行改写为使用 N8N_SANDBOX_VERSION,同时把沙箱运行器地址 SANDBOX_RUNNER_HTTP_BASE_URL 从 http:// 切换为 https://,并打印一条说明。除此之外 compose.yml 不会有其他改动,你此前做过的编辑都会保留。

8. 彻底卸载。先停掉服务并删除卷,再删除目录:

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

注意 -v 会删除全部 n8n 数据,这一步不可逆。

命令行参数

在安装命令末尾追加参数可以改变它的行为:

参数作用
--version单独使用时,显示脚本自身的版本以及它将安装的最新 n8n 版本。后面跟一个版本号(例如 --version 2.31.4)时,安装或升级到该指定版本
--no-start只生成配置文件,暂不启动 n8n
--upgrade把已有安装升级到较新的 n8n 版本以及与之匹配的沙箱服务版本。只更新 .env 中的版本行,在较旧的安装上还会更新 compose.yml 里的沙箱镜像行与运行器地址。数据、设置和其他自定义内容都不受影响
--help显示全部可用选项

注意事项

不想直接执行网络脚本

如果你不放心把一段从网络拉取的脚本直接交给 shell,可以先下载再阅读,确认无误后自行执行:

curl -fsSL https://get.n8n.io -o get-n8n.sh
less get-n8n.sh # review it
sh get-n8n.sh

资源与数据库选择

内置 SQLite 适合试用,但团队或生产环境应换成 Postgres。沙箱方面,自带沙箱适合试验,生产环境目前推荐 Daytona。这两项都需要走手写 Docker Compose 的安装路径,本文的一键脚本不覆盖。

端口暴露范围

只有 n8n 本身(端口 5678)会从机器外部可达,其余支撑服务默认不对外暴露。不要为了「方便」自行给沙箱或搜索服务映射端口。

卸载会丢数据

down -v 中的 -v 会连同 Docker 卷一起删除,工作流、凭据和执行历史全部消失。执行前请确认已经备份,或确实不再需要这些数据。

价格与版本信息

本文涉及的功能范围、版本号与可用性会随产品迭代变化,具体以官网当前信息为准。