relay@score-classroom | v2.0.0 | uptime: -- build 2026.08.06
/usr/local/bin/classroom-relay --serve
$ whoami
课堂积分管理系统 · 中转服务 v2.0.0
一个面向 K12 课堂的、可以自托管的语音积分管理套件。
不卖云服务、不收集学生数据、不需要长期联网也能用。
$ cat README.md | head -20
本系统由三部分组成,可独立运行也可组合部署:
· 学生端 Electron 桌面应用,教室电脑上常驻
· 教师端 Electron 桌面应用,老师电脑上运行
· 中转服务 Node.js 后端,可部署在学校机房或云上
设计原则:中转做管道不做仓库
- 不存花名册、不存点名记录、不存积分明细
- 只存设备 ID、连接日志、管理员账号、操作审计
- 数据主权 100% 留在学校
$ classroom --features
[ok] 双通道语音识别 VOSK 本地低延迟 + Whisper 云端高精度
[ok] 拼音同音字消除 中文姓名统一转拼音后匹配
[ok] 十层防退出机制 注册表 + 快捷键 + 进程守护,仅教师授权退出
[ok] 三种黑屏模式  强制全屏 / 普通黑窗 / 可最小化,教师可切换
[ok] 混合加密存储  学生端 8 份奇偶备份,防篡改防断电
[ok] 自动网络修复  断网重连 + DNS 切换 + 防火墙例外自动申请
[ok] 全功能后台   设备/指令/日志/监控/权限/灰度,开发最高权限
$ _

系统组成 / Components

学生端
Windows EXE · 双窗口(悬浮球+黑屏)· VOSK WASM 本地识别 · 生产级防退出
教师端
Windows EXE · 花名册管理 · 指令下发 · 双模式(局域网直连 / 中转)
中转服务
Node.js · HTTP API + WebSocket · 宣传站 + Admin 后台同域部署
STT 引擎
VOSK 离线 + Whisper 云端(可自托管)· API 失败自动降级
部署方式
单机 2C4G 起步 · Docker Compose 一键 · 支持 Nginx + HTTPS + WSS

获取软件 / Download

学生端 Windows x64
查看下载列表 →(EXE 安装包 + 校验和)
教师端 Windows x64
查看下载列表 →(EXE 安装包 + 校验和)
中转服务
Docker 镜像 / 源码 ZIP · 自托管,无外部依赖
系统要求
Windows 10 1809+ · 4GB 内存 · 麦克风(学生端)· 50MB 磁盘
↓ 下载客户端 快速上手(5分钟) 错误码手册 更新日志 管理后台 →

最近一次部署健康检查 / Health

指标当前值说明
服务状态ok本服务器实时数据,刷新即可获取
中转版本v2.0.0/api/version 返回
在线设备数--学生端 + 教师端实时连接数
WS 监听端口--学生端/教师端连接此端口
// 上面这表是实时拉取的真实数据,没有任何"已服务 XX 学校"这种话术。

常见错误码速查 / Error Codes

错误码类别含义典型原因
E0001网络连接中转服务失败域名解析失败 / 防火墙拦截 / token 不正确
E0102语音VOSK 模型未找到models 目录未放置 tar.gz 模型
E0103语音云端 STT 超时到 STT 服务网络不通,已自动降级 VOSK
E0202防退出部分快捷键无法拦截Ctrl+Alt+Del 硬件级,已通过注册表兜底
E0402学生端教师端未授权退出触发防退出机制属正常,合法退出仅 authorized_quit
E0601后台管理员登录被锁定连续密码错误超阈值,30 分钟自动解锁
查看全部错误码 →

关键设计原则 / Principles

纯管道
中转服务只转发,不存储任何业务数据(花名册/点名/积分),数据主权完全在学校
不联网也能用
局域网 P2P 模式作为兜底,断网时课堂照常运行,只是失去远程管理能力
防退出≠锁死
教师端 authorized_quit 指令可随时让学生端合法退出并恢复系统设置
开源可自审
所有客户端代码可在本地编译,不藏后门,不外联任何统计 SDK
日志诚实
前端首页展示的数字全部来自 /api/health 真实返回,无任何夸大宣传