开始之前
最终架构、合并修复与部署准备
开始之前#
最终架构、合并修复与部署准备
1. 最终架构#
浏览器
↓ HTTPS
Nginx / 宝塔站点
↓ 可选但强烈推荐:Basic Auth
Graduate OS 登录
↓
Next.js 16 standalone
127.0.0.1:3000
↓
MySQL 8 + Prisma 6
论文 PDF:
/www/wwwroot/graduate-os/storage/papers
必须通过登录后的受保护 API 下载,不能让 Nginx 直接公开 /storage/。
AI / Search:
Graduate OS
├─ OpenAI Official
├─ OpenAI Compatible / Sub2API / 自定义中转
├─ SerpApi → Google Scholar API
├─ Crossref
└─ OpenAlex
2. 最终发布包已经合并的修复#
最终源码已经包含:
Graduate-OS Phase 2 Final Source
+
Paper Radar Trial Hotfix
+
Paper Radar Relevance & Tags Hotfix
+
Paper AI Reliability Final Hotfix
+
实际生产服务器运行时修复
其中包括:
- 后台 AI Provider / Search Provider 配置。
- AES-256-GCM API Key 加密,
SECRET_ENCRYPTION_KEY只存在.env。 - OpenAI Official 与 OpenAI Compatible 分流。
- Sub2API 作为 OpenAI Compatible 使用。
- OpenAI Compatible JSON Object + 本地 JSON.parse + Zod 校验。
- 修复第三方
strict json_schema400 错误。 - 长论文输入预算、章节优先、精简重试、少量分块与 524 超时处理。
- AI 分析状态自动轮询,成功/失败无需手工 F5。
- Paper Radar 清空结果、状态保持、分数排序、新获取 Badge、研究分类标签。
- 秋招精简表单、面试联动、题库 DOCX/PDF 导入与练习。
server-only已正式加入依赖,不再需要部署后手工补装。- PM2 已内置项目根
.env加载。 - PM2 已内置
--dns-result-order=ipv4first,解决真实部署中第三方中转 IPv6 被 Cloudflare 403 的情况。 .env.example中AI_ENABLED/SCHOLAR_ENABLED已使用正确的true。
3. 部署前准备#
准备:
- Ubuntu 22.04 服务器
- 宝塔 Linux 面板
- 一个域名或子域名,例如
xjtu.example.com - MySQL 8
- Node.js 22 LTS(建议 >= 22.13)
- PM2
- Nginx
- 最终源码 ZIP
推荐服务器:
最低试运行:2C / 2G / 40G
推荐长期使用:2C / 4G 或以上
PDF 和 AI 分析会消耗内存;大量 PDF 时磁盘容量需要按实际增加。