EduOpenAI Core 文档/构建与部署
构建与部署
pnpm build → 一键部署脚本 → PM2
标准流程
- 安装依赖:pnpm install(首次基线恢复后)
- 生产构建:pnpm build(输出重定向到日志文件,避免管道输出超限)
- 一键部署:bash scripts/deploy-standalone.sh(复制 static、prompts 模板、维护 data/.env symlink、pm2 restart、健康验证)
- 验证: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/ 丢失课程数据。
