首页
XtreamUIPro

部署指南

教育与培训部署指南

将平台配置为学校、培训机构或大学的课程视频服务:课程资料库、学生访问、直播课堂和 LMS 集成。

这些指南把行业概念对应到平台目前已有的对象(频道包、线路、套餐、分销商账户、节点、API)。它们只是概念上的对应,并非行业专属功能,分销商账户是委托账户,而不是相互隔离的租户。

概念对应

面板中没有任何东西叫作课程或学生。下表说明哪个对象扮演什么角色;下面的各章按此顺序进行设置。

在您的行业中在平台上在面板中的位置
培训中心或分发分销商分销商账户(reseller):拥有积分、权限和自有线路的委托后台Users → 添加分销商;其权限在 Groups 中设置
课程集合频道包:由一个套餐授予的、已命名的频道、电影或剧集集合Bouquets,由 Streams 和 Movies / Series 组成
录播课程点播目录:带季和集的电影与剧集、分类和元数据Movies 和 Series,或点播入库任务
直播课堂直播频道:带有信号源、EPG 和输出格式的流Streams → 添加直播流(源 URL 或 RTMP 推流)
学生访问权限线路:一份访问权限,包含其套餐、频道包、到期时间、连接数上限和输出Lines → 添加,或激活码,或 Reseller API
课程访问期线路的到期日期,通过套餐、积分或 API 续期线路的到期日期和套餐的时长
同时会话数上限线路的最大连接数:允许多少台设备同时观看线路的最大连接数
LMS 或电商集成Reseller API 与 webhook:从您自己的系统调用面板的各项操作分销商后台中的 Reseller API 密钥和 webhook

前提条件

安装前需要准备什么。

  1. 校园网内的一台 Linux 服务器(Ubuntu 22.04 或 24.04),由安装程序安装 Postgres、Redis 和 ffmpeg,以及用于面板和播放器的域名或内部地址。
  2. 您要发布的录像(文件或可推送 RTMP 的采集系统),以及对于直播课堂,每个要推流的教室里的一台编码器。
  3. 许可证密钥:Free 套餐无需密钥;符合条件的机构用其学术域名电子邮件通过电子邮件申请免费的 Professional 密钥。

基础设施部署

先安装管理服务器,再为每栋楼安装一个节点。

  1. 在管理服务器上运行安装程序;它会把面板、API、worker 和源站安装为 systemd 单元,并创建第一个管理员。
  2. 设置 API 的公开 URL(API_PUBLIC_URL)和播放基础地址,使播放器链接指向校园地址。
  3. 为每栋有教室要观看的楼,在 Servers → 添加节点 中登记一个节点;面板会通过 SSH 从节点安装包进行安装。
  4. 检查 Servers 页面:节点会上报心跳和流量,该楼的观众会被路由到它。

内容组织

课程作为剧集,专业作为频道包和套餐。

  1. 在 Movies / Series 下为每个院系或科目创建一个分类。
  2. 把每门课程添加为一个剧集:每个模块一季,每节课一集,以录像作为来源(上传或点播入库任务)。
  3. 用您添加的剧集为每个课程集合创建一个频道包(例如某个专业一个学期的课程)。
  4. 为每个专业创建一个套餐:其授予的频道包、作为时长的访问期,以及同时会话数上限。

分销商配置

将培训中心或院系作为委托账户。

  1. 在 Groups 下创建一个拥有该中心所需权限的分组(管理自己的线路,不能修改目录)。
  2. 在 Users 下用该分组、一笔积分余额和其可发放的套餐,把该中心添加为分销商。
  3. 把后台地址交给它;它从那里管理自己的学生,面板则保留审计日志。

学生访问配置

每位学生一条线路,在注册时创建。

  1. 对于小批次学员,通过 Lines → 添加 用该专业的套餐添加线路;到期时间跟随套餐时长。
  2. 对于注册日,为套餐生成激活码;学生在播放器中兑换激活码即可获得一条线路。
  3. 对于学生系统或 LMS,创建一个 Reseller API 密钥,让系统为每位学生使用 action=create_line 和一个请求 ID 来创建线路。
  4. 将最大连接数设为学生可同时使用的设备数;超出后播放器会拒绝下一个连接。

点播设置

按需观看的录播课程。

  1. 把每份录像作为一集的来源上传,或把点播入库任务指向该文件,让 worker 下载并编码到媒体根目录中。
  2. 手动填写元数据(标题、简介、海报),或对公开资料从 TMDB 获取;课程通常只需要标题和简介。
  3. 用测试线路在网页播放器中检查播放;链接带签名,并在设定时间后过期。

直播课堂流媒体

把讲座作为直播频道。

  1. 在 Streams 下添加一个直播流,以教室的编码器作为来源(RTMP 推流地址或拉流 URL)。
  2. 把该流放进课程的频道包,只有已注册的学生才能看到;如果您维护课表,请把它添加到 EPG。
  3. 当学生可以事后观看课堂时,在该流上启用回看或时移;录像也可以作为一集上传。

订阅与访问到期

随课程结束而终止的访问权限。

  1. 将访问期设为套餐的时长;由它创建的线路会在该期限结束时到期。
  2. 在面板中使用中心的积分为新学期续期线路,或通过 API 使用 action=renew_line 续期。
  3. 让您的系统订阅 webhook:线路即将到期、已到期或被禁用时它会收到通知。

与外部 LMS 集成

LMS 负责控制访问;播放器负责播放。

  1. 为 LMS 创建一个 Reseller API 密钥;把它保存在 LMS 的密钥存储中,绝不要放在页面里。
  2. 注册时,LMS 使用该专业的套餐和一个请求 ID 调用 action=create_line;退学时调用 action=disable_line。
  3. 从 LMS 的课程页面链接到网页播放器,或把播放器凭据交给学生;两者之间没有单点登录。

安全注意事项

让服务留在机构内部。

  1. 为每个面板账户启用双重验证登录,并给员工授予能满足工作的最小权限分组。
  2. 把学生个人数据保存在学生系统里;线路只需要一个名称和一个到期时间。
  3. 将最大连接数设置得较低,并考虑把播放绑定到观众的地址,以防止共享。
  4. 开启加密的数据库备份,如果有兼容 S3 的存储,也开启异地副本。

故障排查

常见的首要检查项。

  1. 学生无法登录:检查线路的到期时间和是否已启用,然后检查课程的套餐和频道包。
  2. 某份录像无法播放:在 Jobs 页面检查入库任务的结果,然后检查媒体根目录中的文件和签名链接的有效期。
  3. 某栋楼的观众访问到了源站:检查节点的心跳,以及观众地址是否落在节点的路由范围内。
  4. API 拒绝了某次调用:检查密钥、该操作的方法(写入为 POST)以及重试调用的请求 ID。