hermes webapp 远程

这是什么(一句话)

  • Webapp = 网关Serve出来的网页版桌面:会话、群聊、插件、设置,和桌面里看到的一模一样,因为是同一份(单网关拥有会话)。
  • 和桌面的区别:桌面是装在本机的客户端;Webapp 是浏览器标签页,手机/别的电脑打开就能用,不用装任何东西。登录进去的标签页就是你本人。
  • 什么时候用:出差、机房现场、手机上看一眼,用浏览器;日常主力继续用桌面。

前提(1 分钟)

  • 桌面 v0.23.0,网关在线(hermes gateway status 看到 active (running))。
  • 现在它是关的:hermes config get webapp 显示 enabled: false。下面第 1 步打开。

用法一:本机浏览器(最先试这个)

  • 第 1 步,开开关:config.yaml 里加
    webapp:
      enabled: true
    其余 host/port 先别动(默认只绑本机 127.0.0.1:9120,最安全)。改完 hermes gateway restart(改这个开关必须重启网关)。
  • 第 2 步,确认在服务:hermes webapp --status,显示 serving 就行。
  • 第 3 步,打开:hermes webapp,自动开浏览器 + 一次性登录链接。只想拿链接自己贴:hermes webapp --no-open。
  • 验证:标签页里和桌面是同一会话——桌面发一条,标签页里立刻有;反过来也一样。改一条排队中的提示词,只跑一次。

用法二:局域网(手机/家里别的电脑)

  • 桌面 → 设置 → Web Access → 开局域网。手机连同 Wi-Fi,浏览器打开给的地址,登录。
  • 手机上开浏览器通知权限:bot 来消息时标签页标题闪 + 通知直达,点通知直接进对应聊天。

用法三:公网(出差远访,先看边界)

  • 同样走 设置 → Web Access,开公网 URL(登录后可见)。需要你自己的域名/TLS,这部分我没实测,先在局域网跑顺再碰。
  • 安全:未登录调 /api/status 拿不到 profile 名;CORS/WebSocket 只信本机 loopback;启动链接是登录用户私有的。

关法(随时可逆)

  • webapp.enabled 改回 false + hermes gateway restart,即刻消失,不留痕。
  • 踢掉所有已登录标签页:hermes webapp --sign-out(每个标签页下次要重新拿链接)。

出问题看这里

--status 显示没在服务开关改完没重启网关。先 hermes gateway restart 再查。
浏览器打不开页面本机用法只绑 127.0.0.1,必须在 max2 本机浏览器开;手机/别的电脑必须走用法二(Web Access 局域网)。
提示端口被占(9120)有别的进程占了 9120,换 port 或关掉对方。改 port 后重启网关。
标签页和桌面内容不一样正常不该发生(同一网关同一会话)。先两边各发一条看是否同步;还不同步,把两边看到的差异贴回来。

要我动手就一句话

  • “开 webapp 本机验证”:我就做用法一前 3 步(备份 config → 加开关 → 重启网关 → 确认 serving),不碰局域网/公网。
  • “开局域网”:再多做用法二,手机能连为止。