系统要求
| 角色 | 要求 |
|---|---|
| 学员(网页) | Chrome / Edge 90+、Safari 15+;必须是 HTTPS,浏览器只在安全上下文下开放摄像头麦克风 |
| 老师(客户端) | Windows 10+ 或 macOS 11+;屏幕共享与远程协助需要客户端 |
| 手机 | Android 8.0+ / iOS 15+ |
| 服务端 | Linux x86_64,2 核 4G 起(一间 50 人教室);PostgreSQL 16;需一个域名与证书 |
私有化部署
整套是一个 Go 单二进制加一个 PostgreSQL,不依赖 Kubernetes 也不需要专门的媒体服务器 —— 音视频转发(SFU)编在服务端里。TLS 由前面的 nginx 终止。
- 媒体端口:UDP 41000–41200 需在防火墙放行,服务端配置里要填公网 IP,填内网地址会导致连不上
- 录像与课件存本地磁盘,一堂 45 分钟的课约 100–200MB
- 可配双线路:主服务器故障时客户端自动切到备用服务器,令牌通用、自动回到原教室
管理后台
浏览器访问 /app/ 用管理员账号进入,四块:运行监控(在线人数、活动房间、操作日志)、
房间管理(房间号、容量、默认权限、主持人)、用户管理(账号、等级与默认权限)、录像管理。
常见问题
为什么必须 HTTPS?浏览器只在安全上下文下开放摄像头与麦克风。用 HTTP 部署的表现是「界面正常但开不了摄像头」,看不出是协议问题。
macOS 提示「无法验证开发者」怎么办?把应用拖到「应用程序」后,按住 Control 键点它的图标 → 选「打开」→ 在弹窗里再点一次「打开」,之后就能正常双击了。原因是我们没有 Apple 付费开发者账号做公证。
若提示的是「已损坏,应移到废纸篓」,说明你下的是 8 月 30 日之前的旧包(那一版签名不自洽),重新下载即可。
若提示的是「已损坏,应移到废纸篓」,说明你下的是 8 月 30 日之前的旧包(那一版签名不自洽),重新下载即可。
一台服务器能开多少间课?取决于带宽而非 CPU。每路视频约 1–2Mbps,50 人一间课上行约 2Mbps、下行随人数增长。
学员没装客户端能上课吗?能,网页版功能与客户端一致,只有屏幕共享与远程协助是客户端专属。
支持微信小程序吗?还没有。小程序的音视频要单独的媒体网关,在规划里。