Skip to content

5. 初始化与验收 ​

本地部署的初始化流程与云端相同:填写学校信息、年级班级和学期调度,修改超级管理员密码并保存恢复密钥。本页只补充本地环境的验收项,通用步骤见首次登录和初始化。

与本地的差异 ​

环节Vercel 云端本地 / 内网
访问地址https://exam.example.comhttp://内网IP:3000 或反向代理域名
初始密码来源Vercel 环境变量 ADMIN_PASSWORD服务器 .env 中的 ADMIN_PASSWORD
数据库故障排查检查 Neon 项目状态检查容器状态 docker compose ps 或 systemctl status postgresql
网络排查检查域名与运营商线路检查防火墙端口、局域网连通性

第一步:打开首页 ​

text
http://服务器局域网IP:3000/

首页会先从数据库同步配置。只有成功读取并确认没有年级和班级时,才显示“系统尚未初始化”和“开始初始化”。请等待页面完成同步,不要在“正在同步班级配置”时连续刷新。

如果首页没有出现初始化入口:

  1. 确认访问的是应用容器/进程的地址,不是数据库端口;
  2. 访问 http://服务器IP:3000/api/time,确认返回 JSON;
  3. docker compose logs -f app 查看是否有数据库连接错误;
  4. 确认 .env 中 ADMIN_PASSWORD 已填写。

第二步:完成初始化向导 ​

步骤与云端一致,依次为:

  1. 学校信息(省份、学校名称);
  2. 年级和班级;
  3. 学期与调度(学期开始日期、周次模式、节假日、运行模式);
  4. 确认学校配置;
  5. 查看使用文档(可跳过);
  6. 修改超级管理员密码;
  7. 保存恢复密钥(明文只显示一次)。

详细说明见首次登录和初始化。

第三步:为设备选择班级 ​

  1. 用初始化时设置的新密码重新登录后台;
  2. 进入“用户与权限”,按职责创建年级管理员或班级管理员;
  3. 在每台教室大屏上打开首页,选择它实际所属的年级和班级;
  4. 确认大屏只显示绑定班级的周测和适用该班级的大型考试。

一台教室设备应绑定自己的实际班级。管理员办公电脑如需切换查看,可在本地设置中调整当前设备范围。

验收清单 ​

基础访问 ​

  • [ ] 内网任意设备可以通过 IP 或域名打开首页
  • [ ] /api/time 返回有效 JSON
  • [ ] 刷新 /exam、/admin 不出现 404
  • [ ] 教室大屏所在网段可以访问(必要时跨 VLAN 测试)
  • [ ] 浏览器控制台没有持续重复的网络错误

管理员登录 ​

  • [ ] 使用初始化后的管理员账号可以登录
  • [ ] 退出后再次打开 /admin 需要重新登录
  • [ ] 不要在公共大屏浏览器中保存超级管理员密码

数据库写入 ​

  1. 创建一个仅用于验收的测试考试;
  2. 保存后刷新后台,确认数据仍然存在;
  3. 重启应用容器或进程,再次确认数据仍在(验证持久化)。
bash
# Docker 方式
sudo docker compose restart app

# systemd 方式
sudo systemctl restart novora

班级绑定和大屏 ​

  • [ ] 大屏显示正确的考试名称和倒计时
  • [ ] 切换到不相关的班级时不会错误显示安排
  • [ ] 验收后删除测试考试

PDF 下载 ​

  • [ ] 预览页显示完整校名和班级
  • [ ] 能生成 A4 PDF,中文字体正常
  • [ ] 只有预期页数,没有额外黑页

权限 ​

  • [ ] 创建班级管理员或班级访客,只授权一个班级
  • [ ] 用无痕窗口登录该账号,确认看不到未授权范围
  • [ ] 尝试访问无权限模块,确认服务端返回权限拒绝
  • [ ] 测试完成后停用或删除测试账号

反向代理(配置了才需要) ​

  • [ ] 通过域名和 HTTPS 可以访问
  • [ ] /api/time 通过域名返回有效 JSON
  • [ ] 登录和保存没有被拒绝

验收记录 ​

项目记录内容
验收日期实际测试日期
Novora 版本设置页显示的版本
部署方式Docker Compose 或 Node
访问地址内网 IP 或域名
服务器位置机房 / 教室 / NAS 型号
测试设备电脑、教室大屏、手机
负责人部署和验收人员
未解决问题现象、请求 ID、临时措施

全部核心项通过后,进入更新与维护。

Novora 部署与维护文档