Skip to content

连接服务器

Add Server Wizard 是连接 RoqueOS 前端(在 https://roqueos.com.br/app)到您的 RoqueOS Server 的官方路径。它在 Settings → Server → 添加服务器 中。

替换了旧流程,该流程要求用户在浏览器中打开 <server>:27021/admin。现在一切都发生在应用内部。

何时使用

  • 新安装的服务器install.sh 运行,尚未有 API Keys)— wizard 创建第一个 admin key
  • 已在使用的服务器(您已保存 apiKey + apiSecret)— wizard 验证并添加到列表
  • 切换服务器 — 添加第二个服务器,通过菜单栏中的切换器在它们之间切换

引导流程(空白服务器)

7 个步骤。总时间: ~1 分钟。

Step 1 — URL

粘贴服务器 URL。接受:

  • http://localhost:27021(Docker 在您的机器上运行 — 通过 loopback 工作)
  • https://server.example.com(在 Cloudflare Tunnel 或 TLS 证书后面)

Wizard 规范化协议(server.example.com → 自动 https://server.example.com),并在继续之前检测已注册的服务器。

⚠️ HTTP vs HTTPS — 浏览器限制

前端 roqueos.com.br/app 在 HTTPS 上运行。根据现代浏览器的设计(Mixed Content 策略),HTTPS 页面 无法调用 HTTP API — 浏览器在请求离开机器之前就静默阻止它。

这意味着尝试连接 http://192.168.1.50:27021(LAN)或 http://server.com:27021(公共)将失败,显示"couldn't connect",看起来像服务器错误,但实际上是浏览器阻止。

Wizard 为您检测这一点 并在请求执行之前显示解释问题的黄色横幅。三种解决方案,按优先顺序:

1. 通过 Cloudflare Tunnel 的 HTTPS(推荐)

免费,即插即用。install.sh 已经具有内置支持:

bash
curl -fsSL https://roqueos.com.br/install.sh | bash -s -- --update
# 之后: Settings → Server → Cloudflare Tunnel → 连接

结果: 您的服务器将位于 https://<id>.cloud.roqueos.com.br 或您自己的域名。自动 TLS,无需调整防火墙,无需公共 IP。

完整 install.sh + Cloudflare Tunnel 指南 →

2. 使用桌面或移动应用

原生包装器(Microsoft Store、Play Store、App Store)没有混合内容限制 — 它们运行本机代码,而不是严格 HTTPS 的网页。

适用于: 您不想/不能配置 tunnel 的 homelab 环境。

3. localhost 上的服务器(loopback)

http://localhost:27021http://127.0.0.1:27021http://[::1]:27021 由现代浏览器通过 Secure Contexts spec 被视为安全上下文 — 因此即使前端 HTTPS 也能工作。

适用于: 本地开发,在上传到真实服务器之前测试。

Step 2 — Detect

Wizard 并行命中 2 个匿名端点:

  • GET /health/version-info — 版本 + minClientVersion
  • GET /admin/setup — 如果返回 { needsSetup: true },则服务器为空

这里也检查版本兼容性。如果服务器为 v1.0.10 但客户端(前端)需要 v1.0.13+,显示友好的"先更新服务器"警告 + install.sh --update 的链接。

Step 3 — Bootstrap(空白服务器)

"创建 admin key" 按钮 → POST /admin/setup(在服务器上按 IP 限速以避免 setup race)。

返回 { apiKey, apiSecret },wizard 在下一步中显示。

竞争处理: 如果 2 个浏览器同时尝试 setup,第二个会收到 error: 'Setup already completed',wizard 转移到步骤 5(手动 credentials)。

Step 4 — keyCreated

显示返回的 apiKey + apiSecret,在 带复制按钮的只读字段 中。

⚠️ 关键 UX 保护:

  • 模态具有 closeOnBackdrop=false(点击外部不关闭)
  • X 按钮打开确认子模态("您是否保存了 credentials?")
  • 必需的复选框 "我已保存我的 credentials" 启用 Next 按钮
  • 如果您未保存就关闭,key 保留在服务器上但您丢失 — 只能通过 /admin HTML 旧版恢复

Step 5 — credentials(服务器已配置)

如果在步骤 2 检测指出 setup 已完成,则直接跳转到此处:

  • 字段 apiKey
  • 字段 apiSecret
  • 链接"打开服务器 admin 面板 ↗"(在新选项卡中打开 <server>/admin HTML 旧版)

旧版页面继续作为恢复和自动化的后门。

Step 6 — 名称

唯一字段: 服务器的友好名称(出现在菜单栏的 Server Switcher 中)。

建议默认: URL.hostname(例如: demo.level-hard.comlocalhost)。

Step 7 — 完成

Wizard 调用:

  • addBackendService({ name, url }) — 保存到 backendSettings.services 列表
  • setApiCredentials(apiKey, apiSecret, serviceId) — 将 creds 存储在 Firestore 中
  • setActiveBackendService(serviceId) — 使其活跃

模态关闭。服务器已连接。您处于 Server Mode 中。

Server Switcher(菜单栏)

当您注册了 2+ 服务器时,菜单栏(左上角)会出现一个下拉菜单,显示活跃服务器。点击切换。

当前状态(2026 年 5 月): 组件 ROSServerSwitcher 在之前的会话之后尚未重建 — 该功能已计划但尚未交付。目前,在服务器之间切换是通过 Settings → Server → 点击所需的服务器。

公共演示服务器

要在不安装任何东西的情况下测试 Server Mode,RoqueOS 已经附带了 预配置的公共演示服务器:

  1. https://roqueos.com.br/app 登录
  2. 转到 Settings → Server
  3. DEMO 服务器已经出现在列表中 — 点击激活

无需粘贴 URL、apiKey 或 apiSecret — credentials 嵌入到客户端并直接工作。

什么是演示: RoqueOS Server 的真实实例,由创始人更新,每日清理(孤立容器、> 24h 的 agents/sessions、悬空卷)。限制:

  • 非管理员看不到 Server Admin Panel(安全门)
  • Cloud Gaming 可以清除僵尸会话
  • 容器在 prune 之前保留 ~24h
  • 在所有访客之间共享

适用于: 探索 Containers、Terminal、嵌入式 VS Code、Files。不适用于: 长期持久性、敏感或重要数据 — RoqueOS 中登录的任何人都可能在并行使用相同的演示。

对于实际使用,请使用 one-liner 安装您自己的服务器。

故障排除

症状解决方案
"服务器不可访问"确认 curl <url>/health 返回 200。可能是端口 27021 未释放或 Docker 已停止
"服务器已注册"Wizard 检测到重复。转到 Settings → Server 并选择现有的
"服务器已过时"在服务器上运行 --update: curl -fsSL https://roqueos.com.br/install.sh | bash -s -- --update
"Setup already completed" 但您从未配置过重置: docker exec roqueos-server sqlite3 /app/data/roqueos.db "DELETE FROM api_keys;"(注意 — 删除所有现有 keys)
服务器已添加但 Settings 返回空可能缺少 Firestore 登录。检查 DevTools console 是否出现 Firestore: PERMISSION_DENIED

参考