# 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 ` | | 数据库连接失败 | 检查 `.env` 中密码是否一致 | | 知识库索引失败 | 检查 Worker 日志,确认 Celery 队列正常 | | 模型调用失败 | 检查 DeepSeek API Key 是否有效 | | 端口冲突 | 修改 `.env` 中对应端口号 | ## 安全注意事项 1. **SECRET_KEY 必须使用随机值**,不要使用默认值 2. **生产环境关闭 Qdrant 外部端口**(注释掉 ports 映射) 3. **定期更换数据库密码** 4. **配置 Nginx SSL 证书**,不要在公网裸跑 HTTP 5. **.env 文件不要提交到 Git** --- _最后更新: 2026-06-06_