Server Admin Panel
连接的 RoqueOS 服务器的管理面板,嵌入到应用中(Launchpad → Server Admin)。替换 <your-server>:27021/admin 中的旧版 HTML — 它继续作为后备工作(紧急情况、脚本),但本地面板是每天所有事情发生的地方。
始终可用的部分
| 部分 | 它做什么 |
|---|---|
| 监控 | CPU/RAM/磁盘/Docker 实时、顶级容器 |
| API Keys | 创建/撤销密钥、查看权限、按密钥的日志 |
| 使用历史 | 按 API Key 的日志(请求数、唯一 IP、活动) |
| Cloudflare Tunnel | tunnel 的状态、创建/删除路由、子域列表 |
| 网络 | 配置的 LAN IP、其他保存的 LAN 用于直接访问 |
| 字幕 | Video Player 的 OpenSubtitles / Subdl 提供商 |
| 资源和版本 | 服务器版本、可用更新、活动功能 |

多租户部分(按 flag 门控)
5 个额外部分 仅当在 Admin Panel → Settings → Cloud feature flags 中启用 multiTenant flag 时 出现:
| 部分 | 它做什么 |
|---|---|
| 用户和邀请 | 邀请人们与您一起使用服务器 |
| 应用权限 | 策略模板(允许 / 标准 / 限制) |
| 资源使用 | CPU/RAM/磁盘/带宽聚合(LGPD 友好) |
| 警报 | 通过 email/Slack 的 "使用量 > X% 时通知" 规则 |
| 审计日志 | 谁做了什么以及何时(元数据,从不是内容) |
为什么按 flag 门控
多租户需要新的 schema(Firestore + 服务器上的 SQLite),在所有部署中尚未即插即用。默认保持开启会暴露 UI 但没有后端就绪。当 roqueos-server 中的 members 模块发货时,flag 将默认为 ON。
如何现在打开(仅 Admin Panel — 不是按用户):
- 在
/app中管理员登录 - Launchpad → Admin Panel
- Settings → 滚动到 Cloud Product(高级功能)
- 打开 Multi-tenant(成员 + 权限 + 警报) → Save
- 返回 Server Admin Panel → 侧边栏显示 5 个新项目
用户和邀请

- "邀请用户" 按钮打开带有 email + 角色(Owner/Admin/User)的模态
- 通过服务器的 SMTP 发送带有接受链接的 email
- 接受后,用户进入带有状态徽章(待处理/活跃/已撤销)的列表
- 每行的操作菜单允许 撤销访问(返回到已撤销列表,不删除数据)
角色:
- Owner: 您(每个服务器 1 个)
- Admin: 管理其他用户和策略,查看所有
- User: 根据活跃策略使用应用
应用权限

3 个预配置的模板:
| 模板 | 谁看什么 |
|---|---|
| 允许 | 所有应用对所有角色开放。可信任的小团队。 |
| 标准 | Admin 看所有。User 看生产力、媒体、实用程序(不是 Server Admin)。 |
| 限制 | User 只看 Finder、Notes、Browser 和 Chat。其他一切都隐藏。 |
应用模板是破坏性的 — 重写现有的每用户覆盖。这就是为什么有 必须的确认模态:

模态列出操作的 3 个后果:
- ✓ 将服务器策略重写为选定的模板
- ⚠ 删除所有现有的每用户覆盖(无法撤消)
- ⟲ 之前状态的备份在
/admin/policies/history中保留 30 天
用户必须单击 应用模板(红色按钮)以确认。取消 是默认。
资源使用

显示聚合消耗的卡片:
- CPU: 主机的平均使用率 %
- 内存 RAM: 使用的 GB / 总
- 磁盘: 使用的 GB / 分配的总
- 每月带宽: 传输的 GB / Hetzner 配额(标准计划 20 TB)
按阈值着色的带宽:
- < 75%: 蓝色渐变(健康)
- 75-90%: 橙色渐变(注意)
- 90%+: 红色渐变(关键)
LGPD 隐私(页脚的蓝色免责声明): 我们 仅 收集聚合指标(% CPU、MB RAM)。绝不 收集用户文件、会话或对话的内容。
警报

页头的 LGPD 横幅(蓝色,始终可见):
LGPD 隐私 — 警报仅观察聚合指标(% CPU、MB RAM)。绝不会观察用户文件、会话或对话的内容。
创建规则:
- 指标: CPU / RAM / 磁盘 / 带宽
- 运算符:
≥ - 阈值: number
- 通道: email(默认)、Slack/Discord webhook(已计划)
- 状态: 活跃 / 已禁用(行上的切换)
触发器触发时,警报通过服务器的 SMTP 发送 + 记录在审计日志中。
审计日志

LGPD 横幅: 日志仅记录 操作的元数据(谁、何时、类型) — 绝不是操作的内容。
记录的事件:
member.invited(email + 角色)member.revokedpolicy.template_applied(哪个模板)policy.override_changed(用户 X、应用 Y、before/after)alert.triggered(规则 X、值 Y)apikey.created/apikey.revokedserver.config.changed
保留: 400 天(与 Google Cloud Data Access Audit Log 标准 LGPD 要求一致)。
公共演示
想在不安装任何东西的情况下体验?https://demo.level-hard.com 是公共演示服务器,由创始人通过 cleanup-demo.sh(每日 cron)更新。限制:
- 非管理员: 可以使用应用但看不到 Server Admin(
windowManagement.js:88中的安全门) - 多租户在演示中故意 OFF(避免污染)
- 容器 + 文件每天清理
要测试多租户,您需要通过 install.sh 自己安装并翻转 flag。
交叉引用
- Add Server Wizard — 如何连接新安装的服务器
- 卷和备份 — 多租户表的数据存储在哪里
- RoqueOS Cloud — 已激活多租户的托管版本
- 记忆
multi_user_roles_decision.md(内部) — LGPD 理由 + 架构