跳转到内容

桌面应用

Monitor 的网页面板是一个桌面,应用在窗口中 运行。除了面板自带的应用,还可以从 .fsba 包安装第三方应用。它们与 Monitor 应用不同:后者是在服务器上部署 Docker Compose 服务。

已安装的应用运行在面板的沙箱 frame 中,没有网络访问,也不能调用 Monitor 的 API。它只能 通过权限允许的功能使用桌面:自己的窗口、通知和自己的存储。wasm 类型的应用还带有一个 由 Monitor 运行的后端,在权限允许时可以读取服务器状态、运行程序,或以 root 身份运行脚本。以 root 身份运行任何内容之前,桌面会弹出自己的对话框,写明是哪个应用以及它要做什么,并要求输入 sudo 密码;密码随这次请求发给 Monitor,应用拿不到。

应用商店 会列出 Monitor 提供的桌面应用:ServerBox 签名的标为 ServerBox,其他的标为 未知发布者。选择 安装 会显示应用申请的权限,输入密码后完成安装和批准。

来自其他来源的包:

  1. 在面板中打开 设置 → 应用。
  2. 在 已安装 下选择 安装…,选择 .fsba 包。Monitor 会检查这个包,检查不 通过时拒绝安装,例如 manifest 含有未知字段,或包内有指向包外的条目。
  3. 应用会显示为 待批准。选择 批准,阅读它申请的权限,然后输入你的密码。

批准后,应用会出现在 全部应用 中。其他已打开的桌面在下次启动时 才会看到它。

每个新的包都需要重新批准,包括已批准应用的新版本,即使申请的权限没有变化。列表中会显示 版本号和包 SHA-256 的前几位,可以与发布者公布的值核对。

权限 允许
notifications 在桌面上显示通知
background 窗口隐藏时继续运行
status 仅 wasm:读取服务器状态
process 仅 wasm:以 Monitor 的系统账户运行程序
root 仅 wasm:以 root 身份运行脚本,每次都需要你在桌面的对话框中输入 sudo 密码确认(可以记住 15 分钟)

后端能做什么,由应用批准时获得的权限和 Monitor 的传输规则决定:process 和 root 与 Monitor 的其他功能一样,需要 HTTPS 或同机调用方。它们能访问的范围就是 Monitor 运行所用的 系统账户能访问的范围,见访问。

已批准的应用能读取其权限允许的所有内容。 沙箱会阻止它发出网络请求,但无法阻止它通过跳转 frame 把读到的内容发送出去。只安装 来自可信发布者的应用。

每个应用在 设置 → 应用 → 全部应用 下都有自己的页面:是否在程序坞中、窗口隐藏时 是否继续运行(需要 background 权限),以及批准时授予的权限。

已安装 下的 移除 会移除该应用,并删除其中保存的数据。

见开发桌面应用。