部署与更新
该选 Vercel 还是本地部署
| 你的情况 | 建议 |
|---|---|
| 没有可长期开机的服务器,需要老师在家也能访问 | Vercel 云端 |
| 学校要求数据不出校园网 | 本地 / 内网 |
| 教室网络访问境外服务不稳定 | 本地 / 内网 |
| 完全不懂命令行 | Vercel 云端 |
| 已有能 7×24 开机的服务器或 NAS | 本地 / 内网 |
完整对比见选择部署方式。
必须注册 GitHub、Vercel、Neon 三个账号吗
只有 Vercel 云端部署需要。本地/内网部署只需要一台服务器,不需要注册这三个平台中的任何一个用于托管;从 GitHub 拉源码是唯一的联网动作。
可以先本地试用,之后再上云吗
可以。两者共用同一份源码和同一套表结构,只是运行环境不同。迁移时把数据库连接串换掉、重新部署即可,见数据与备份。
更新后还是旧版本
Vercel 云端
- 确认 GitHub 上的 Fork
main确实包含新版本(打开提交记录核对); - 确认 Vercel 有以该提交为来源的新部署,且状态为 Ready;
- 确认主域名指向最新的生产部署;
- 强制刷新页面;
- 关闭并重新打开 PWA;
- 等待 Service Worker 更新提示。
常见误区:Vercel 的 Redeploy 和 一键部署更新 只会用当前 Fork 里的代码重新构建,不会自动拉取作者仓库的新代码。跳过 Sync fork 这一步,部署多少次版本都不会变。
本地部署
cd /opt/novora
git rev-parse --short HEAD # 确认提交号是否已经是新版
git pull
sudo docker compose up -d --build都确认过了还是旧版本
清除站点缓存后重试。清除站点数据会移除当前设备的班级绑定和显示偏好,操作前先记录本机绑定情况。
更新会不会清空数据
不会。更新只替换代码,数据库独立存在:
- 云端:重新部署不会修改 Neon 中的数据,也不会改变已存在的管理员密码;
- 本地:
docker compose up -d --build不会删除数据卷novora_pgdata。
真正会丢数据的操作只有 docker compose down -v(删除数据卷)、手工删除数据库,以及「系统设置 → 数据维护」中的重置。执行这些操作前必须先备份。
升级后接口 404,或提示函数数量超限
V2.8.0 起 api/ 目录的内部结构和 vercel.json 的函数配置都变了。这类报错几乎都是 只同步了一部分文件造成的:
- 回到 GitHub,对 Fork 再执行一次完整同步(本地部署用
git pull拉全量); - 确认
api/目录下的_前缀私有目录也在,vercel.json是同一次提交的版本; - 重新部署后再试一次接口。
更新失败了怎么回滚
云端:在 Vercel Deployments 中找到更新前已验证成功的部署,用 Promote、Rollback 或重新部署功能恢复。
本地:git checkout <更新前的提交> 后重新构建。
代码回滚不等于数据库回滚
如果新版本已经改动了数据结构,恢复旧代码不一定能恢复数据状态。数据库恢复必须基于更新前的备份评估。
多久更新一次
建议跟随作者发布的稳定版本更新,不必每个版本都升级。更新前阅读对应版本的更新说明,避开考试和上课高峰,并完成一次核心验收。
安全相关的修复建议尽快跟进。
需要备案吗
使用 Vercel 境外节点时通常不涉及 ICP 备案,但要接受境外访问的线路波动。使用中国大陆服务器或大陆 CDN 时,通常需要实名认证和 ICP 备案。具体要求以服务商和当地法规为准。