Dify 私有化部署实战:从服务器到上线一条命令搞定
Dify 部署完整教程|一键部署
Dify 是一个开源的 LLMOps 平台,集成了应用编排、Prompt 管理、知识库、工作流、模型接入、API 发布、可视化调试等能力。对于想快速搭建 AI 应用平台的团队或个人来说,Dify 是一个非常适合上手的选择。本文将带你从零开始完成 Dify 的一键部署,包含服务器准备、Docker 安装、Dify 拉取、环境配置、启动服务、访问后台、模型配置、常见问题处理以及后续升级维护等内容。
本文适合以下读者:
- 想在服务器上自建 Dify 平台的个人开发者;
- 想给团队部署私有化 AI 应用平台的技术人员;
- 想通过 Docker 快速体验 Dify 的用户;
- 想了解 Dify 部署流程、配置项和常见问题的人。
一、Dify 是什么?
Dify 是一个开源的大模型应用开发平台,它可以帮助开发者快速构建基于大语言模型的应用。相比直接调用 OpenAI、通义千问、智谱、Claude 等模型 API,Dify 提供了更加完整的工程化能力。
它主要包含以下功能:
-
聊天助手应用
可以快速创建一个 Chatbot,并配置 Prompt、模型、开场白、上下文参数等。
-
文本生成应用
适合用于文章生成、邮件生成、摘要生成、翻译、改写等场景。
-
工作流 Workflow
支持以可视化流程的方式编排复杂 AI 任务,例如分类、检索、调用工具、条件判断、多模型协作等。
-
知识库 RAG
可以上传文档、网页、文本等资料,构建企业内部知识库,实现基于知识库的问答。
-
模型统一接入
支持 OpenAI、Azure OpenAI、Anthropic、Gemini、通义千问、智谱、DeepSeek、Ollama 等多种模型服务。
-
API 发布
创建好的应用可以直接发布为 API,方便外部系统调用。
-
团队协作
支持成员管理、应用共享、权限管理等能力。
简单来说,Dify 可以理解为一个面向大模型应用开发的低代码平台。它既适合非专业人员快速搭建 AI 应用,也适合开发者进行二次开发和系统集成。
二、部署方式说明
Dify 支持多种部署方式,例如:
- Docker Compose 部署;
- Kubernetes 部署;
- 源码部署;
- 云平台镜像部署;
- 第三方一键脚本部署。
对于大多数用户来说,Docker Compose 是最简单、最稳定、最推荐的部署方式。本文也将以 Docker Compose 为主,带你完成一键部署。
Docker Compose 部署的优势包括:
- 安装简单,命令少;
- 服务隔离,方便管理;
- 出错后容易排查;
- 升级方便;
- 适合个人服务器和中小团队私有化部署。
三、服务器配置要求
在部署 Dify 之前,建议先准备一台 Linux 服务器。推荐使用 Ubuntu 20.04 / Ubuntu 22.04 / Debian 11 / Debian 12 / CentOS 7+ 等系统。
1. 最低配置
如果只是个人测试或轻量体验,可以使用以下配置:
| 项目 | 推荐配置 |
|---|---|
| CPU | 2 核 |
| 内存 | 4GB |
| 磁盘 | 30GB |
| 系统 | Ubuntu 20.04+ |
| 网络 | 可访问 GitHub、Docker Hub |
2. 推荐配置
如果是团队使用或需要接入知识库、工作流,建议使用:
| 项目 | 推荐配置 |
|---|---|
| CPU | 4 核及以上 |
| 内存 | 8GB 及以上 |
| 磁盘 | 50GB 及以上 |
| 系统 | Ubuntu 22.04 LTS |
| 网络 | 稳定公网 IP 或内网访问环境 |
3. 端口要求
Dify 默认会使用以下端口:
| 端口 | 用途 |
|---|---|
| 80 | Web 访问入口 |
| 443 | HTTPS 访问入口,如配置 SSL |
| 5001 | API 服务,通常由 Nginx 转发 |
| 3000 | Web 前端,通常由 Nginx 转发 |
| 5432 | PostgreSQL 数据库内部端口 |
| 6379 | Redis 内部端口 |
一般情况下,只需要对外开放 80 和 443 端口即可。如果只是测试环境,也可以仅开放 80 端口。
四、安装 Docker 和 Docker Compose
Dify 官方推荐使用 Docker Compose 部署,因此我们需要先安装 Docker。
以下命令以 Ubuntu / Debian 系统为例。
1. 更新系统软件包
sudo apt update
sudo apt upgrade -y
2. 安装基础依赖
sudo apt install -y ca-certificates curl gnupg lsb-release git
3. 安装 Docker
可以直接使用 Docker 官方脚本安装:
curl -fsSL https://get.docker.com | bash
安装完成后,查看 Docker 版本:
docker -v
如果能够看到类似以下输出,说明 Docker 安装成功:
Docker version 26.x.x, build xxxxxxx
4. 设置 Docker 开机自启
sudo systemctl enable docker
sudo systemctl start docker
5. 安装 Docker Compose
新版 Docker 一般已经内置 Compose 插件,可以使用以下命令查看:
docker compose version
如果看到版本信息,说明已经安装成功。例如:
Docker Compose version v2.x.x
如果没有安装,可以执行:
sudo apt install -y docker-compose-plugin
五、拉取 Dify 项目
进入一个你希望存放项目的目录,例如 /opt:
cd /opt
克隆 Dify 官方仓库:
sudo git clone https://github.com/langgenius/dify.git
进入 Docker 部署目录:
cd dify/docker
这个目录下包含了 Dify 的 Docker Compose 配置文件、环境变量模板以及 Nginx 配置等内容。
六、配置环境变量
Dify Docker 部署目录中通常会提供一个环境变量模板文件,例如:
.env.example
我们需要复制一份为 .env:
sudo cp .env.example .env
然后编辑 .env 文件:
sudo nano .env
如果你不熟悉 nano,可以使用方向键移动,编辑完成后按:
Ctrl + O 保存
Enter 确认
Ctrl + X 退出
1. 常见需要关注的配置
Dify 的 .env 文件中有很多配置项。首次部署时,大多数保持默认即可,但以下几个配置建议重点关注。
CONSOLE_WEB_URL
控制台访问地址。
如果你使用 IP 访问,可以设置为:
CONSOLE_WEB_URL=http://你的服务器IP
如果你使用域名访问,可以设置为:
CONSOLE_WEB_URL=https://dify.example.com
APP_WEB_URL
应用访问地址。
APP_WEB_URL=http://你的服务器IP
或者:
APP_WEB_URL=https://dify.example.com
API_URL
API 服务地址。
API_URL=http://你的服务器IP
或者:
API_URL=https://dify.example.com
SECRET_KEY
这是系统加密密钥,生产环境一定要修改,不建议使用默认值。
可以使用以下命令生成一个随机密钥:
openssl rand -base64 42
然后将生成的字符串填入:
SECRET_KEY=你生成的随机字符串
数据库和 Redis 配置
如果你使用 Docker Compose 默认部署方式,PostgreSQL 和 Redis 会自动以容器形式启动,一般不需要手动修改。
默认配置类似:
DB_USERNAME=postgres
DB_PASSWORD=postgres
DB_HOST=db
DB_PORT=5432
DB_DATABASE=dify
REDIS_HOST=redis
REDIS_PORT=6379
如果部署在生产环境,建议修改数据库密码和 Redis 密码,并妥善保存。
七、一键启动 Dify
配置完成后,就可以启动 Dify 了。
在 /opt/dify/docker 目录下执行:
sudo docker compose up -d
这个命令会自动拉取所需镜像,并在后台启动相关容器。首次启动时,由于需要下载多个镜像,耗时可能较长,取决于服务器网络环境。
启动完成后,可以查看容器状态:
sudo docker compose ps
如果看到多个服务状态为 running 或 healthy,说明 Dify 已经启动成功。
常见容器包括:
apiworkerwebdbredisnginxweaviate或其他向量数据库服务sandboxplugin_daemon
不同版本 Dify 的容器名称可能略有变化,以实际输出为准。
八、访问 Dify 控制台
启动成功后,在浏览器访问:
http://你的服务器IP
如果你配置了域名,则访问:
https://你的域名
首次访问会进入初始化页面,需要创建管理员账户。
你需要填写:
- 管理员邮箱;
- 管理员用户名;
- 管理员密码。
创建完成后,即可进入 Dify 控制台。
九、配置模型供应商
Dify 部署完成后,本身并不自带大语言模型。你需要在后台配置模型供应商,才能正常创建 AI 应用。
进入 Dify 控制台后,通常可以按以下路径操作:
右上角头像 / 设置 / 模型供应商
或者:
Settings / Model Provider
1. 配置 OpenAI
如果你使用 OpenAI,可以添加 API Key:
Provider: OpenAI
API Key: sk-xxxxxxxx
然后选择模型,例如:
gpt-4ogpt-4o-minigpt-4.1gpt-3.5-turbo
保存后即可在应用中使用。
2. 配置 DeepSeek
如果你使用 DeepSeek,一般需要填写:
API Key: sk-xxxxxxxx
Base URL: https://api.deepseek.com
常见模型:
deepseek-chat
deepseek-reasoner
3. 配置通义千问
如果你使用阿里云百炼或 DashScope,需要填写对应 API Key。
常见模型:
qwen-plus
qwen-max
qwen-turbo
4. 配置 Ollama 本地模型
如果你希望使用本地模型,可以搭配 Ollama。
例如服务器安装 Ollama 后运行:
ollama run llama3
然后在 Dify 中配置 Ollama 地址。
如果 Ollama 和 Dify 在同一台机器但不同容器网络中,不能简单使用 localhost,因为容器内的 localhost 指的是容器自身。通常可以使用:
http://host.docker.internal:11434
Linux 下如不可用,需要额外配置 Docker 网络或使用宿主机网关地址。
十、创建第一个 AI 应用
模型配置完成后,就可以创建应用了。
1. 创建聊天助手
在 Dify 控制台首页点击:
创建应用
选择:
聊天助手
填写应用名称,例如:
智能客服助手
然后在 Prompt 中填写:
你是一个专业、友好、耐心的客服助手。请根据用户的问题进行清晰回答,如果无法确定答案,请说明原因,不要编造信息。
选择模型后,点击调试,即可与应用对话。
2. 发布应用
调试完成后,可以点击发布。Dify 会生成一个可访问的 Web App 页面,同时也会提供 API 调用方式。
你可以将应用链接分享给用户,也可以将 API 集成到自己的网站、小程序、企业微信、飞书或内部系统中。
十一、配置知识库
Dify 的一大核心能力是知识库,也就是常说的 RAG。
1. 新建知识库
进入知识库页面,点击:
创建知识库
上传文档,例如:
- PDF;
- Word;
- Markdown;
- TXT;
- HTML;
- 网页内容。
2. 文档处理
Dify 会对文档进行切分、向量化和索引。你需要选择嵌入模型,例如:
- OpenAI Embedding;
- BGE Embedding;
- 通义千问 Embedding;
- 本地 Embedding 模型。
3. 在应用中引用知识库
创建聊天助手时,可以在上下文或知识库设置中关联已创建的知识库。这样用户提问时,Dify 会先从知识库检索相关内容,再将检索结果交给大模型回答。
这类方式非常适合:
- 企业内部制度问答;
- 产品文档问答;
- 客服知识库;
- 技术文档助手;
- 法律、医疗、教育等专业资料问答。
十二、配置域名和 HTTPS
如果只是内网测试,可以直接使用 IP 访问。但如果是生产环境,建议绑定域名并配置 HTTPS。
1. 域名解析
假设你的域名是:
dify.example.com
需要在域名服务商后台添加 A 记录:
dify.example.com -> 你的服务器公网 IP
等待 DNS 生效后,可以通过以下命令测试:
ping dify.example.com
2. HTTPS 配置方式
Dify Docker 部署中一般包含 Nginx。你可以选择以下方式配置 HTTPS:
- 使用服务器外部的 Nginx 反向代理;
- 使用宝塔面板反向代理;
- 使用 Caddy 自动签发证书;
- 修改 Dify 自带 Nginx 配置;
- 使用云服务商负载均衡 HTTPS。
对于新手来说,比较简单的方式是使用 Caddy 或宝塔面板进行反向代理。将域名代理到服务器的 Dify 入口即可。
如果使用外部 Nginx,示例配置如下:
server {
listen 80;
server_name dify.example.com;
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;
}
}
如果开启 HTTPS,则需要申请 SSL 证书,并将 443 流量转发到 Dify 服务。
十三、常用管理命令
1. 启动服务
cd /opt/dify/docker
sudo docker compose up -d
2. 停止服务
sudo docker compose down
3. 重启服务
sudo docker compose restart
4. 查看容器状态
sudo docker compose ps
5. 查看日志
查看全部日志:
sudo docker compose logs
查看 API 服务日志:
sudo docker compose logs api
实时查看日志:
sudo docker compose logs -f
6. 查看磁盘占用
docker system df
7. 清理无用镜像
docker image prune -a
注意:清理镜像前请确认不会影响当前运行环境。
十四、升级 Dify
Dify 更新比较频繁,建议定期关注官方 GitHub 发布说明。升级前务必备份数据。
1. 进入项目目录
cd /opt/dify
2. 拉取最新代码
sudo git pull
3. 进入 Docker 目录
cd docker
4. 拉取最新镜像
sudo docker compose pull
5. 重新启动
sudo docker compose up -d
6. 查看状态
sudo docker compose ps
升级完成后,建议进入页面检查应用、知识库、模型配置是否正常。
十五、数据备份建议
Dify 涉及数据库、上传文件、知识库向量数据等内容,生产环境必须做好备份。
1. 需要备份的内容
通常包括:
- PostgreSQL 数据;
- Redis 数据;
- 上传文件;
- 向量数据库数据;
.env配置文件;- Docker volume 数据。
2. 简单备份方式
可以直接备份整个 Docker 部署目录和 Docker volume,但这种方式相对粗略。
更稳妥的方式是定期导出 PostgreSQL 数据,例如:
docker exec -it docker-db-1 pg_dump -U postgres dify > dify_backup.sql
容器名称可能因版本不同而变化,可以先执行:
docker ps
找到 PostgreSQL 容器名称后再执行备份。
3. 备份 .env
.env 中包含系统密钥、数据库密码等重要内容,务必单独保存:
cp /opt/dify/docker/.env /opt/dify_env_backup.env
十六、常见问题与解决方法
问题一:docker compose up -d 拉取镜像很慢
原因通常是服务器访问 Docker Hub 较慢。可以尝试:
- 更换网络环境;
- 配置 Docker 镜像加速;
- 使用云服务器同区域镜像源;
- 多执行几次拉取命令。
sudo docker compose pull
问题二:访问 IP 打不开页面
可以按以下顺序排查:
- 检查容器是否正常运行:
sudo docker compose ps
- 检查服务器防火墙是否开放 80 端口:
sudo ufw status
如未开放:
sudo ufw allow 80
sudo ufw allow 443
-
检查云服务器安全组是否放行 80 / 443 端口。
-
查看 Nginx 日志:
sudo docker compose logs nginx
问题三:容器启动失败
查看日志:
sudo docker compose logs -f
重点关注:
- 数据库连接失败;
- 端口被占用;
- 环境变量配置错误;
- 镜像拉取失败;
- 磁盘空间不足。
如果是端口被占用,可以查看:
sudo lsof -i:80
或者:
sudo netstat -tulnp | grep 80
问题四:模型调用失败
常见原因包括:
- API Key 填写错误;
- 模型供应商接口地址错误;
- 服务器无法访问模型服务;
- 账户余额不足;
- 模型名称填写不正确;
- 代理配置错误。
可以先在服务器中测试网络:
curl https://api.openai.com
如果无法访问,需要配置代理或使用可访问的模型服务。
问题五:知识库无法索引
可能原因包括:
- 未配置 Embedding 模型;
- 文档格式不支持;
- 文档过大;
- 向量数据库异常;
- Worker 容器未正常运行。
可以查看 worker 日志:
sudo docker compose logs worker
十七、生产环境部署建议
如果你准备将 Dify 用于团队或企业生产环境,建议注意以下几点:
-
修改默认密码和密钥
包括数据库密码、Redis 密码、
SECRET_KEY等。 -
开启 HTTPS
避免 API Key、登录凭证等敏感信息明文传输。
-
配置防火墙
只开放必要端口,不要将数据库、Redis 等端口直接暴露到公网。
-
定期备份
至少每日备份数据库和关键配置文件。
-
监控资源使用
知识库、文档解析、工作流执行可能消耗较多 CPU 和内存。
-
谨慎升级
升级前阅读 Release Notes,并先备份数据。
-
限制注册和访问权限
如果是内部系统,建议通过内网、VPN 或统一身份认证进行访问控制。
-
合理配置模型额度
大模型调用会产生成本,建议对应用调用量进行监控和限制。
十八、总结
通过本文的步骤,我们已经完成了 Dify 的一键部署流程。整体来看,Dify 使用 Docker Compose 部署非常方便,核心流程可以概括为:
安装 Docker
克隆 Dify 仓库
复制并修改 .env
执行 docker compose up -d
访问服务器 IP 或域名
初始化管理员账户
配置模型供应商
创建 AI 应用
对于个人开发者来说,Dify 可以帮助你快速搭建 ChatGPT 类应用、知识库问答系统、文本生成工具和自动化工作流。对于企业团队来说,Dify 则可以作为内部 AI 应用开发平台,用来沉淀 Prompt、知识库、工作流和模型调用能力。
如果你只是想快速体验,按照本文默认配置即可完成部署;如果你要用于生产环境,则建议进一步完善 HTTPS、安全策略、备份策略、监控方案和权限管理。
Dify 的优势不只是“能部署”,更重要的是它让大模型应用从简单调用 API 走向可管理、可编排、可发布、可持续迭代的工程化阶段。只要掌握了本文中的部署方法,你就可以在自己的服务器上拥有一个完整的 AI 应用开发平台。