发现全球最佳 AI 工具

从零教你部署与精通,掌握实战变现工作流

n8n安装与部署教程封面图,展示自动化节点、Docker部署和本地工作流平台

n8n安装与部署教程:从零搭建自动化工作流

本文系统讲解 n8n 的安装与部署方法,覆盖 npx、npm、Docker、Docker Compose、PostgreSQL、反向代理、HTTPS、Webhook、AI 工作流接入、备份升级和常见报错排查,适合新手从零搭建自动化工作流平台。

n8n安装与部署教程:从零搭建自动化工作流

网站发布教程 + SEO 文档 + FAQ + 相关阅读

适用读者:想在本机、VPS 或企业服务器上搭建 n8n 自动化工作流平台的新手、站长、运营、开发者和 AI 工作流玩家。

一、爆款标题

  • 《n8n安装与部署教程:从零搭建自己的自动化工作流系统》
  • 《不会写代码也能自动化:n8n自托管部署保姆级教程》
  • 《n8n本地部署全流程:Docker、PostgreSQL、HTTPS一次讲清楚》
  • 《AI工作流必备工具n8n:安装、部署、Webhook、反向代理完整指南》
  • 《从0到上线:用n8n搭建自动化办公与AI工作流平台》

二、文章摘要

n8n 是一款面向开发者、运营和自动化爱好者的工作流自动化平台,可以把表格、邮箱、数据库、Webhook、AI 模型、企业微信、飞书、WordPress、Notion、GitHub 等工具串成自动流程。本文以新手能照着做为目标,系统讲解 n8n 的安装路线、Docker 快速部署、Docker Compose 生产部署、PostgreSQL 数据库、域名 HTTPS、反向代理、Webhook 配置、备份升级和常见问题排查。

如果只是体验,直接用 npx 或 Docker 单容器即可;如果要长期运行网站自动发布、AI内容生成、客户线索同步、邮件通知、数据抓取等自动化任务,建议使用 Docker Compose + PostgreSQL + 反向代理 + HTTPS 的自托管方案。

三、封面图

封面图说明:以“自动化节点连接”和“本地部署控制台”为视觉核心,突出 n8n 的工作流编排、API 连接和自托管部署属性。

四、n8n是什么?为什么适合做自动化工作流?

n8n 可以理解为一个“自动化流程编排器”:你可以把触发器、条件判断、API 请求、数据库操作、AI 生成、文件处理、通知发送等动作拖拽成流程。它既适合个人做自动化办公,也适合团队把重复业务流程标准化。

典型使用场景

  • 自媒体自动化:RSS 抓取新闻 -> AI 总结改写 -> 生成封面图提示词 -> 发布到 WordPress。
  • 电商运营:新订单触发 -> 写入表格 -> 通知客服 -> 调用 AI 生成跟进话术。
  • 企业办公:表单提交 -> 审批流转 -> 飞书/钉钉通知 -> 归档到数据库。
  • 开发运维:GitHub Issue 触发 -> 自动分类 -> 调用模型生成修复建议 -> 推送到 Slack。
  • AI 工作流:Webhook 接收任务 -> 调用 OpenAI、DeepSeek、Ollama 或本地模型 -> 返回结构化结果。

它和 Zapier、Make、Coze、Dify 有什么区别?

工具更适合特点部署方式
n8n自托管自动化、API集成、团队流程节点丰富、可写代码、可私有化、适合长期运行Cloud / Docker / npm / 服务器
Zapier海外 SaaS 自动化生态广、上手快,但高级功能价格较高云端
Make可视化业务流程编排界面直观,适合营销和运营流程云端
DifyAI 应用与 Agent 工作流更偏 AI 应用、知识库、LLM 编排云端 / 自托管
Coze/扣子AI Bot 与智能体适合搭建聊天机器人和渠道发布云端为主

五、安装前准备:先确认你的部署路线

推荐路线速查

使用场景推荐方案适合人群备注
本机尝鲜npx n8n 或 Docker 单容器零基础、新手体验最快,但不适合长期生产
个人长期使用Docker + 数据卷个人站长、自动化玩家需要定期备份数据卷和密钥
网站/团队生产Docker Compose + PostgreSQL + 反向代理 + HTTPS企业、小团队、VPS用户更稳定,便于升级和迁移
企业高并发Queue Mode + PostgreSQL + Redis + 多 Worker技术团队需要运维能力与监控体系
不想运维n8n Cloud非技术用户、业务团队省心,但数据和费用按云服务规则走

最低准备清单

  • 一台电脑或服务器:Windows、macOS、Linux、VPS 都可以。
  • Docker Desktop 或 Docker Engine + Docker Compose。
  • 如果要公网访问:准备一个域名或子域名,例如 n8n.example.com。
  • 如果要生产部署:建议使用 PostgreSQL,而不是长期依赖 SQLite。
  • 如果要接收第三方 Webhook:服务器必须能被外网访问,且 HTTPS 配置正确。
  • 准备一组强密码,并保存好 N8N_ENCRYPTION_KEY,这个密钥关系到凭据能否解密。

六、方式一:npx 快速体验 n8n

npx 适合本机临时体验,不需要完整部署。官方文档说明,npm 方式要求本机安装 Node.js,且 n8n 要求 Node.js 版本在 20.19 到 24.x 范围内。

安装步骤

  1. 安装 Node.js,建议使用 LTS 版本。
  2. 打开终端或 PowerShell。
  3. 运行 npx n8n。
  4. 浏览器访问 http://localhost:5678。
  5. 首次进入后创建管理员账号。
# 查看 Node 与 npm 版本 node -v npm -v   # 不安装,直接临时运行 n8n npx n8n   # 浏览器打开 http://localhost:5678

注意:npx 适合测试和学习,不建议直接作为生产环境。关闭终端后服务会停止,数据和运行方式也不如 Docker Compose 易管理。

七、方式二:npm 全局安装 n8n

npm 全局安装比 npx 更固定,但生产环境依然更推荐 Docker。适合开发者在本机长期测试节点、调试插件或学习 n8n CLI。

# 全局安装 npm install n8n -g   # 启动 n8n # 或 n8n start   # 更新到最新版 npm update -g n8n   # 安装 next 版本(不建议生产使用) npm install -g n8n@next

Windows 下 npm 安装常见问题

  • 如果提示权限不足,优先使用管理员 PowerShell 或修改 npm 全局安装目录。
  • 如果 node-gyp 编译失败,通常与 Python、Visual Studio Build Tools、Node 版本有关。
  • 如果只是为了使用 n8n,不建议在 Windows 上死磕 npm 编译问题,Docker Desktop 通常更省事。

八、方式三:Docker 单容器快速部署

官方文档推荐大多数自托管场景优先使用 Docker,因为它能提供干净、隔离的运行环境,减少操作系统和依赖冲突,也更方便管理数据库、环境变量和数据卷。

本机快速启动

# 创建数据卷 sudo docker volume create n8n_data   # 启动 n8n sudo docker run -it –rm   –name n8n   -p 5678:5678   -v n8n_data:/home/node/.n8n   docker.n8n.io/n8nio/n8n

Windows/macOS 用户如果使用 Docker Desktop,可以去掉 sudo。启动后访问 http://localhost:5678。

适合长期本机运行的命令

docker volume create n8n_data   docker run -d   –name n8n   –restart unless-stopped   -p 5678:5678   -e GENERIC_TIMEZONE=Asia/Shanghai   -e TZ=Asia/Shanghai   -v n8n_data:/home/node/.n8n   docker.n8n.io/n8nio/n8n:stable

常用管理命令

# 查看容器状态 docker ps   # 查看日志 docker logs -f n8n   # 停止 / 启动 / 重启 docker stop n8n docker start n8n docker restart n8n   # 删除容器(不会删除数据卷) docker rm -f n8n

九、方式四:Docker Compose 生产部署

如果你准备把 n8n 放到 VPS、云服务器或公司内网服务器长期运行,建议使用 Docker Compose。这样可以把 n8n、PostgreSQL、反向代理、数据卷和环境变量写成可复用配置,升级和迁移也更清晰。

目录结构建议

/opt/n8n/ ├── compose.yaml ├── .env ├── local-files/ └── backups/

.env 示例

# 基础访问配置 DOMAIN_NAME=example.com SUBDOMAIN=n8n GENERIC_TIMEZONE=Asia/Shanghai TZ=Asia/Shanghai   # n8n 关键配置 N8N_HOST=n8n.example.com N8N_PROTOCOL=https N8N_PORT=5678 WEBHOOK_URL=https://n8n.example.com/ N8N_PROXY_HOPS=1 N8N_ENCRYPTION_KEY=请替换为足够长的随机字符串   # PostgreSQL POSTGRES_USER=n8n POSTGRES_PASSWORD=请替换为强密码 POSTGRES_DB=n8n DB_TYPE=postgresdb DB_POSTGRESDB_HOST=postgres DB_POSTGRESDB_PORT=5432 DB_POSTGRESDB_DATABASE=n8n DB_POSTGRESDB_USER=n8n DB_POSTGRESDB_PASSWORD=请替换为强密码

compose.yaml 示例:n8n + PostgreSQL

services:   postgres:     image: postgres:16-alpine     restart: unless-stopped     environment:       POSTGRES_USER: ${POSTGRES_USER}       POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}       POSTGRES_DB: ${POSTGRES_DB}     volumes:       – postgres_data:/var/lib/postgresql/data     n8n:     image: docker.n8n.io/n8nio/n8n:stable     restart: unless-stopped     ports:       – “127.0.0.1:5678:5678”     environment:       DB_TYPE: ${DB_TYPE}       DB_POSTGRESDB_HOST: ${DB_POSTGRESDB_HOST}       DB_POSTGRESDB_PORT: ${DB_POSTGRESDB_PORT}       DB_POSTGRESDB_DATABASE: ${DB_POSTGRESDB_DATABASE}       DB_POSTGRESDB_USER: ${DB_POSTGRESDB_USER}       DB_POSTGRESDB_PASSWORD: ${DB_POSTGRESDB_PASSWORD}       N8N_HOST: ${N8N_HOST}       N8N_PORT: ${N8N_PORT}       N8N_PROTOCOL: ${N8N_PROTOCOL}       WEBHOOK_URL: ${WEBHOOK_URL}       N8N_PROXY_HOPS: ${N8N_PROXY_HOPS}       N8N_ENCRYPTION_KEY: ${N8N_ENCRYPTION_KEY}       GENERIC_TIMEZONE: ${GENERIC_TIMEZONE}       TZ: ${TZ}     volumes:       – n8n_data:/home/node/.n8n       – ./local-files:/files     depends_on:       – postgres   volumes:   n8n_data:   postgres_data:

启动与查看日志

cd /opt/n8n   docker compose pull docker compose up -d   docker compose ps docker compose logs -f n8n

如果你没有反向代理,上面的配置仅监听本机 127.0.0.1:5678,外部无法直接访问。这是更安全的默认选择,后面再由 Nginx、Caddy 或 Traefik 代理到 HTTPS 域名。

十、配置反向代理与 HTTPS

n8n 的 Webhook URL 对自动化非常关键。官方文档说明,n8n 默认会用 N8N_PROTOCOL、N8N_HOST 和 N8N_PORT 拼接 Webhook 地址;如果服务在反向代理后面运行,必须手动设置 WEBHOOK_URL,并设置 N8N_PROXY_HOPS=1。

Nginx 反向代理示例

server {     listen 80;     server_name n8n.example.com;     return 301 https://$host$request_uri; }   server {     listen 443 ssl http2;     server_name n8n.example.com;       ssl_certificate /etc/letsencrypt/live/n8n.example.com/fullchain.pem;     ssl_certificate_key /etc/letsencrypt/live/n8n.example.com/privkey.pem;       location / {         proxy_pass http://127.0.0.1:5678;         proxy_http_version 1.1;         proxy_set_header Upgrade $http_upgrade;         proxy_set_header Connection “upgrade”;         proxy_set_header Host $host;         proxy_set_header X-Real-IP $remote_addr;         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;         proxy_set_header X-Forwarded-Host $host;         proxy_set_header X-Forwarded-Proto $scheme;     } }

Caddy 反向代理示例

n8n.example.com {     reverse_proxy 127.0.0.1:5678 }

Caddy 的优势是 HTTPS 证书申请和续期更自动化,适合希望少写配置的用户;Nginx 更通用,适合已有服务器环境。

十一、n8n 典型生产架构

架构说明

  • 用户通过浏览器访问 n8n Editor UI。
  • 第三方平台通过 Webhook 调用 n8n 的生产 URL。
  • 反向代理负责 HTTPS、域名转发和真实客户端信息传递。
  • n8n 服务负责执行工作流、管理凭据和调度任务。
  • PostgreSQL 保存工作流、凭据元数据、执行记录等。
  • n8n 数据卷保存加密密钥、本地文件、二进制数据等。
  • 外部 API 包括 AI 模型、数据库、CRM、邮件、企业 IM、WordPress 等。

十二、数据库选择:SQLite 还是 PostgreSQL?

官方文档说明,自托管 n8n 默认使用 SQLite,同时支持 PostgreSQL;MySQL 和 MariaDB 在 n8n v1.0 后已被废弃支持。

数据库适合场景优点注意事项
SQLite本机体验、小流程、临时测试免配置、启动快、简单不适合多人协作和生产高负载
PostgreSQL生产环境、团队使用、长期运行稳定、可扩展、备份工具成熟需要额外维护数据库
MySQL/MariaDB旧项目历史配置不建议新项目使用官方已废弃支持,避免新部署使用

PostgreSQL 关键环境变量

变量示例说明
DB_TYPEpostgresdb指定数据库类型
DB_POSTGRESDB_HOSTpostgresDocker Compose 服务名或数据库地址
DB_POSTGRESDB_PORT5432PostgreSQL 默认端口
DB_POSTGRESDB_DATABASEn8n数据库名
DB_POSTGRESDB_USERn8n数据库用户
DB_POSTGRESDB_PASSWORD强密码数据库密码
DB_POSTGRESDB_POOL_SIZE2 或更高连接池大小,需根据服务器资源调整

十三、首次进入 n8n:初始化账号和安全设置

  • 浏览器访问 http://localhost:5678 或你的 HTTPS 域名。
  • 创建 owner 管理员账号。
  • 设置强密码,不要使用默认弱密码。
  • 进入 Settings 检查实例 URL、时区、用户与权限。
  • 创建第一个测试 Workflow:Manual Trigger -> Set -> Respond。
  • 如果要使用第三方平台回调,测试 Webhook 的 Test URL 与 Production URL 是否正确。

建议立即完成的安全动作

  • 保存好 N8N_ENCRYPTION_KEY,不要在迁移时丢失。
  • 生产环境必须配置 HTTPS。
  • 不要把 5678 端口直接暴露在公网,建议只让反向代理访问。
  • 服务器防火墙只开放 80、443、SSH 必要端口。
  • 定期备份数据库和 n8n 数据卷。
  • 邀请团队成员时使用最小权限原则。

十四、创建第一个自动化工作流

示例:Webhook 接收内容 -> AI 处理 -> 返回结果

  1. 新建 Workflow。
  2. 添加 Webhook Trigger 节点,方法选择 POST。
  3. 添加 Set 节点,提取 body 中的 title、content、url 等字段。
  4. 添加 HTTP Request 或 AI 节点,调用 OpenAI、DeepSeek、Ollama、Dify 等服务。
  5. 添加 Respond to Webhook 节点,把处理结果返回给调用方。
  6. 保存并激活 Workflow。
  7. 用 curl 或 Postman 测试生产 Webhook 地址。
curl -X POST https://n8n.example.com/webhook/article-demo   -H “Content-Type: application/json”   -d ‘{“title”:”n8n教程”,”content”:”请帮我总结这篇文章”}’

示例:定时抓取 RSS -> 自动发布到 WordPress

  • Cron 节点:每天 9:00 触发。
  • RSS Read 节点:读取 AI 新闻源。
  • IF 节点:过滤重复标题。
  • AI 节点或 HTTP Request:生成摘要、标题、SEO 描述。
  • WordPress 节点:创建草稿或直接发布。
  • 企业微信/飞书节点:推送发布结果。

十五、AI 工作流接入:OpenAI、DeepSeek、Ollama 怎么连?

接入对象推荐方式适合场景注意事项
OpenAI / Claude / Gemini官方 API 或 HTTP Request高质量写作、代码、总结注意 API Key 安全和费用控制
DeepSeek APIHTTP Request / OpenAI兼容配置中文内容、代码、低成本推理确认 base_url 与模型名
Ollama 本地模型HTTP Request 调用 http://主机:11434私有化、本地测试、低成本模型质量和速度受硬件影响
Dify / CozeHTTP API / Webhook已有 AI 应用需要串流程注意请求格式和鉴权
本地向量数据库HTTP Request / 社区节点RAG、知识库自动化需要管理索引和数据更新

调用 Ollama 的 HTTP Request 示例

POST http://host.docker.internal:11434/api/chat Content-Type: application/json   {   “model”: “qwen2.5:7b”,   “messages”: [     {“role”:”user”, “content”:”请把这段文字改写成公众号风格”}   ],   “stream”: false }

如果 n8n 和 Ollama 都在 Docker 中,需根据网络结构调整 host.docker.internal、容器名或 Docker network。Linux 服务器上通常更推荐把 Ollama 与 n8n 放到同一自定义网络中。

十六、备份、升级与迁移

备份什么?

  • PostgreSQL 数据库:保存工作流、凭据元数据、执行记录。
  • n8n_data 数据卷:保存 .n8n 目录、加密密钥和本地文件。
  • compose.yaml 与 .env:保存部署结构和环境变量。
  • N8N_ENCRYPTION_KEY:必须单独安全备份,丢失后可能无法解密已有凭据。

PostgreSQL 备份示例

# 进入项目目录 cd /opt/n8n   # 备份数据库 docker compose exec postgres pg_dump -U n8n n8n > backups/n8n_$(date +%F).sql   # 备份配置文件 cp .env backups/env_$(date +%F).bak cp compose.yaml backups/compose_$(date +%F).bak

升级步骤

cd /opt/n8n   # 1. 先备份数据库和配置 mkdir -p backups cp .env backups/env_$(date +%F).bak cp compose.yaml backups/compose_$(date +%F).bak   # 2. 拉取新镜像 docker compose pull   # 3. 重启服务 docker compose up -d   # 4. 查看日志 docker compose logs -f n8n

生产环境建议固定镜像版本,例如 docker.n8n.io/n8nio/n8n:2.18.5,而不是一直使用 latest。这样出现兼容问题时更容易回滚。

十七、常见问题排查

1. 打不开 http://localhost:5678

  • 运行 docker ps,确认容器是否正在运行。
  • 运行 docker logs -f n8n,看是否有启动失败日志。
  • 检查端口是否被占用:Windows 用 netstat,Linux/macOS 用 lsof。
  • 如果是在 VPS 上访问,确认防火墙和安全组是否开放了对应端口。

2. Webhook 在本地能用,外部平台收不到

  • 确认你使用的是 Production URL,而不是 Test URL。
  • 确认 Workflow 已经 Active。
  • 反向代理场景下设置 WEBHOOK_URL=https://你的域名/。
  • 设置 N8N_PROXY_HOPS=1,并确保代理传递 X-Forwarded-* 头。
  • 检查第三方平台是否要求 HTTPS。

3. 数据库连接失败

  • 检查 DB_TYPE 是否为 postgresdb。
  • Docker Compose 中 DB_POSTGRESDB_HOST 通常应填写 postgres 服务名。
  • 确认 PostgreSQL 用户、密码、数据库名一致。
  • 查看 postgres 容器日志,确认数据库已启动完成。

4. 迁移后凭据无法使用

  • 重点检查 N8N_ENCRYPTION_KEY 是否与旧环境一致。
  • 不要只导出 Workflow 而忽略凭据和环境变量。
  • 迁移前备份 .env、数据库和 n8n_data 数据卷。

5. 内存越来越高

  • 减少执行记录保存量,避免保存过多大体积数据。
  • 将图片、音频、大文件放到外部存储,不要长期堆在数据库或容器内。
  • 复杂流程拆分为多个小流程。
  • 生产环境使用 PostgreSQL,并关注数据库体积。

十八、适合新手的部署方案推荐

你的情况推荐方案不推荐
只想学习 n8nnpx n8n 或 Docker 单容器上来就配置复杂反向代理
本地长期自动化Docker + 数据卷 + 定期备份npm 裸跑且不备份
VPS 上线使用Docker Compose + PostgreSQL + Caddy/Nginx + HTTPS直接暴露 5678 到公网
要接企业微信/飞书/GitHub Webhook公网域名 + HTTPS + WEBHOOK_URL使用临时 tunnel 做长期生产
企业团队使用PostgreSQL + 权限管理 + 备份监控 + 版本锁定所有人共用一个管理员账号

十九、FAQ

Q1:n8n 是免费的吗?

n8n 自托管 Community edition 可以免费使用;如果需要企业级功能、云服务或商业支持,需要根据官方版本和授权规则选择。

Q2:n8n 一定要部署在服务器上吗?

不一定。本机也能运行,但如果要接收外部 Webhook、定时任务长期运行或给团队使用,建议部署在 VPS 或内网服务器。

Q3:n8n 能不能和本地大模型一起用?

可以。常见方式是通过 HTTP Request 调用 Ollama、LocalAI、vLLM、LM Studio 等本地模型 API。

Q4:SQLite 可以长期使用吗?

小规模个人任务可以,但生产和团队协作更建议 PostgreSQL。

Q5:为什么 Webhook 地址显示 localhost?

通常是没有正确配置 N8N_HOST、N8N_PROTOCOL、WEBHOOK_URL,或者反向代理环境没有设置 N8N_PROXY_HOPS。

Q6:Docker 和 npm 哪个更推荐?

体验可用 npx/npm;长期自托管更推荐 Docker 或 Docker Compose。

Q7:n8n 可以自动发布 WordPress 文章吗?

可以。可以用 RSS、HTTP Request、AI 模型、WordPress 节点组合成自动发布或自动生成草稿流程。

Q8:升级 n8n 会不会丢数据?

正常不会,但升级前必须备份数据库、数据卷、.env 和加密密钥。生产环境建议固定版本并先在测试环境验证。

Q9:n8n 和 Dify 哪个更适合 AI 工作流?

n8n 更偏通用自动化和系统集成;Dify 更偏 AI 应用、知识库和 LLM 编排。两者可以互相调用。

Q10:没有域名能用 n8n 吗?

本地使用可以不需要域名;外部 Webhook、团队访问、HTTPS 生产部署通常建议配置域名。

官方参考来源

  • n8n Self-hosting 文档:https://docs.n8n.io/hosting/
  • n8n Docker Installation:https://docs.n8n.io/hosting/installation/docker/
  • n8n Docker Compose:https://docs.n8n.io/hosting/installation/server-setups/docker-compose/
  • n8n npm Installation:https://docs.n8n.io/hosting/installation/npm/
  • n8n Supported databases:https://docs.n8n.io/hosting/configuration/supported-databases-settings/
  • n8n Database environment variables:https://docs.n8n.io/hosting/configuration/environment-variables/database/
  • n8n Webhook reverse proxy:https://docs.n8n.io/hosting/configuration/configuration-examples/webhook-url/
Facebook
LinkedIn
Reddit
X
Email
WhatsApp
Telegram
Pinterest
Mix

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注