1. 下载源码
git clone https://github.com/langgenius/dify.git
2. Docker Compose 部署
2.1 进入 docker 目录并配置环境变量
cd dify
cd docker
cp .env.example .env
2.2 修改访问端口
编辑 .env 文件,修改 Nginx 暴露端口(避免与宿主机上已有服务冲突):
vim .env
找到并修改以下配置:
EXPOSE_NGINX_PORT=8888
EXPOSE_NGINX_SSL_PORT=8443
默认是
80和443,如果已被占用可改为其他端口。
2.3 配置域名地址
编辑 .env 文件,设置 Dify 的 Web 和 API 访问地址:
CONSOLE_API_URL=https://dify.example.com
CONSOLE_WEB_URL=https://dify.example.com
SERVICE_API_URL=https://dify.example.com
APP_API_URL=https://dify.example.com
APP_WEB_URL=https://dify.example.com
将
dify.example.com替换为你的实际域名。
2.4 启动服务
docker compose up -d
启动后包含以下容器:
| 容器 | 用途 |
|---|---|
dify-nginx |
反向代理,对外暴露 Web 和 API |
dify-api |
Dify 后端 API 服务 |
dify-worker |
异步任务处理 |
dify-web |
前端页面 |
db |
PostgreSQL 数据库 |
redis |
缓存和消息队列 |
weaviate |
向量数据库(用于 RAG 知识库) |
3. Nginx 反向代理设置
如果 Dify 部署在内网服务器,需要通过 Nginx 反向代理暴露到公网:
server {
listen 80;
server_name dify.example.com;
# 强制 HTTPS 跳转(推荐)
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name dify.example.com;
ssl_certificate /path/to/ssl/cert.pem;
ssl_certificate_key /path/to/ssl/key.pem;
location / {
proxy_pass http://192.168.1.100:8888;
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;
# WebSocket 支持
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
# API 接口代理
location /api {
proxy_pass http://192.168.1.100:8888;
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.example.com替换为你的实际域名,192.168.1.100替换为 Dify 服务器的内网 IP。
4. 首次使用
部署完成后,浏览器访问 https://dify.example.com,进入初始化页面:
- 设置管理员账号 — 输入邮箱和密码完成注册
- 创建应用 — 选择应用类型(聊天助手、文本生成、Agent、工作流等)
- 配置模型 — 在设置中添加 LLM 的 API Key(如 OpenAI、DeepSeek 等)
5. 常用操作
# 查看容器状态
docker compose ps
# 查看日志
docker compose logs -f
# 重启服务
docker compose restart
# 更新 Dify
git pull
docker compose down
docker compose up -d
# 停止服务
docker compose down
6. 注意事项
| 注意点 | 说明 |
|---|---|
| 端口冲突 | 检查 80/443 是否被占用,在 .env 中修改 EXPOSE_NGINX_PORT |
| 域名解析 | 确保域名已解析到服务器 IP |
| HTTPS 证书 | 生产环境必须配置 SSL 证书(推荐 Let’s Encrypt / acme.sh) |
| 向量数据库 | Weaviate 用于知识库,首次启动会自动创建 |
| 数据持久化 | Docker volumes 存储在 /var/lib/docker/volumes/,备份前需确认 |
| 资源要求 | 最低 2C4G,推荐 4C8G(含向量数据库和模型推理) |
Professional English Terms
| Term | Meaning |
|---|---|
| Dify | 开源 LLM 应用开发平台,支持可视化编排 RAG、Agent、工作流 |
| Docker Compose | 多容器 Docker 应用编排工具 |
| Reverse Proxy | 反向代理,将外部请求转发到内部服务 |
| Vector Database | 向量数据库(Weaviate),存储文本嵌入向量用于语义检索 |
| RAG (Retrieval-Augmented Generation) | 检索增强生成,结合知识库和大模型回答问题 |