15%

全场主机优惠15%

测试技能,享折扣

使用代码:

Skills
开始使用
03.04.2026

N8N 自动化教程适用于 Ubuntu – 从零到流程

关键词

术语快速定义
🚀 N8N一个可视化的基于节点的工作流自动化平台,用于连接各种外部服务。
🐳 Docker一个容器化工具,使应用程序的一致性、隔离部署和管理成为可能。
🐘 PostgreSQL一个强大的关系数据库,作为 N8N 的主要持久数据存储。
🧩 NodeN8N 中的一个单一功能块(例如,数据触发器或 API 操作),执行特定任务。
🔄 Workflow通过将多个节点链接在一起构建的配置自动化过程,以处理任务序列。
💾 Docker Volume在 Docker 中用于持久保存系统数据的指定存储机制,存储在容器外部。
🔐 Environment Variable安全配置值(保存在 .env 文件中),安全地注入到 Docker 容器中。

为什么自动化很重要

自动化

现代团队并不是“运行一个应用程序”——他们操作一系列的 SaaS 工具、内部服务、数据存储和聊天/警报系统。这种复杂性的成本以可预测的方式显现出来:

  • 手动交接和重复的繁忙工作(在系统之间复制/粘贴)
  • 缓慢的响应循环(审批、工单路由、事件通知)
  • 不一致的结果(人为错误、遗漏步骤、部分更新)
  • 脆弱的集成(没有可见性或所有权的一次性脚本)

自动化是减少这种摩擦的最高杠杆之一。即使是小型工作流——同步数据、验证有效负载、发布通知、更新记录——也可以积累成有意义的胜利:更快的周期时间、更少的错误和更一致的操作。重要的是,“自动化”不仅仅是减少工作量;它还涉及使流程可观察和可重复

本报告将自动化视为生产基础设施:干净地部署,控制配置,保持数据持久,并通过确定性测试工作流验证行为。

什么是 N8N(以及它为什么会成为你最好的朋友)

N8N

N8N 是一个工作流自动化平台,允许您使用基于节点的编辑器连接服务。您通过“节点”(触发器、数据转换、API 调用、数据库操作、通知)构建工作流,然后手动执行、按计划执行或通过 Webhook 执行。

在 Linux 部署环境中,n8n 特别有用的原因:

  • 自托管:您可以在自己的基础设施上运行它,以控制数据和网络。
  • 可扩展的集成:许多内置节点,以及用于任何具有 API 的通用 HTTP 节点。
  • 操作友好:在容器中运行良好,可以使用 Postgres 进行持久化,并支持环境驱动的配置。
  • 适合渐进式采用:从简单的工作流开始,然后随着使用量的增加,增强访问(反向代理 + HTTPS)和操作实践。

在本评估中,n8n 被视为您可能实际运行的服务:部署选择和配置以清晰、可重复和“未来强化”(而不对初始设置进行过度工程)的偏见进行记录。

自托管您自己的 N8N 实例

准备好尝试了吗?设置需要几个技术步骤,但别担心——按照本指南,您将很快启动并运行您的第一个 N8N 实例。

本教程使用 Ubuntu 22.04,在 AlexHost 提供的 VPS 上运行。

Docker 设置

有几种方法可以设置 n8n。对于本教程,我们使用 Docker,因为它提供了一种清晰可靠的方法来管理和配置 n8n。

首先,确保您的系统上安装了 docker 和 docker compose。

# Check for docker docker -v # Check for docker compose docker compose

如果返回一个版本,您就准备好了。

如果您没有安装它,只需按照此页面的说明进行操作: 安装指南。确保选择您正在使用的正确操作系统。

项目结构

正确组织文件对于清晰和长期可维护性至关重要。根据惯例,Docker 服务通常放置在 /opt 目录下。在其中,创建了一个 docker_services 文件夹来存储所有服务,包括 N8N。

# Create all the needed folders sudo mkdir -p /opt/docker_services/n8n # Navigate to n8n folder cd /opt/docker_services/n8n

添加 docker compose 文件

为了启动我们的 n8n 实例及其后端数据库,我们将使用一个 compose.yaml 文件。我们选择 PostgreSQL 而不是默认的 SQLite,因为它为配置和执行日志提供了更强大和生产就绪的数据存储。

使用文本编辑器(如 nano)创建文件:

nano compose.yaml

将以下配置粘贴到文件中:

services: n8n: image: n8nio/n8n:latest restart: always ports: - "5678:5678" env_file: - .env volumes: - ./data:/home/node/.n8n - ./files:/files depends_on: - postgres postgres: image: postgres:15 restart: always env_file: - .env volumes: - ./postgres-data:/var/lib/postgresql/data

理解配置:

组件描述
服务运行两个容器:n8n(主应用程序)和 postgres:15。使用 Postgres 被强烈推荐,而不是默认的 SQLite。n8n 本质上依赖于它先启动。
重启策略使用 restart: always,以便在系统启动或崩溃时自动重启容器。
端口暴露端口 5678,以便您可以访问 n8n 网页界面。
环境两个服务从共享的 .env 文件加载配置,以安全地处理 DB 凭据等变量。
将本地主机目录绑定到容器路径,以保持数据持久:
./data → n8n 配置(/home/node/.n8n
./files → 文件存储(/files
./postgres-data → 数据库(/var/lib/postgresql/data

在启动容器之前,您需要显式创建必要的目录,以便它们准备好被映射:

# Use your own path if different cd /opt/docker_services/n8n mkdir data files postgres-data

目录所有权和权限

默认情况下,当 Docker 自动为您的卷创建主机目录(如我们的 datafiles 文件夹)时,它将所有权分配给 root 用户。然而,出于安全原因,n8n 容器故意降低权限,并以非 root 用户身份运行(具体来说,UID 1000)。

如果这些文件夹仍然归 root 所有,n8n 将无法保存其配置或数据库文件,导致容器在启动时因“权限被拒绝”错误而崩溃。为了防止这种摩擦,我们在启动服务之前显式授予这些目录的正确用户所有权。

# Set ownership of the volume directories to UID/GID 1000 sudo chown -R 1000:1000 data files

添加 .env 文件

Docker 使用 .env 文件将系统配置和秘密传递到我们的容器中,而不将它们硬编码到我们的 compose.yaml 中。

在同一目录中创建该文件:

nano .env

粘贴以下配置(确保用您自己的安全值替换 example.com 和数据库密码):

# n8n Settings DOMAIN_NAME=example.com SUBDOMAIN=n8n GENERIC_TIMEZONE=Europe/Chisinau N8N_HOST=n8n.example.com N8N_PROTOCOL=https WEBHOOK_URL=https://n8n.example.com/ N8N_SECURE_COOKIE=false NODE_ENV=production # PostgreSQL POSTGRES_DB=n8n POSTGRES_USER=n8n POSTGRES_PASSWORD=changeme123

理解环境变量:

变量描述
域名和主机定义 DOMAIN_NAMESUBDOMAINN8N_HOST。这些对于将 n8n 应用程序映射到特定 URL(如 n8n.example.com)至关重要,允许通过 DNS 进行外部访问。
时区GENERIC_TIMEZONE 为 Node.js 应用程序进程设置时区,以便调度和日志时间戳对您的区域准确。
协议和 WebhookN8N_PROTOCOLWEBHOOK_URL 配置 n8n 如何与外界交互。如果您正在集成需要回调 URL 的服务,这一点至关重要。
安全 CookieN8N_SECURE_COOKIE 设置为 false,因为我们默认在本地运行时没有 HTTPS 反向代理。如果您稍后通过外部代理配置 SSL/HTTPS,您可以删除此行,以使其默认为 true。
节点环境NODE_ENV 必须严格设置为 production。这优化了底层 Node.js 服务器的性能,而不是调试,无论实际部署阶段如何。
数据库凭据POSTGRES_DBUSERPASSWORD 在初始启动时用于创建 PostgreSQL 数据库并验证后续连接。在这里始终使用强大的自定义密码。

保存并关闭文件。您现在已设置好运行 Docker Compose 堆栈所需的所有配置。

启动 docker 服务

导航到您的项目目录,并在后台启动所有服务。

# Use your own path if different cd /opt/docker_services/n8n docker compose up -d

Docker 拉取必要的镜像并启动您的容器。一旦运行,n8n 将在端口 5678(默认)上可用,或者在使用反向代理时在您配置的域上可用。

要确认它是否正常工作,请检查 n8npostgres 容器是否列出并正在运行。

docker ps

使用 N8N

一旦服务成功运行,终于是时候开始探索 N8N 了!

访问 N8N

N8N 可以通过网页浏览器访问。在此本地设置中,它可在以下 URL 访问: http://localhost:5678

首次访问时,会出现一个登录页面,要求填写常见字段。

登录页面

设置许可证密钥

最初,N8N 显示一个窗口,提供一个免费许可证密钥,解锁付费功能。是的,您没听错:免费获得付费功能!这是运行自托管 N8N 实例的好处之一。

许可证密钥

一旦您在电子邮件中收到许可证密钥,您可以导航到 设置->使用和计划 来激活它。

许可证密钥激活

创建第一个工作流

可以直接从主页创建新的工作流。请参见下面的图像。

创建工作流

对于第一个执行用例,将使用两个节点:

  • 手动触发器:手动启动工作流。
  • 设置节点:定义并处理字段及其值。

手动触发器节点不需要配置,而设置节点则需要。在我们的案例中,目标是输出一条消息,说明“n8n 工作正常”,以及事件的时间戳。因此,设置节点的配置如下图所示。

设置节点

一旦两个节点连接并配置好,我们通过按下 执行工作流 按钮来启动工作流。

成功 1
成功 2

恭喜👏,您的第一个 N8N 工作流已成功执行!

接下来做什么?

这个初始设置只是开始。N8N 的真正强大之处在于您开始连接日常工具以自动化重复任务和减少摩擦。例如,您可以创建工作流,将新线索自动同步到 CRM,将紧急警报和关键服务错误路由到团队聊天,或定期将数据从各种 SaaS 平台备份到您的数据库。自动化您的操作和简化日常工作负载的可能性几乎是无穷无尽的。

结论

通过完成本指南,您成功部署了一个强大的自托管平台,能够改变您管理日常操作的方式。感谢您跟随本设置!当您继续探索 N8N 的功能时,请务必查看我们的其他教程,以发现更多令人惊叹和有用的工具。当您准备好扩展或深入新的激动人心的项目时,请记住 AlexHost 提供您可靠托管服务所需的所有强大基础设施。

15%

全场主机优惠15%

测试技能,享折扣

使用代码:

Skills
开始使用