Dify 这两年火得很快,不是因为它又做了一个聊天界面,而是它把很多人真正想要的东西打包到一起了:知识库、RAG、Agent、工作流、模型接入、API 发布。
如果你已经在 VPS 上玩过 n8n、Ollama + Open WebUI,可能会问:那 Dify 到底多了什么?
一句话解释:
- n8n 更像“自动化流水线”,擅长把各种系统串起来;
- Open WebUI 更像“AI 聊天前端”,适合和本地模型对话;
- Dify 更像“AI 应用后台”,适合做知识库问答、客服机器人、文档检索、内部助手。
所以 Dify 不是替代 n8n,也不是替代 Open WebUI。它更适合做一件事:把 AI 能力变成一个真正能给别人用的应用。
先别急着部署。Dify 比 n8n 重不少,也比普通聊天 UI 复杂。下面这些场景才比较值得上:
| 场景 | Dify 的价值 |
|---|---|
| 公司内部文档问答 | 上传 PDF、Markdown、网页内容,做 RAG 知识库 |
| 客服机器人 | 接入 FAQ、产品文档、工单知识库 |
| 内容生成工具 | 写文章、改标题、生成摘要、批量润色 |
| AI 工作流 | 多步骤提示词、条件分支、工具调用 |
| 给团队提供统一入口 | 后台管理应用、模型、Key 和日志 |
如果你只是自己和模型聊天,Open WebUI 更轻。如果你只是想把 Telegram、Webhook、表格、邮件串起来,n8n 更合适。
但如果你想做“上传一堆资料,然后让 AI 按资料回答问题”,Dify 就很顺手。
Dify 官方最低要求常见说法是 2 核 4GB,但真实用起来,4GB 是底线,不是舒服线。
Dify 默认 Docker Compose 会拉起一组服务:API、Worker、Web、PostgreSQL、Redis、向量数据库、Sandbox、Nginx、插件相关服务等。它不是单容器小工具。
我建议这样选:
| 用途 | 推荐配置 |
|---|---|
| 试用、外部 API 模型 | 2 核 4GB,必须开 Swap |
| 个人长期用 | 2-4 核 8GB |
| 小团队知识库 | 4 核 8GB 起步 |
| 大文档、多用户、频繁索引 | 4 核 16GB 更稳 |
| 同机跑 Ollama 本地模型 | 16GB 起步,越多越好 |
很多人踩坑不是因为 CPU 不够,而是内存不够。Dify 平时可能只吃 2-4GB,但文档切分、Embedding、索引的时候会突然冲高。1C1G、1C2G 小鸡不要硬上,最后大概率是 OOM Killer 把 worker 杀掉。
如果预算有限,宁愿选 2C4G + Swap,也别拿 1G 机器折磨自己。
下面以 Ubuntu/Debian VPS 为例。
先更新系统:
apt update && apt upgrade -y
安装 Docker:
curl -fsSL https://get.docker.com | bash
systemctl enable --now docker
安装 Compose 插件:
docker compose version
如果没有输出版本,再装:
apt install -y docker-compose-plugin
4GB 内存机器建议先开 Swap:
fallocate -l 4G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo '/swapfile none swap sw 0 0' >> /etc/fstab
确认:
free -h
Swap 不是性能神器,但能防止 Dify 索引文档时直接被系统杀掉。
Dify 官方推荐从仓库里的 Docker 配置启动。流程大概是:
cd /opt
git clone https://github.com/langgenius/dify.git
cd dify/docker
cp .env.example .env
然后先改 .env。至少关注这些:
vim .env
建议检查:
SECRET_KEY:不要用默认值;CONSOLE_WEB_URL:后台地址;APP_WEB_URL:用户访问应用地址;FILES_URL:文件访问地址;- 数据库密码:不要用默认弱密码;
- Worker 并发:小内存机器别开太高。
启动:
docker compose up -d
看容器:
docker compose ps
看日志:
docker compose logs -f api
首次启动会比较慢,尤其是拉镜像和初始化数据库。别看到一分钟没动就 Ctrl+C。
生产环境不要让用户直接访问随机端口。建议用 Nginx 或 Caddy 反代到 Dify 的 Web 服务。
如果你已经有 Nginx,可以这样写一个基础配置:
server {
listen 80;
server_name dify.example.com;
client_max_body_size 100m;
location / {
proxy_pass http://127.0.0.1:80;
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-Proto $scheme;
}
}
如果你用 Dify 自带的 Nginx 容器,要注意端口别和宿主机 Nginx 抢 80/443。很多部署失败就是两个 Nginx 都想监听 80。
最简单的做法是:
- Dify 内部服务只监听本地端口;
- 宿主机 Nginx 统一做 HTTPS;
- 上传文档的话,把
client_max_body_size调大。
证书可以用 Certbot:
apt install -y certbot python3-certbot-nginx
certbot --nginx -d dify.example.com
Dify 的核心卖点就是知识库。一个最小可用流程是:
- 后台创建知识库;
- 上传 PDF、Markdown、TXT 或网页内容;
- 设置分段方式;
- 选择 Embedding 模型;
- 等待索引完成;
- 创建聊天应用并关联知识库;
- 测试问题是否能命中文档内容。
中文文档建议分段不要太长。可以从这个配置开始:
| 参数 | 建议 |
|---|---|
| 分段长度 | 300-600 中文字符 |
| 重叠比例 | 10%-15% |
| 检索方式 | 优先混合检索,如果可用 |
| Top K | 3-5 起步 |
| 相似度阈值 | 先低后高,避免一开始搜不到 |
如果你的文档是产品说明、教程、FAQ,分段可以短一点;如果是长报告、论文、合同,分段可以稍长,但要注意上下文连续性。
很多人第一次用 RAG 觉得“不准”,原因通常不是模型差,而是文档切分太粗、标题没带上、Embedding 模型不适合中文,或者检索阈值设得太死。
Dify 支持多种模型供应商。常见选择:
| 选择 | 适合场景 |
|---|---|
| DeepSeek | 中文问答、低成本使用 |
| OpenAI / Claude | 质量更稳,成本更高 |
| Gemini | 长上下文场景 |
| 硅基流动等聚合平台 | 想接开源模型和国产模型 |
| Ollama | 数据尽量不出本机,但 VPS 配置要够 |
如果 VPS 只有 4GB 或 8GB,我不建议一开始就同机跑大模型。先接外部 API,把 Dify 跑稳,再考虑 Ollama。
如果你已经有上一篇 AI API 网关,可以把 Dify 的模型提供商指向自己的 New-API / One-API 网关,这样模型、Key、用量统计统一管理。
4GB 能跑,但要收着点。
建议做这些:
# 看内存
free -h
# 看容器资源
docker stats
然后在 .env 或 Compose 配置里控制 Worker 并发。不同版本字段可能变化,部署前看当前官方文档和 .env.example,原则是:小机器不要让 worker 同时处理太多任务。
另外:
- 文档不要一次性上传几千页;
- 先小批量测试索引;
- Embedding 尽量用外部 API,别同机硬跑大模型;
- 定期清理不用的文档和应用;
- 给 PostgreSQL 做备份,不要只备份 Docker Compose 文件。
Dify 里最重要的是数据库、上传文件和配置。
最少要备份:
- PostgreSQL 数据;
- Docker volumes;
.env;- 上传文件目录;
- 自定义插件或扩展配置。
一个简单 PostgreSQL 备份思路:
mkdir -p /opt/backups/dify
# 容器名以 docker compose ps 实际输出为准
docker exec -t docker-db-1 pg_dump -U postgres dify \
> /opt/backups/dify/dify-$(date +%F).sql
然后用 rclone 同步到对象存储或另一台服务器。备份只放在同一台 VPS 上没有意义,硬盘挂了就一起没了。
这也是一个很实用的玩法。
Dify 负责“AI 思考”:
- 读取知识库;
- 生成回复;
- 判断用户意图;
- 处理复杂提示词。
n8n 负责“动作执行”:
- 监听表单、Webhook、邮件;
- 调用 Dify API;
- 把结果写回 Notion、飞书、企业微信、数据库;
- 定时跑任务。
举个例子:客户提交一个售后问题,n8n 收到 Webhook,把问题发给 Dify,Dify 查产品知识库生成回答,n8n 再把结果发到客服群。这套组合比单独用 n8n 或单独用 Dify 都更顺。
先看 worker 日志:
docker compose logs -f worker
常见原因是内存不够、Embedding 配置错、模型供应商 Key 错、文件格式解析失败。
检查 Nginx:
client_max_body_size 100m;
还要看 Dify 自身和反代层限制。Cloudflare 免费版也有上传大小限制,别把所有问题都怪到 Dify 上。
先看是不是 VPS 太小:
docker stats
如果 PostgreSQL、worker、api 都在抢内存,4GB 机器会明显卡。可以开 Swap,但长期高负载还是建议升级到 8GB。
先别急着换模型。按顺序查:
- 文档有没有成功索引;
- 检索结果里有没有命中正确段落;
- 分段是否太长或太短;
- Embedding 是否适合中文;
- 提示词是否要求“只根据知识库回答”。
RAG 的问题,很多时候是检索问题,不是生成问题。
如果你只是想体验一下 Dify,2C4G VPS 可以试,但一定开 Swap,别一次性上传太多文档。
如果你打算长期用,尤其是给团队或客户用,直接上 4C8G 会省心很多。Dify 不是那种 512MB 小鸡能舒服跑的工具,它更像一个完整的 AI 应用后台。
我会这样落地:
- 2C4G 起步测试,8GB 做长期环境;
- Docker Compose 部署官方版本;
- Nginx/Caddy 做 HTTPS;
- 外部 API 模型先跑通;
- 小批量上传文档测试 RAG;
- 调好分段、Embedding、Top K;
- 每天备份 PostgreSQL 和 volumes;
- 如果已经有 n8n,用 n8n 调 Dify API 做自动化。
Dify 真正的价值不是“又多一个 AI 聊天网站”,而是让你把自己的文档、业务流程和模型接起来。对 VPS 用户来说,它是 2026 年最值得折腾的自托管 AI 项目之一。
