2.6 KiB
2.6 KiB
生产部署指南
本文档介绍如何在生产环境中部署 Yuxi。
前置要求
- Docker Engine (v24.0+)
- Docker Compose (v2.20+)
- NVIDIA Container Toolkit(如需使用 GPU 服务)
::: warning 注意事项
- 生产环境和开发环境建议使用不同的机器,避免端口和资源冲突
- 虽然名为「生产环境」,但这只是基本配置,真正上线需要根据实际情况调整
- 前端有调试面板(长按侧边栏触发),生产环境建议关闭 :::
部署步骤
1. 准备配置文件
为避免与开发环境冲突,生产环境建议使用 .env.prod 文件:
cp .env.template .env.prod
编辑 .env.prod,设置强密码和必要的 API 密钥:
NEO4J_PASSWORD:修改默认密码MINIO_ACCESS_KEY/MINIO_SECRET_KEY:修改默认密钥SILICONFLOW_API_KEY等模型密钥
2. 启动服务
使用生产环境配置文件启动:
# 仅启动核心服务(CPU 模式)
docker compose -f docker-compose.prod.yml up -d --build
# 启动所有服务(包含 GPU OCR)
docker compose -f docker-compose.prod.yml --profile all up -d --build
3. 验证部署
- Web 访问:http://localhost(直接通过 80 端口)
- API 健康检查:
curl http://localhost/api/system/health
跨域(CORS)配置
docker-compose.prod.yml 默认把 YUXI_ENV 设为 production,后端在该环境下会按 YUXI_CORS_ORIGINS 显式声明允许的来源。未配置时返回空列表,浏览器跨域请求会被拒绝。生产部署前请根据前端与 API 的相对位置选择策略:
| 部署形态 | 推荐配置 |
|---|---|
| 前端与 API 同源(Nginx 同端口反代) | 不需要设置,留空即可 |
| 前端与 API 跨域部署 | YUXI_CORS_ORIGINS=https://your-frontend.example.com |
| 多个前端域名 | 逗号分隔,如 https://a.example.com,https://b.example.com |
| 完全放开(不推荐) | YUXI_CORS_ORIGINS=*,会自动关闭 credentials,登录态/JWT 无法跨域携带 |
开发环境(YUXI_ENV=development 且未设置该变量)默认允许 http://localhost:5173 与 http://127.0.0.1:5173,方便本地前后端独立启动调试。从 0.7.0 升级到 0.7.1 时,如果此前是跨域部署但未显式声明来源,必须补上 YUXI_CORS_ORIGINS,否则前端跨域请求会被拒绝。
维护与更新
更新代码
# 拉取最新代码
git pull
# 重新构建并启动
docker compose -f docker-compose.prod.yml up -d --build
查看日志
# API 日志
docker logs -f api-prod
# Nginx 访问日志
docker logs -f web-prod