本指南将帮助您在一台全新的机器上部署 Project Muse 的前后端服务。
在开始之前,请确保您的机器已安装以下软件:
- Docker 和 Docker Compose(必需)
- Docker Desktop: https://www.docker.com/products/docker-desktop
- 或 Linux 上安装 Docker Engine + Docker Compose
- Python 3.10+ 和 pip(用于下载 AI 模型)
- Node.js 18+ 和 pnpm(用于前端开发)
- 安装 pnpm:
npm install -g pnpm
- 安装 pnpm:
- NVIDIA GPU(可选,用于加速 AI 推理,CPU 模式也可运行)
进入 deploy 目录并创建 .env 文件:
cd deploy
cp .env.example .env然后编辑 .env 文件,根据实际情况修改配置。至少需要修改以下关键配置:
SECRET_KEY: 生产环境请使用强随机字符串MYSQL_ROOT_PASSWORD: MySQL root 密码ADMIN_PASSWORD: 管理员账户密码
提示: 详细的配置说明请参考
README.md中的"配置环境变量"章节。
AI 模型文件需要单独下载,存储在 deploy/models 目录:
# 安装模型下载所需的依赖
pip install -r requirements.txt
# 下载模型(约 2-3 GB,首次下载可能需要较长时间)
python download_models.py这将下载以下模型:
- WD14 Tagger: 用于自动图片打标
- CLIP ViT-L/14: 用于图片和文本的向量化(语义搜索)
提示: 如果下载速度较慢,脚本会自动使用
hf_transfer加速下载。
# 构建 Docker 镜像
docker-compose build
# 启动所有服务(包括 MySQL、MinIO、Redis、Qdrant、后端 API、AI Worker)
docker-compose up -d
# 查看服务状态
docker-compose ps
# 查看日志(可选)
docker-compose logs -f注意:
- 如果您的机器没有 NVIDIA GPU,需要编辑
docker-compose.yml,注释掉ai_worker服务中的 GPU 配置(第 123-129 行的deploy.resources.reservations.devices部分)- 服务启动后,数据库迁移会自动执行
- 首次启动时会自动创建管理员账户(如果配置了
ADMIN_USERNAME和ADMIN_PASSWORD)
访问以下地址验证服务是否正常运行:
- 后端 API 文档: http://localhost:8000/docs
- 健康检查: http://localhost:8000/health
- MinIO 控制台: http://localhost:9001 (账号/密码:
minioadmin/minioadmin) - Qdrant Dashboard: http://localhost:6333/dashboard
前端需要单独启动(开发模式,支持热重载):
cd frontend
# 安装依赖
pnpm install
# 启动开发服务器
pnpm dev前端地址: http://localhost:5173
提示:
- 前端通过 Vite 代理连接到后端 API(
/api->http://localhost:8000)- 前端也代理了 MinIO 请求(
/minio->http://localhost:9000),解决 HTTPS 混合内容问题
- 访问前端: 打开 http://localhost:5173
- 登录系统: 使用配置的管理员账户登录(默认:
admin/admin123) - 上传测试: 上传一张图片,等待 AI 自动处理(生成标签、向量嵌入等)
问题: ai_worker 容器启动失败,提示 GPU 相关错误
解决:
- 如果没有 GPU,编辑
deploy/docker-compose.yml,注释掉ai_worker服务中的 GPU 配置(第 123-129 行) - 如果有 GPU 但未安装 NVIDIA Container Toolkit,请先安装:https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html
问题: AI Worker 提示找不到模型文件
解决: 确保已执行 python download_models.py,模型文件位于 deploy/models 目录
问题: 前端页面显示 API 请求失败
解决:
- 检查后端服务是否正常运行:
docker-compose ps - 检查
CORS_ORIGINS配置是否包含前端地址(默认已包含http://localhost:5173) - 查看后端日志:
docker-compose logs backend
问题: 后端无法连接到 MySQL
解决:
- 检查
.env文件中的数据库配置是否正确 - 确保 MySQL 容器已启动:
docker-compose ps db - 查看 MySQL 日志:
docker-compose logs db
- 详细的配置说明和功能使用,请参考
README.md - 系统架构和设计文档,请参考
docs/设计文档.md