Dify 私有化部署实战:从服务器准备到上线运维的完整命令指南
Dify 私有化部署方案|附完整命令
Dify 是一款非常适合企业内部落地的大模型应用开发平台,支持知识库问答、工作流编排、Agent、RAG、工具调用等能力。相比直接使用云端 SaaS,私有化部署更适合对数据安全、权限管理、网络隔离、合规审计有较高要求的团队。
本文将围绕 Dify 私有化部署方案 展开,提供一套可直接落地的部署思路,并附上较完整的命令示例,方便你在自己的服务器上快速搭建。内容适合以下场景:
- 企业内网部署
- 测试环境搭建
- 开发/预发环境验证
- 需要自主管控数据和模型接入的团队
一、Dify 私有化部署适合什么场景
在决定是否部署 Dify 之前,先看一下它适合解决什么问题。
1. 数据安全要求高
很多企业不希望 Prompt、知识库文档、对话记录、API Key 等信息流出内网。私有化部署后,这些数据可以全部保留在自己的服务器中。
2. 需要接入内部模型或私有模型
有些公司会接入本地部署的大模型,例如:
- Qwen / 通义系列私有化服务
- DeepSeek 私有 API
- OpenAI 兼容接口
- Azure OpenAI
- 自建推理服务
Dify 可以作为统一的应用层,降低业务团队接入门槛。
3. 需要统一管理 AI 应用
相比每个团队单独写一套 Agent/RAG 工程,Dify 提供了:
- 可视化工作流编排
- 知识库管理
- 变量与上下文管理
- 接口发布
- 权限与应用管理
这非常适合企业内部 AI 平台化建设。
二、部署前准备
Dify 的官方自部署方案以 Docker Compose 为主,部署前建议准备以下环境。
1. 服务器配置建议
最低可用配置:
- CPU:2 核
- 内存:4GB
- 磁盘:40GB
推荐生产配置:
- CPU:4 核及以上
- 内存:8GB 及以上
- 磁盘:100GB 及以上
- 独立数据盘存储数据库与向量库
如果你要做知识库、上传大量文件、或者接入多个模型,内存和磁盘建议再往上加。
2. 操作系统建议
推荐:
- Ubuntu 20.04 / 22.04
- Debian 11/12
当然也可以在其他 Linux 发行版上部署,但本文命令以 Ubuntu 为例。
3. 必备软件
- Docker
- Docker Compose
- Git
三、安装 Docker 和 Docker Compose
如果你的服务器上还没有 Docker,可以先执行以下命令安装。
1. 更新系统
sudo apt update && sudo apt upgrade -y
2. 安装依赖
sudo apt install -y ca-certificates curl gnupg lsb-release git
3. 添加 Docker 官方源
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
4. 安装 Docker Engine 和 Compose
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
5. 启动 Docker 并设置开机自启
sudo systemctl enable docker
sudo systemctl start docker
6. 验证安装
docker --version
docker compose version
如果能看到版本号,说明安装成功。
四、获取 Dify 源码
Dify 官方开源仓库中已经提供了完整的 Docker 部署目录。
1. 克隆仓库
git clone https://github.com/langgenius/dify.git
cd dify/docker
注意:Dify 的 Docker 部署文件通常位于
dify/docker目录下,实际路径以官方仓库结构为准。
五、配置环境变量
Dify 的部署依赖较多服务,例如数据库、Redis、向量数据库、对象存储等。首次部署时,需要复制环境配置文件并修改参数。
1. 复制配置文件
cp .env.example .env
2. 编辑配置文件
使用你熟悉的编辑器打开 .env 文件:
nano .env
或者:
vim .env
六、常见需要修改的配置项
下面列出一些部署中最常改的参数。不同版本的 Dify 配置项可能略有差异,请以你的 .env.example 为准。
1. 对外访问地址
如果你打算通过域名访问,需要把应用地址配置为你的公网域名,例如:
CONSOLE_API_URL=https://dify.example.com
CONSOLE_WEB_URL=https://dify.example.com
SERVICE_API_URL=https://dify.example.com
APP_WEB_URL=https://dify.example.com
如果是内网测试,也可以先写成服务器 IP:
CONSOLE_API_URL=http://192.168.1.100
CONSOLE_WEB_URL=http://192.168.1.100
SERVICE_API_URL=http://192.168.1.100
APP_WEB_URL=http://192.168.1.100
2. 数据库密码
建议使用强密码:
DB_USERNAME=postgres
DB_PASSWORD=YourStrongPassword123!
3. Redis 密码
如有配置:
REDIS_PASSWORD=YourRedisPassword123!
4. 密钥配置
部分版本中会有应用签名密钥、token 相关密钥等字段,建议使用随机强随机值,不要使用默认值。
你可以用以下命令生成随机串:
openssl rand -base64 32
七、启动 Dify
配置完成后,就可以正式启动。
1. 拉取镜像
docker compose pull
2. 启动全部服务
docker compose up -d
3. 查看运行状态
docker compose ps
如果容器都正常启动,状态会显示为 Up。
4. 查看日志
如果启动失败,可以查看日志排查:
docker compose logs -f
查看某个服务日志,例如 API 服务:
docker compose logs -f api
查看 Web 服务:
docker compose logs -f web
八、初始化与访问
当所有服务启动后,就可以访问 Dify 的 Web 界面。
1. 打开浏览器访问
如果你使用的是域名:
https://dify.example.com
如果是 IP:
http://192.168.1.100
2. 首次注册管理员
首次进入页面后,通常需要创建管理员账号。创建完成后,就可以登录后台开始配置:
- 模型供应商
- API Key
- 知识库
- 应用
- 工作流
九、接入模型供应商
Dify 私有化部署的核心价值之一,就是能够灵活接入外部模型或者私有模型服务。
常见接入方式
- OpenAI
- Azure OpenAI
- Anthropic
- Gemini
- DeepSeek
- 通义千问
- Ollama
- OpenAI-compatible API
配置思路
在 Dify 后台进入模型供应商配置页,填写:
- Base URL
- API Key
- 模型名称
- 组织 ID(如需要)
如果你使用的是私有化大模型服务,只要提供 OpenAI 兼容接口,Dify 通常就能较好地对接。
十、知识库功能部署要点
Dify 的知识库功能对企业用户非常实用,但也对存储、向量索引、文件处理能力有一定要求。
1. 建议单独规划存储
如果会上传大量 PDF、Word、Markdown、图片附件,建议:
- 数据库单独持久化
- 文件存储单独挂载磁盘
- 定期备份
2. 文档切分与嵌入
知识库能否好用,和以下因素关系很大:
- 文档清洗质量
- 切分策略
- 向量模型效果
- 检索参数
- 提示词设计
建议在正式业务上线前,先用少量高质量文档做实验,再逐步扩大规模。
十一、生产环境推荐方案
如果你不是单纯测试,而是准备在生产环境使用,建议做以下优化。
1. 使用反向代理
推荐通过 Nginx 或 Traefik 做统一入口,配置 HTTPS 证书。
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,建议使用 Let’s Encrypt 签发证书。
2. 数据持久化
务必确认以下数据不会随容器删除而丢失:
- PostgreSQL 数据
- Redis 数据(如开启持久化)
- 对象存储文件
- 向量库数据
- 配置文件
.env
3. 限制端口暴露
生产环境尽量只暴露必要端口:
- 80 / 443 对外
- 数据库、Redis 等仅内网可访问
4. 设置资源限制
可以通过 Docker Compose 为容器设置资源限制,避免单个服务抢占太多资源。
十二、常用运维命令
部署后,日常维护会经常用到以下命令。
1. 查看所有容器
docker ps
2. 查看 Dify 容器状态
docker compose ps
3. 查看实时日志
docker compose logs -f
4. 重启所有服务
docker compose restart
5. 只重启某个服务
docker compose restart api
或者:
docker compose restart web
6. 停止服务
docker compose down
7. 停止并删除容器,但保留卷数据
docker compose down
8. 强制拉取最新镜像并重启
docker compose pull
docker compose up -d
十三、升级 Dify 的方法
Dify 作为开源项目更新比较频繁,因此升级维护非常重要。
升级步骤
1. 进入项目目录
cd /opt/dify/docker
2. 拉取最新代码
git pull
3. 拉取最新镜像
docker compose pull
4. 重启服务
docker compose up -d
升级建议
升级前一定要:
- 备份数据库
- 备份
.env - 备份挂载目录
- 阅读官方 release note
不要在不看变更说明的情况下直接生产升级。
十四、数据备份与恢复
私有化部署最重要的不是“装起来”,而是“出问题后能恢复”。
1. 备份数据库
如果使用 PostgreSQL,可以通过 pg_dump 备份。
先进入数据库容器或直接连接数据库:
docker compose exec db pg_dump -U postgres dify > dify_backup.sql
如果你的数据库名不是 dify,请替换成实际名称。
2. 备份 .env
cp .env .env.bak
3. 备份 Docker 卷
如果你的数据都在 volume 中,可以用系统级方式备份对应目录,或使用 Docker volume 备份工具。
4. 恢复数据库
恢复时:
cat dify_backup.sql | docker compose exec -T db psql -U postgres -d dify
注意:数据库名和用户名需要与你实际配置一致。
十五、常见问题排查
1. 页面打不开
先检查容器状态:
docker compose ps
再检查日志:
docker compose logs -f
可能原因:
- 端口冲突
- 配置文件错误
- 镜像拉取失败
- 服务器防火墙未放行端口
2. 数据库连接失败
常见原因:
- 数据库密码错误
- PostgreSQL 容器未启动
.env中数据库配置不一致
3. 知识库上传失败
可能是:
- 对象存储配置不正确
- 磁盘空间不足
- 上传文件类型不支持
- 反向代理限制了上传大小
4. 模型调用失败
检查:
- API Key 是否正确
- Base URL 是否可达
- 模型名称是否填写正确
- 网络是否能访问外部模型服务
十六、一个推荐的部署流程
如果你想要一套更稳妥的企业内网部署流程,可以参考下面步骤:
步骤 1:准备服务器
- 安装 Ubuntu
- 配置固定 IP
- 设置主机名
- 开放 80/443 端口
- 预留足够磁盘
步骤 2:安装 Docker
使用上文命令安装 Docker 与 Docker Compose。
步骤 3:拉取 Dify 代码
git clone https://github.com/langgenius/dify.git
cd dify/docker
步骤 4:配置环境变量
cp .env.example .env
nano .env
步骤 5:启动服务
docker compose pull
docker compose up -d
步骤 6:配置 Nginx 和 HTTPS
为域名配置反向代理和证书。
步骤 7:登录后台
创建管理员账号,配置模型供应商、知识库、应用。
步骤 8:完善运维体系
做备份、监控、日志收集、告警、升级策略。
十七、生产落地建议
如果你的目标不是“跑起来”,而是真正让团队使用,建议重点关注以下几点:
1. 先做内测,不要直接全员开放
先让少量业务人员试用,观察:
- 响应速度
- 模型效果
- 知识库召回质量
- 界面易用性
- 权限管理是否合理
2. 建立统一模型接入层
不要让每个团队各自维护不同模型地址。建议统一管理供应商、Key 和额度。
3. 明确数据权限
谁能看知识库,谁能导出对话,谁能发布应用,这些都要提前定义好。
4. 做好审计和备份
AI 平台一旦上线,用户会不断上传文档和生成内容,数据增长很快,必须形成备份机制。
十八、完整命令汇总
下面把核心命令集中放在一起,便于你快速复制执行。
安装 Docker
sudo apt update && sudo apt upgrade -y
sudo apt install -y ca-certificates curl gnupg lsb-release git
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl enable docker
sudo systemctl start docker
docker --version
docker compose version
部署 Dify
git clone https://github.com/langgenius/dify.git
cd dify/docker
cp .env.example .env
nano .env
docker compose pull
docker compose up -d
docker compose ps
docker compose logs -f
常用维护命令
docker compose restart
docker compose down
docker compose pull
docker compose up -d
docker compose logs -f api
docker compose logs -f web
备份数据库
docker compose exec db pg_dump -U postgres dify > dify_backup.sql
恢复数据库
cat dify_backup.sql | docker compose exec -T db psql -U postgres -d dify
十九、总结
Dify 的私有化部署并不复杂,核心就是:
- 准备好 Linux 服务器
- 安装 Docker 与 Docker Compose
- 拉取官方仓库
- 配置
.env - 使用
docker compose up -d启动 - 再补上域名、HTTPS、备份、监控与权限管理
如果是测试环境,几分钟就能跑起来;如果是生产环境,则建议把数据库、文件存储、反向代理、SSL、备份恢复这些基础设施一起规划好。
对于企业来说,Dify 私有化部署的价值不仅仅是“部署一个系统”,而是搭建一个可持续演进的 AI 应用平台底座。它可以帮助团队更快地构建知识库问答、智能客服、内部助手、工作流自动化等场景,真正把大模型能力落到业务里。
如果你愿意,我还可以继续帮你补一篇:
- 《Dify 私有化部署 Nginx + HTTPS 配置教程》
- 《Dify Docker Compose 完整生产环境部署方案》
- 《Dify 接入 DeepSeek / OpenAI / 通义千问实战教程》
如果需要,我可以直接继续写下一篇。