Skip to content

部署与更新 ​

该选 Vercel 还是本地部署 ​

你的情况建议
没有可长期开机的服务器,需要老师在家也能访问Vercel 云端
学校要求数据不出校园网本地 / 内网
教室网络访问境外服务不稳定本地 / 内网
完全不懂命令行Vercel 云端
已有能 7×24 开机的服务器或 NAS本地 / 内网

完整对比见选择部署方式。

必须注册 GitHub、Vercel、Neon 三个账号吗 ​

只有 Vercel 云端部署需要。本地/内网部署只需要一台服务器,不需要注册这三个平台中的任何一个用于托管;从 GitHub 拉源码是唯一的联网动作。

可以先本地试用,之后再上云吗 ​

可以。两者共用同一份源码和同一套表结构,只是运行环境不同。迁移时把数据库连接串换掉、重新部署即可,见数据与备份。

更新后还是旧版本 ​

Vercel 云端 ​

  1. 确认 GitHub 上的 Fork main 确实包含新版本(打开提交记录核对);
  2. 确认 Vercel 有以该提交为来源的新部署,且状态为 Ready;
  3. 确认主域名指向最新的生产部署;
  4. 强制刷新页面;
  5. 关闭并重新打开 PWA;
  6. 等待 Service Worker 更新提示。

常见误区:Vercel 的 Redeploy 和 一键部署更新 只会用当前 Fork 里的代码重新构建,不会自动拉取作者仓库的新代码。跳过 Sync fork 这一步,部署多少次版本都不会变。

本地部署 ​

bash
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 的函数配置都变了。这类报错几乎都是 只同步了一部分文件造成的:

  1. 回到 GitHub,对 Fork 再执行一次完整同步(本地部署用 git pull 拉全量);
  2. 确认 api/ 目录下的 _ 前缀私有目录也在,vercel.json 是同一次提交的版本;
  3. 重新部署后再试一次接口。

详见配置 Vercel 项目 · 函数数量与目录结构。

更新失败了怎么回滚 ​

云端:在 Vercel Deployments 中找到更新前已验证成功的部署,用 Promote、Rollback 或重新部署功能恢复。

本地:git checkout <更新前的提交> 后重新构建。

代码回滚不等于数据库回滚

如果新版本已经改动了数据结构,恢复旧代码不一定能恢复数据状态。数据库恢复必须基于更新前的备份评估。

多久更新一次 ​

建议跟随作者发布的稳定版本更新,不必每个版本都升级。更新前阅读对应版本的更新说明,避开考试和上课高峰,并完成一次核心验收。

安全相关的修复建议尽快跟进。

需要备案吗 ​

使用 Vercel 境外节点时通常不涉及 ICP 备案,但要接受境外访问的线路波动。使用中国大陆服务器或大陆 CDN 时,通常需要实名认证和 ICP 备案。具体要求以服务商和当地法规为准。

部署失败了先看哪里 ​

  1. 故障排查的现象对照表;
  2. 对应主线的章节:Vercel 看部署主线,本地看本地部署总览;
  3. 仍然失败时,带上错误提示和请求 ID 到官方交流群 1067566386 提问。

Novora 部署与维护文档