Dynadot 搬瓦工 腾讯云

2026 搬瓦工 VPS 部署 n8n + DeepSeek 自动化工作流教程:从安装到实战

Sider GigsGigsCloud

本文老唐手把手教大家在搬瓦工 VPS 上部署 n8n 自动化工作流平台,并对接 DeepSeek AI 大模型,搭建一套属于自己的 AI 自动化系统。整个过程大约 30 分钟,需要的前置知识:会用 SSH 连接 VPS,会在命令行里敲命令。

n8n 是什么?简单说就是一个开源的自动化工作流工具,类似 Zapier 但可以自己部署。它能把各种服务串起来,收到邮件自动让 AI 总结、RSS 更新自动翻译推送、定时抓取数据生成报告。对接 DeepSeek 之后,这些工作流就有了 AI 大脑,能理解、分析、生成内容。

关键是成本极低:n8n 开源免费,DeepSeek API 每百万 token 不到 3 块钱人民币,加上搬瓦工 VPS(KVM 2GB $99.99/年,折合约 720 元),全套年费不到 800 元。用最便宜的 KVM 1GB($49.99/年 ≈ 360 元)+ 免费 API,甚至 400 元以内就能搞定。

1. n8n 是什么,能干什么

n8n(读作 “n-eight-n”,意思是 nodemation)是一个开源的工作流自动化平台。你可以把它理解为自己搭的 Zapier,通过可视化界面把不同的服务和操作连成一条流水线,自动执行。

和 Zapier、Make 的区别:

对比项 n8n Zapier / Make
部署方式 自建服务器 云服务
费用 开源免费 按任务数收费($20+/月)
数据隐私 数据在自己服务器上 数据经过第三方
AI 集成 内置 LangChain 节点,支持 DeepSeek/OpenAI/Claude 等 有限的 AI 集成
自定义 完全可控,支持自定义代码 受限于平台提供的功能

n8n 自带 400+ 集成节点,覆盖邮件(Gmail/Outlook)、聊天(Slack/Discord)、数据库(PostgreSQL/MySQL)、文件(Google Drive/Dropbox)、HTTP 请求等。2024 年后 n8n 加入了基于 LangChain 的 AI 节点,可以直接在工作流里调用大模型——这就是本文的重点。

当前最新稳定版本是 n8n 2.10.x(2026 年 3 月),Docker 部署默认拉取最新稳定版。

2. 配置要求和 VPS 选购

n8n 系统要求

项目 最低配置 推荐配置
CPU 1 核 2 核
内存 2 GB 4 GB
磁盘 20 GB SSD 25 GB SSD
系统 Ubuntu 20.04+ / Debian 11+ Ubuntu 22.04

n8n 本身不是特别吃资源——空闲时内存占用约 300-500 MB。但加上 PostgreSQL 数据库、Docker 引擎开销、以及工作流执行时的峰值占用,2 GB 是实际最低门槛,4 GB 更从容

如果你只是跑几个简单的 AI 工作流(每天几十次调用),2 GB 够用。如果要跑大量并发工作流或者处理大文件,建议 4 GB。

搬瓦工套餐推荐

套餐 配置 价格 适合场景 链接
KVM 2GB 3 核 / 2GB / 40GB $99.99/年(约 60 元/月) 个人使用,轻量工作流 购买
CN2 GIA-E 1GB 2 核 / 1GB / 20GB $49.99/季度(约 120 元/月) 加 Swap 后可用,国内访问快 购买
CN2 GIA-E 2GB 3 核 / 2GB / 40GB $89.99/季度(约 216 元/月) 推荐,稳定运行 购买

老唐建议:如果只是跑 n8n 一个服务,KVM 2GB($99.99/年)性价比最高。如果 VPS 上还要跑其他东西(比如之前教程里的 Open WebUI 或 Dify),建议上 CN2 GIA-E 2GB。

购买教程参考:《搬瓦工购买教程》

搬瓦工新手入门和所有可用优惠码,参考 《搬瓦工新手入门完全指南》

3. 安装 Docker 和 Docker Compose

SSH 连接到搬瓦工 VPS 后,先安装 Docker。如果你之前跟着老唐的 Ollama 或 Dify 教程装过 Docker,可以跳过这一步。

安装 Docker

# 更新系统
sudo apt update && sudo apt upgrade -y

# 安装 Docker(官方一键脚本)
curl -fsSL https://get.docker.com | sh

# 把当前用户加入 docker 组(免 sudo)
sudo usermod -aG docker $USER

# 退出并重新登录 SSH,使权限生效
exit

重新 SSH 登录后,验证安装:

docker --version
# 输出类似:Docker version 27.x.x

docker compose version
# 输出类似:Docker Compose version v2.x.x

2 GB 及以下内存:必须加 Swap

如果你的 VPS 内存只有 1-2 GB,务必先加 Swap,否则安装或运行过程中可能被系统 OOM 杀掉:

# 创建 4 GB Swap
sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

# 设置开机自动挂载
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

# 验证
free -h

4. 部署 n8n(Docker Compose + PostgreSQL)

n8n 默认用 SQLite 存数据,生产环境强烈建议用 PostgreSQL——性能更好,数据更安全,备份也方便。

4.1 创建项目目录

mkdir -p ~/n8n-deployment && cd ~/n8n-deployment

4.2 创建环境变量文件

cat > .env << 'EOF'
# ===== PostgreSQL =====
POSTGRES_USER=n8n
POSTGRES_PASSWORD=替换成你自己的强密码
POSTGRES_DB=n8n

# ===== n8n 数据库连接 =====
DB_TYPE=postgresdb
DB_POSTGRESDB_HOST=postgres
DB_POSTGRESDB_PORT=5432
DB_POSTGRESDB_DATABASE=n8n
DB_POSTGRESDB_USER=n8n
DB_POSTGRESDB_PASSWORD=替换成你自己的强密码
DB_POSTGRESDB_SCHEMA=public

# ===== n8n 实例配置 =====
N8N_HOST=0.0.0.0
N8N_PORT=5678
N8N_PROTOCOL=http

# Webhook 地址(后面绑域名后要改成 https://你的域名/)
WEBHOOK_URL=http://你的VPS公网IP:5678/

# 时区设为中国
GENERIC_TIMEZONE=Asia/Shanghai
TZ=Asia/Shanghai

# 关闭遥测
N8N_DIAGNOSTICS_ENABLED=false

# 加密密钥(必须设置,丢了就无法解密已保存的凭据)
N8N_ENCRYPTION_KEY=替换成随机字符串
EOF

重要:生成加密密钥的方法:

openssl rand -hex 32

把生成的随机字符串填到 N8N_ENCRYPTION_KEY 后面。这个密钥用来加密你在 n8n 里保存的所有 API Key 和密码,一定要备份好,换机器迁移时需要用

4.3 创建 Docker Compose 文件

cat > docker-compose.yml << 'EOF'
version: "3.8"

services:
  postgres:
    image: postgres:16-alpine
    container_name: n8n-postgres
    restart: unless-stopped
    env_file: .env
    environment:
      - POSTGRES_USER=${POSTGRES_USER}
      - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
      - POSTGRES_DB=${POSTGRES_DB}
    volumes:
      - postgres_data:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}"]
      interval: 10s
      timeout: 5s
      retries: 10

  n8n:
    image: docker.n8n.io/n8nio/n8n
    container_name: n8n-app
    restart: unless-stopped
    env_file: .env
    ports:
      - "5678:5678"
    depends_on:
      postgres:
        condition: service_healthy
    volumes:
      - n8n_data:/home/node/.n8n

volumes:
  postgres_data:
  n8n_data:
EOF

4.4 启动

docker compose up -d

首次启动会拉取镜像,大约 1-3 分钟。查看日志确认启动成功:

docker compose logs -f n8n

看到 Editor is now accessible via: http://0.0.0.0:5678 就说明启动成功了。按 Ctrl + C 退出日志。

5. 首次访问和账号设置

在浏览器打开:

http://你的VPS公网IP:5678

首次访问会要求创建管理员账号。设置好邮箱和密码,这就是你登录 n8n 编辑器的凭据。

进入主界面后,你会看到 n8n 的可视化工作流编辑器——左边是节点面板,中间是画布,右边是节点配置区。

安全提醒:此时 n8n 是通过 HTTP + IP 直接暴露在公网上的。后面第 8 节会教你绑域名和 HTTPS。在那之前,建议先设置好防火墙只允许你的 IP 访问 5678 端口。

6. 对接 DeepSeek API

这是本文的核心——让 n8n 的工作流用上 AI 能力。

6.1 获取 DeepSeek API Key

  1. 打开 DeepSeek 开放平台
  2. 注册并登录
  3. 进入「API Keys」页面,创建一个新的 API Key
  4. 复制保存好(只显示一次)
  5. 充值余额(支持支付宝/微信),日常使用很省(后面会算账)

6.2 在 n8n 中配置 DeepSeek 凭据

n8n 从 2025 年底开始内置了 DeepSeek Chat Model 节点,不需要装插件,直接用。

配置步骤:

  1. 在 n8n 编辑器里,点击左侧菜单的「Credentials」(凭据)
  2. 点击「Add Credential」
  3. 搜索 “DeepSeek”,选择 DeepSeek API
  4. 填入你的 API Key
  5. Base URL 保持默认:https://api.deepseek.com
  6. 保存

6.3 也可以用 OpenAI 兼容模式

DeepSeek API 和 OpenAI 格式完全兼容。如果你更习惯用 OpenAI 节点,也可以:

  1. 添加一个「OpenAI API」凭据
  2. API Key 填 DeepSeek 的 Key
  3. Base URL 改成 https://api.deepseek.com/v1(注意末尾有 /v1,OpenAI SDK 需要这个路径)
  4. 模型手动填 deepseek-chatdeepseek-reasoner

两种方式效果一样,老唐推荐直接用原生 DeepSeek 节点,配置更简单。

6.4 DeepSeek 可用模型

API 模型名 说明 适合场景
deepseek-chat DeepSeek V3(非思考模式) 日常对话、文本处理、快速响应
deepseek-reasoner DeepSeek V3(思考模式) 数学推理、逻辑分析、复杂编程

6.5 API 费用参考

DeepSeek 的定价在主流大模型里属于最便宜的一档:

模型 输入价格(每百万 token) 输出价格(每百万 token) 人民币折算
deepseek-chat $0.28 $0.42 输入约 2 元,输出约 3 元
deepseek-reasoner $0.28 $0.42 同上

实际花费:一次典型的 AI 对话大约消耗 500-1000 个 token(输入+输出)。按每天跑 100 次自动化任务算,一个月 API 费用不到 5 元人民币

对比 OpenAI GPT-4o(输入 $2.50,输出 $10.00/百万 token),DeepSeek 便宜了 10-25 倍。中文能力 DeepSeek 还更强。

7. 实战:5 个 AI 自动化工作流

下面是 5 个老唐实际用过的工作流案例,从简单到复杂。

工作流 1:RSS 自动摘要 + 推送

需求:每小时检查指定 RSS 源的更新,用 AI 生成中文摘要,推送。

节点连接

Schedule Trigger(每小时)
  → RSS Feed Read(读取 RSS)
  → Summarization Chain(AI 摘要)
    └── DeepSeek Chat Model
  → Telegram(发送消息)

搭建步骤

  1. 添加 Schedule Trigger 节点,设置为每 60 分钟执行一次
  2. 添加 RSS Feed Read 节点,填入 RSS 地址(比如 https://hnrss.org/newest
  3. 添加 Summarization Chain 节点(在 AI > Chains 里找),连接一个 DeepSeek Chat Model 子节点
  4. 在 Summarization Chain 的 Prompt 里写:用中文总结以下内容,不超过 3 句话:
  5. 添加消息推送节点,配置 Bot Token 和 Chat ID,消息内容引用 AI 输出

效果:每小时自动检查更新,有新文章就生成摘要推送消息,再也不用手动刷 RSS。

工作流 2:邮件自动分类 + AI 回复草稿

需求:收到邮件后自动分类(咨询/投诉/垃圾邮件),对咨询类邮件生成 AI 回复草稿。

节点连接

Email Trigger(IMAP 收邮件)
  → Text Classifier(AI 分类)
    └── DeepSeek Chat Model
  → Switch(按分类路由)
    → [咨询] AI Agent(生成回复)→ Gmail(存草稿)
    → [投诉] Slack(通知客服)
    → [垃圾] 丢弃

关键配置

  • Text Classifier 节点里定义分类标签:inquirycomplaintspam
  • AI Agent 节点的 System Prompt 写清楚你的业务背景和回复风格
  • Gmail 节点用”Create Draft”模式,不直接发送,人工审核后再发

工作流 3:定时数据报告

需求:每天早上 9 点,自动抓取多个数据源,让 AI 生成一份分析报告,发到邮箱。

节点连接

Schedule Trigger(每天 9:00)
  → HTTP Request × 3(抓取数据)
  → Code(数据整合)
  → Basic LLM Chain(AI 分析)
    └── DeepSeek Chat Model
  → Gmail(发送报告)

适用场景:监控竞品价格变动、每日股票/加密货币行情分析、网站流量日报。

工作流 4:Webhook 接收 → AI 处理 → 返回结果

需求:提供一个 API 接口,其他系统发送文本过来,AI 处理后返回结构化结果。

节点连接

Webhook(接收 POST 请求)
  → AI Agent
    └── DeepSeek Chat Model
    └── Tools: Calculator, Code
  → Respond to Webhook(返回 JSON)

配置细节

  • Webhook 节点选择 POST 方法,路径设为你自定义的地址(如 /webhook/ai-process
  • 在 AI Agent 的 System Prompt 里指定输出 JSON 格式
  • Respond to Webhook 节点把 AI 的输出包装成 JSON 返回

调用方式

curl -X POST https://你的域名/webhook/ai-process \
  -H "Content-Type: application/json" \
  -d '{"text": "帮我从这段文字中提取所有人名和公司名..."}'

这等于用 n8n + DeepSeek 搭了一个自己的 AI API 服务。

工作流 5:信息提取 + 数据入库

需求:从网页或文档中提取结构化数据(比如产品名、价格、评分),存入数据库。

节点连接

Schedule Trigger / Webhook
  → HTTP Request(抓取网页)
  → Information Extractor(AI 提取)
    └── DeepSeek Chat Model
    └── Output Parser(JSON Schema)
  → PostgreSQL / Google Sheets(存储)
  → IF(条件判断:价格低于阈值?)
    → Telegram(价格提醒)

Information Extractor 是 n8n 的 AI 节点之一,你定义好要提取的字段(JSON Schema),AI 就会从输入文本中提取对应数据并按格式输出。

8. 绑定域名和 HTTPS(Caddy)

生产环境不建议直接用 IP + 端口访问。绑定域名 + HTTPS 更安全,Webhook 功能也需要 HTTPS 才能正常工作。

8.1 准备工作

  • 一个域名(比如 n8n.yourdomain.com
  • 将域名的 A 记录指向搬瓦工 VPS 的 IP
  • 等待 DNS 生效(通常几分钟到几小时)

8.2 修改 Docker Compose 加入 Caddy

把前面的 docker-compose.yml 替换成以下内容:

version: "3.8"

services:
  caddy:
    image: caddy:latest
    container_name: n8n-caddy
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - caddy_data:/data
      - ./Caddyfile:/etc/caddy/Caddyfile

  postgres:
    image: postgres:16-alpine
    container_name: n8n-postgres
    restart: unless-stopped
    env_file: .env
    environment:
      - POSTGRES_USER=${POSTGRES_USER}
      - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
      - POSTGRES_DB=${POSTGRES_DB}
    volumes:
      - postgres_data:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}"]
      interval: 10s
      timeout: 5s
      retries: 10

  n8n:
    image: docker.n8n.io/n8nio/n8n
    container_name: n8n-app
    restart: unless-stopped
    env_file: .env
    expose:
      - "5678"
    depends_on:
      postgres:
        condition: service_healthy
    volumes:
      - n8n_data:/home/node/.n8n

volumes:
  postgres_data:
  n8n_data:
  caddy_data:

注意:n8n 的 ports 改成了 expose不再直接暴露 5678 端口到公网,由 Caddy 代理。

8.3 创建 Caddyfile

cat > Caddyfile << 'EOF'
n8n.yourdomain.com {
    reverse_proxy n8n:5678 {
        flush_interval -1
    }
}
EOF

n8n.yourdomain.com 替换成你自己的域名。Caddy 会自动申请 Let’s Encrypt 证书,全程无需手动配置 SSL。

8.4 更新 .env

把 .env 文件中的以下两行改掉:

N8N_PROTOCOL=https
WEBHOOK_URL=https://n8n.yourdomain.com/

8.5 重启

docker compose down
docker compose up -d

现在访问 https://n8n.yourdomain.com 就能用了,证书自动配好。

9. 日常维护和备份

更新 n8n

cd ~/n8n-deployment

# 拉取最新镜像
docker compose pull n8n

# 重启(数据不会丢失)
docker compose up -d n8n

建议每 1-2 个月更新一次。n8n 的更新频率大约每周一个小版本。

备份数据库

# 导出 PostgreSQL 数据
docker exec n8n-postgres pg_dump -U n8n n8n > backup_$(date +%Y%m%d).sql

# 恢复(需要时)
cat backup_20260308.sql | docker exec -i n8n-postgres psql -U n8n n8n

建议写个定时任务(crontab)每天自动备份:

# 编辑 crontab
crontab -e

# 添加一行(每天凌晨 3 点备份)
0 3 * * * docker exec n8n-postgres pg_dump -U n8n n8n > /root/n8n-backups/backup_$(date +\%Y\%m\%d).sql

查看日志

# n8n 日志
docker compose logs -f n8n

# PostgreSQL 日志
docker compose logs -f postgres

10. 安全加固

防火墙设置

# 只开放必要端口
sudo ufw allow 22/tcp    # SSH
sudo ufw allow 80/tcp    # HTTP(Caddy 用)
sudo ufw allow 443/tcp   # HTTPS(Caddy 用)
sudo ufw enable

# 不要开放 5678 端口——Caddy 在 Docker 内部网络代理,不需要对外暴露

n8n 安全相关环境变量

在 .env 中添加:

# n8n 2.0+ 默认已禁止 Code 节点访问系统环境变量(N8N_BLOCK_ENV_ACCESS_IN_NODE=true)
# 如果你需要在 Code 节点里读取环境变量,需要手动改成 false(不推荐)

# 禁止 Code 节点引入外部 npm 模块
NODE_FUNCTION_ALLOW_EXTERNAL=false

加密密钥备份

前面设置的 N8N_ENCRYPTION_KEY 一定要单独备份。这个密钥丢了,n8n 里保存的所有 API Key、数据库密码等凭据全部无法解密,只能重新配置。

11. 常见问题

n8n 启动失败,日志显示数据库连接错误

检查 .env 文件中的数据库密码是否一致——POSTGRES_PASSWORDDB_POSTGRESDB_PASSWORD 必须完全相同。另外确认 DB_POSTGRESDB_HOST 填的是 postgres(Docker 服务名),不是 localhost

DeepSeek 节点报 401 Unauthorized

API Key 填错了,或者 DeepSeek 账户余额为零。登录 DeepSeek 开放平台 检查余额和 Key 状态。

工作流执行很慢

几个可能原因:

  1. VPS 内存不足,频繁 Swap——用 free -h 检查,考虑升级配置
  2. DeepSeek API 响应慢——高峰期偶尔会排队,可以在节点设置里加大 Timeout
  3. 工作流里有大量数据循环——用 Split In Batches 节点分批处理

Webhook 收不到请求

  1. 确认 WEBHOOK_URL 设置正确(必须是外部可访问的 URL)
  2. 确认防火墙开放了 80/443 端口
  3. 确认域名 DNS 解析正确
  4. 在 n8n 编辑器里,工作流必须处于「Active」状态,Webhook 才会监听

内存不够,n8n 被 OOM 杀掉

  1. 加 Swap(见第 3 节)
  2. 减少同时运行的工作流数量
  3. 在 n8n 设置里降低 EXECUTIONS_DATA_MAX_AGE,定期清理历史执行记录
  4. 考虑升级 VPS 套餐——搬瓦工支持在 KiwiVM 后台直接升级,只需补差价

n8n 和之前装的 Dify / Open WebUI 能同时跑吗?

能,但对内存有要求。n8n + PostgreSQL 大约占 800 MB – 1.2 GB。加上 Dify(1.5-2 GB)或 Open WebUI + Ollama(1-5 GB),至少需要 4 GB 内存的 VPS。如果内存紧张,建议分开部署在不同 VPS 上。

12. 总结和系列文章

以上就是在搬瓦工 VPS 上部署 n8n + DeepSeek 的完整流程。总结一下关键信息:

  • n8n:开源免费的工作流自动化平台,Docker 一键部署
  • DeepSeek:国产 AI 大模型,API 价格极低(每百万 token 约 2-3 元人民币)
  • VPS 配置:2 GB 内存起步,推荐搬瓦工 KVM 2GB($99.99/年)或 CN2 GIA-E 2GB($89.99/季度)
  • 年费总计:VPS $99.99 + DeepSeek API 约 60 元/年 = 总共不到 800 元/年

n8n 的玩法远不止上面 5 个例子。你可以用它对接几乎任何有 API 的服务——企业微信、飞书、Notion、Airtable、GitHub 等等。加上 DeepSeek 的 AI 能力,想象空间很大。

AI + VPS 系列文章

本文是 oldtang.com「AI on VPS」系列的第五篇。系列文章:

  1. 《2026 VPS 部署 AI 大模型完全指南:从选配置到跑起来》
  2. 《2C2G / 4C4G / 8C8G VPS 分别能跑什么 AI 应用?配置选择与性能预估》
  3. 《2026 搬瓦工 VPS 部署 Ollama + Open WebUI 教程:搭建私人 ChatGPT》
  4. 《2026 搬瓦工 VPS 部署 Dify AI 应用平台教程:从安装到搭建 RAG 知识库》
  5. 本文《2026 搬瓦工 VPS 部署 n8n + DeepSeek 自动化工作流教程》
  6. 《月预算 30-500 元,能跑什么 AI?VPS + AI 费用全拆解》

购买教程:《搬瓦工购买教程》

新手指南:《搬瓦工新手入门完全指南》

购买建议:预算有限选 KVM 套餐($49.99/年起),追求速度和稳定选 CN2 GIA-E 套餐($169.99/年起,支持季付),极致延迟选香港 CN2 GIA 套餐($89.99/月起)。

搬瓦工官网:bwh81.net

套餐推荐:

方案内存CPU硬盘流量/月带宽机房价格购买
KVM
(最便宜)
1GB2核20GB1TB1GbpsDC2 AO
DC8 ZNET
$49.99/年购买
KVM2GB3核40GB2TB1Gbps$52.99/半年
$99.99/年
购买
CN2 GIA-E
(最推荐)
1GB2核20GB1TB2.5GbpsDC6 CN2 GIA-E
DC9 CN2 GIA
日本软银 JPOS_1
联通荷兰 EUNL_9
$49.99/季度
$169.99/年
购买
CN2 GIA-E2GB3核40GB2TB2.5Gbps$89.99/季度
$299.99/年
购买
HK2GB2核40GB0.5TB1Gbps中国香港 CN2 GIA$89.99/月
$899.99/年
购买
HK4GB4核80GB1TB1Gbps$155.99/月
$1559.99/年
购买
OSAKA2GB2核40GB0.5TB1.5Gbps日本大阪 CN2 GIA$49.99/月
$499.99/年
购买
OSAKA4GB4核80GB1TB1.5Gbps$86.99/月
$869.99/年
购买
Dynadot Hostwinds
赞(0)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《2026 搬瓦工 VPS 部署 n8n + DeepSeek 自动化工作流教程:从安装到实战
文章链接:https://oldtang.com/14607.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。