Files
dify-app/docker/README.md
T

148 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Dify 部署指南
> 西安云美电子科技有限公司 - 企业知识库
## 前置要求
| 项目 | 最低要求 | 推荐配置 |
|------|---------|---------|
| CPU | 4 核 | 8 核+ |
| 内存 | 8 GB | 16 GB+ |
| 磁盘 | 50 GB SSD | 100 GB+ SSD |
| Docker | ≥ 20.10 | 最新稳定版 |
| Docker Compose | ≥ 2.0 | 最新稳定版 |
| 操作系统 | Ubuntu 20.04+ | Ubuntu 22.04 LTS |
## 快速部署
### 1. 克隆项目
```bash
git clone http://git.xayunmei.com/yunmei/dify-app.git
cd dify-app
git checkout feature/dev
```
### 2. 配置环境变量
```bash
cd docker
cp .env.example .env
# 必须修改以下配置:
# - SECRET_KEY(安全密钥,用 openssl rand -hex 32 生成)
# - POSTGRES_PASSWORD(数据库密码)
# - REDIS_PASSWORD(Redis 密码)
# - DEEPSEEK_API_KEY(DeepSeek API 密钥)
```
### 3. 配置 Nginx(可选)
如果使用自定义域名,编辑 `nginx/nginx.conf`:
```bash
mkdir -p nginx
# 将 SSL 证书放入 nginx/ssl/ 目录
```
### 4. 启动服务
```bash
# 拉取镜像
docker compose pull
# 后台启动所有服务
docker compose up -d
# 查看服务状态
docker compose ps
# 查看日志
docker compose logs -f
```
### 5. 初始化
启动完成后,打开浏览器访问:
```
http://<服务器IP>:80
```
首次访问会要求设置管理员账号和密码。
## 服务端口说明
| 服务 | 容器端口 | 映射端口 | 说明 |
|------|---------|---------|------|
| Nginx | 80/443 | 80/443 | 主入口 |
| Dify API | 5001 | 内部 | API 服务 |
| Dify Web | 3000 | 内部 | 前端 |
| PostgreSQL | 5432 | 内部 | 数据库 |
| Redis | 6379 | 内部 | 缓存 |
| Qdrant | 6333 | 6333 | 向量数据库 |
## 常用命令
```bash
# 停止所有服务
docker compose down
# 停止并清除数据卷(危险!)
docker compose down -v
# 重启单个服务
docker compose restart api
docker compose restart worker
# 查看单个服务日志
docker compose logs -f api
docker compose logs -f worker
# 更新镜像
docker compose pull
docker compose up -d
```
## 备份与恢复
### 数据库备份
```bash
docker compose exec db pg_dump -U postgres dify > backup_$(date +%Y%m%d).sql
```
### 数据库恢复
```bash
docker compose exec -T db psql -U postgres dify < backup_20260606.sql
```
### 数据卷备份
```bash
docker run --rm -v dify-app_api_storage:/data -v $(pwd):/backup alpine tar czf /backup/api_storage_$(date +%Y%m%d).tar.gz -C /data .
```
## 故障排查
| 问题 | 排查方法 |
|------|---------|
| 服务启动失败 | `docker compose logs <service>` |
| 数据库连接失败 | 检查 `.env` 中密码是否一致 |
| 知识库索引失败 | 检查 Worker 日志,确认 Celery 队列正常 |
| 模型调用失败 | 检查 DeepSeek API Key 是否有效 |
| 端口冲突 | 修改 `.env` 中对应端口号 |
## 安全注意事项
1. **SECRET_KEY 必须使用随机值**,不要使用默认值
2. **生产环境关闭 Qdrant 外部端口**(注释掉 ports 映射)
3. **定期更换数据库密码**
4. **配置 Nginx SSL 证书**,不要在公网裸跑 HTTP
5. **.env 文件不要提交到 Git**
---
_最后更新: 2026-06-06_