Files
wehub-resource-sync 1443d3fdf9
Ruff Format Check / Ruff Format & Lint (push) Failing after 7m39s
Deploy VitePress site to Pages / build (push) Failing after 9m11s
Deploy VitePress site to Pages / Deploy (push) Waiting to run
chore: import upstream snapshot with attribution
2026-07-13 12:32:26 +08:00

2.6 KiB

生产部署指南

本文档介绍如何在生产环境中部署 Yuxi。

前置要求

  • Docker Engine (v24.0+)
  • Docker Compose (v2.20+)
  • NVIDIA Container Toolkit(如需使用 GPU 服务)

::: warning 注意事项

  1. 生产环境和开发环境建议使用不同的机器,避免端口和资源冲突
  2. 虽然名为「生产环境」,但这只是基本配置,真正上线需要根据实际情况调整
  3. 前端有调试面板(长按侧边栏触发),生产环境建议关闭 :::

部署步骤

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. 验证部署

跨域(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:5173http://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