2026 自建 Dify 实战指南:从 Docker 部署到生产环境上线
Dify 部署完整教程|2026最新版
本文面向 想要自建 Dify 的个人开发者、团队、企业技术同学。
内容以 Docker Compose 部署 为主,兼顾生产环境配置、域名、HTTPS、数据持久化、常见故障排查与运维建议。
说明:由于我无法验证 2026 年之后的未知版本变化,本文采用的是 截至目前通用且稳定的 Dify 部署方法,在大多数 2026 年环境中依然具备很高参考价值。
一、Dify 是什么?为什么要部署它?
Dify 是一个面向大模型应用开发的平台,核心价值是把 LLM 应用搭建、提示词管理、知识库检索、Agent 编排、工作流、API 发布 这些能力整合到一个产品里,让开发者可以更快构建 AI 应用。
你可以把 Dify 理解为:
- AI 应用的低代码/半低代码平台
- 适合内部知识问答、智能客服、AI 助手、企业 Agent、工作流自动化
- 支持对接 OpenAI、Claude、通义千问、DeepSeek、Azure OpenAI 等模型
- 支持知识库、RAG、工具调用、插件扩展
如果你不想把数据完全托管在第三方平台,或者你希望:
- 控制数据安全
- 自定义模型供应商
- 内网部署
- 适配企业权限体系
- 打通自己的业务系统
那么自建 Dify 是非常合适的选择。
二、部署前的准备工作
在正式部署前,先准备好以下条件。
1. 服务器配置建议
开发/测试环境
- CPU:2 核以上
- 内存:4GB 以上
- 磁盘:30GB 以上
- 系统:Ubuntu 22.04 / 24.04 推荐
生产环境
- CPU:4 核以上
- 内存:8GB 以上起步,建议 16GB+
- 磁盘:100GB 起步,视知识库和日志增长而定
- 建议 SSD
2. 软件依赖
建议安装:
- Docker
- Docker Compose
- Git
检查版本:
docker -v
docker compose version
git --version
如果没有安装 Docker,可使用官方安装方式,或通过系统包管理器安装。
三、Dify 的部署方式有哪些?
Dify 常见部署方式有三种:
1. Docker Compose 部署
最常见、最简单、最适合大多数场景。
优点:
- 安装快
- 组件齐全
- 官方文档友好
- 方便升级和回滚
缺点:
- 规模很大时扩展性有限
- 需要你自己处理备份、监控、运维
2. Kubernetes 部署
适合企业级、云原生、高可用场景。
优点:
- 可扩展性强
- 适合多副本、高可用
- 更适合复杂生产环境
缺点:
- 运维复杂
- 学习成本高
3. 托管部署 / 云服务
适合不想自己维护基础设施的团队。
优点:
- 简单
- 成本可控
- 省心
缺点:
- 数据和能力受限
- 可定制性较弱
本文重点讲 Docker Compose 部署,因为这是最实用、最容易上手的方式。
四、Dify 部署架构说明
Dify 典型会依赖以下组件:
- Web 前端
- API 服务
- Worker 后台任务
- PostgreSQL:存储业务数据
- Redis:缓存、队列
- Vector Database:向量检索,通常是 Weaviate 或其他兼容组件
- 对象存储:用于存放文件、图片、知识库附件等
理解这套架构很重要,因为后面做排错、备份、扩容时会用到。
五、Linux 服务器初始化建议
以下以 Ubuntu 为例。
1. 更新系统
sudo apt update && sudo apt upgrade -y
2. 安装常用工具
sudo apt install -y git curl vim ufw
3. 安装 Docker
如果你已经安装好 Docker,可跳过。
官方安装后建议验证:
docker run hello-world
4. 安装 Docker Compose
很多新版 Docker 已经内置 docker compose,无需单独安装。
验证:
docker compose version
六、获取 Dify 源码
建议从官方仓库拉取代码。
git clone https://github.com/langgenius/dify.git
cd dify
如果你只想使用部署目录,通常需要进入部署相关子目录,具体以仓库结构为准。一般会有 docker、docker-compose 或类似目录。
你也可以直接下载官方发布包,但 Git 方式更方便后续升级。
七、配置环境变量
Dify 部署前最关键的一步是配置 .env 文件。
通常仓库会提供示例文件,例如:
cp .env.example .env
然后编辑 .env:
vim .env
八、核心环境变量怎么配?
下面是常见且重要的配置项,具体名称可能随版本略有不同,但思路一致。
1. 站点访问地址
CONSOLE_API_URL=https://your-domain.com
APP_WEB_URL=https://your-domain.com
SERVICE_API_URL=https://your-domain.com
如果你还在本地测试,可以先写:
http://localhost
但生产环境一定建议使用域名 + HTTPS。
2. 数据库配置
通常是 PostgreSQL:
DB_HOST=postgres
DB_PORT=5432
DB_USERNAME=postgres
DB_PASSWORD=yourpassword
DB_DATABASE=dify
务必修改强密码。
3. Redis 配置
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_PASSWORD=
如果启用了 Redis 密码,也要同步设置。
4. 向量数据库配置
常见示例:
VECTOR_STORE=weaviate
如果你使用其他向量库,按官方支持方式调整即可。
5. 对象存储配置
对象存储用于保存文件、图片、知识库附件等。
你可以选择:
- 本地存储
- S3
- MinIO
- 其他兼容对象存储
例如使用 MinIO 的思路是:
STORAGE_TYPE=s3
S3_ENDPOINT=http://minio:9000
S3_BUCKET=dify
S3_ACCESS_KEY=your_access_key
S3_SECRET_KEY=your_secret_key
S3_REGION=us-east-1
6. 模型供应商配置
Dify 的核心能力之一是接入模型。
例如 OpenAI 类似配置:
OPENAI_API_KEY=sk-xxxx
OPENAI_API_BASE=https://api.openai.com/v1
如果你使用 DeepSeek、Azure OpenAI、Claude、通义千问等,也可在控制台中配置,或根据官方文档设置相应变量。
九、Docker Compose 一键启动
配置完成后,进入部署目录执行:
docker compose up -d
如果首次启动需要拉取镜像,时间会稍长。
查看容器状态
docker compose ps
查看日志
docker compose logs -f
如果你想看某个服务的日志,例如 API:
docker compose logs -f api
十、初始化数据库与首次访问
Dify 首次启动后,通常需要完成初始化流程,包括:
- 数据库迁移
- 创建管理员账号
- 配置基础参数
一般浏览器访问你的域名或本地地址即可进入初始化页面。
例如:
http://你的服务器IP
或
https://your-domain.com
第一次进入时,按页面提示注册管理员账号即可。
十一、域名绑定与 Nginx 反向代理
生产环境下,强烈建议不要直接暴露容器端口,而是使用 Nginx 作为反向代理。
1. 域名解析
先在 DNS 服务商处添加 A 记录:
your-domain.com -> 服务器公网 IP
2. 安装 Nginx
sudo apt install -y nginx
3. 配置反向代理
创建配置文件:
sudo vim /etc/nginx/sites-available/dify.conf
写入示例:
server {
listen 80;
server_name your-domain.com;
location / {
proxy_pass http://127.0.0.1:3000;
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;
}
}
注意:这里的
3000只是示例端口,请以你的 Dify 前端或网关实际端口为准。
启用站点:
sudo ln -s /etc/nginx/sites-available/dify.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
十二、配置 HTTPS 证书
强烈建议全站 HTTPS。
1. 安装 Certbot
sudo apt install -y certbot python3-certbot-nginx
2. 申请证书
sudo certbot --nginx -d your-domain.com
按照提示完成证书签发。
3. 自动续期检查
sudo certbot renew --dry-run
十三、防火墙配置
如果你启用了 UFW,可以限制开放端口。
常见开放端口
- 22:SSH
- 80:HTTP
- 443:HTTPS
设置示例:
sudo ufw allow 22
sudo ufw allow 80
sudo ufw allow 443
sudo ufw enable
sudo ufw status
如果你的服务只通过 Nginx 提供访问,建议不要对外直接开放数据库、Redis、向量库端口。
十四、生产环境推荐优化
1. 修改默认密码和密钥
部署后第一件事就是改所有默认密码,包括:
- PostgreSQL 密码
- Redis 密码
- 对象存储密钥
- API Key
- 管理员密码
2. 关闭不必要端口
只保留必要端口对外访问。
3. 做数据持久化
确保数据库、对象存储、日志目录都挂载到了宿主机或独立卷。
4. 设置日志轮转
避免日志无限增长。
5. 定时备份
备份策略至少包括:
- PostgreSQL 数据库备份
- 对象存储数据备份
.env配置备份- Docker Compose 配置备份
十五、如何备份 Dify?
1. 备份 PostgreSQL
docker exec -t postgres_container_name pg_dump -U postgres dify > dify_backup.sql
如果是宿主机数据库,可直接用 pg_dump。
2. 备份对象存储
如果文件存在本地目录:
tar -czvf storage_backup.tar.gz /path/to/storage
如果使用 MinIO 或 S3,需要按对象存储方式备份。
3. 备份配置文件
cp .env /backup/dify/.env.bak
cp docker-compose.yml /backup/dify/
4. 建议自动化
可以写一个定时任务:
crontab -e
例如每天凌晨 2 点备份:
0 2 * * * /usr/local/bin/dify-backup.sh
十六、常见部署问题与排查方法
问题 1:容器启动失败
先看状态:
docker compose ps
再看日志:
docker compose logs -f
常见原因:
.env配置错误- 端口冲突
- 数据库密码不一致
- 镜像拉取失败
问题 2:网页打不开
排查顺序:
- 容器是否正常运行
- Nginx 是否启动
- 防火墙是否放行 80/443
- 域名是否解析正确
- HTTPS 证书是否正常
可用命令:
curl -I http://127.0.0.1
问题 3:数据库连接失败
检查:
- PostgreSQL 是否运行
- 账号密码是否一致
- 数据库名是否正确
- 容器网络是否正常
可以进入容器测试:
docker exec -it sh
然后尝试连接数据库。
问题 4:知识库上传失败
可能原因:
- 对象存储配置错误
- 文件大小超限
- 网络超时
- 权限不足
建议检查:
- 存储桶是否存在
- access key 是否正确
- endpoint 是否可达
- bucket policy 是否合理
问题 5:模型调用失败
重点检查:
- API Key 是否有效
- Base URL 是否正确
- 账号是否有额度
- 出网是否受限
- 代理是否可用
如果是企业内网,尤其要确认:
- 服务器是否能访问模型服务地址
- 是否需要配置 HTTP/HTTPS 代理
十七、如何升级 Dify?
升级前一定先备份。
1. 拉取最新代码
git pull
2. 拉取新镜像
docker compose pull
3. 重启服务
docker compose up -d
4. 观察日志
docker compose logs -f
如果出现数据库迁移问题,不要盲目重启,先看官方升级说明和数据库变更说明。
十八、企业生产环境建议
如果你要把 Dify 用于正式业务,建议额外考虑以下架构设计:
1. 前后端分离访问
通过统一网关/Nginx 暴露服务,避免容器直接对公网开放。
2. 数据库独立部署
PostgreSQL 可以独立到云数据库或专用机器,提升稳定性。
3. 对象存储独立化
使用 S3 兼容存储,比本地磁盘更安全。
4. 监控与告警
建议接入:
- Prometheus
- Grafana
- Loki
- 企业微信/钉钉告警
5. 审计与权限
如果给多人使用,建议明确:
- 管理员权限
- 应用创建权限
- 知识库管理权限
- API 调用权限
6. 网络隔离
敏感场景下建议部署在内网环境,限制外部访问。
十九、适合哪些使用场景?
Dify 非常适合以下场景:
- 企业知识库问答
- 内部制度查询机器人
- 客服助手
- 销售辅助机器人
- 研发助手
- 工作流自动化
- 表单解析与信息抽取
- Agent 编排与工具调用
- AI 应用原型验证
如果你需要快速把大模型能力落地到业务中,Dify 是一个很实用的选择。
二十、完整部署清单
部署完成后,建议逐项检查:
- [ ] Docker 已安装
- [ ] Docker Compose 可用
- [ ]
.env已正确配置 - [ ] PostgreSQL 可连接
- [ ] Redis 可连接
- [ ] 对象存储可用
- [ ] 镜像已正常拉取
- [ ] 容器已启动
- [ ] 域名解析已完成
- [ ] Nginx 反向代理已配置
- [ ] HTTPS 证书已签发
- [ ] 防火墙已放行 80/443
- [ ] 管理员账号已创建
- [ ] 模型供应商已配置
- [ ] 知识库上传测试成功
- [ ] 备份方案已建立
二十一、结语
Dify 的价值不只是“能部署起来”,而是它能把 大模型、知识库、工作流、工具调用、应用发布 这一整套能力快速产品化。
如果你只是想做一个 Demo,Docker Compose 足够快;如果你准备正式上线,那就要认真对待 域名、HTTPS、持久化、备份、监控和权限控制。
一句话总结:
开发环境看效率,生产环境看稳定性。Dify 部署成功只是开始,真正重要的是长期可维护、可扩展、可恢复。
如果你愿意,我还可以继续帮你写下面任意一种版本:
- Dify Docker Compose 详细实操版
- Dify 宝塔面板部署版
- Dify Kubernetes 生产部署版
- Dify + Nginx + HTTPS 完整配置版
- Dify 连接 DeepSeek/通义千问/Claude 的实战版
如果你需要,我可以直接继续输出下一篇。