EduOpenAI Core 文档/构建与部署

构建与部署

pnpm build → 一键部署脚本 → PM2

标准流程

  1. 安装依赖:pnpm install(首次基线恢复后)
  2. 生产构建:pnpm build(输出重定向到日志文件,避免管道输出超限)
  3. 一键部署:bash scripts/deploy-standalone.sh(复制 static、prompts 模板、维护 data/.env symlink、pm2 restart、健康验证)
  4. 验证:curl 健康检查 + 插件 API

构建命令

构建(输出重定向到文件)
cd /www/wwwroot/maic.eduopenai.com
export PATH="/home/zyzx/.npm-global/bin:/www/server/nodejs/v24.16.0/bin:$PATH"
pnpm build > /home/zyzx/build-logs/build-$(date +%Y%m%d).log 2>&1
tail -20 /home/zyzx/build-logs/build-$(date +%Y%m%d).log

一键部署脚本

deploy-standalone.sh
bash scripts/deploy-standalone.sh
# 脚本内容(幂等):
# 1. cp -r .next/static .next/standalone/.next/static
# 2. cp -r lib/prompts/templates → standalone(防 Prompt template not found)
# 3. rm -rf .next/standalone/data && ln -s <root>/data .next/standalone/data
# 4. rm -f .next/standalone/.env && ln -s <root>/.env .next/standalone/.env
# 5. pm2 restart eduopenai --update-env
# 6. 健康验证(首页 + 插件 API)
注意
standalone/.env 必须 symlink 到根 .env:Next standalone 从自身目录加载 .env,不 symlink 则运行期读不到 OSS_*/QWEN_* 配置(OSS 上传报 503 not configured)。data symlink 同理,防 pnpm build 清空 .next/ 丢失课程数据。