feat(M1): Docker部署配置 - docker-compose、环境变量模板、.gitignore、部署文档
This commit is contained in:
@@ -0,0 +1,147 @@
|
||||
# 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_
|
||||
Reference in New Issue
Block a user