这是什么(一句话)
- Webapp = 网关Serve出来的网页版桌面:会话、群聊、插件、设置,和桌面里看到的一模一样,因为是同一份(单网关拥有会话)。
- 和桌面的区别:桌面是装在本机的客户端;Webapp 是浏览器标签页,手机/别的电脑打开就能用,不用装任何东西。登录进去的标签页就是你本人。
- 什么时候用:出差、机房现场、手机上看一眼,用浏览器;日常主力继续用桌面。
前提(1 分钟)
- 桌面 v0.23.0,网关在线(
hermes gateway status看到active (running))。 - 现在它是关的:
hermes config get webapp显示enabled: false。下面第 1 步打开。
用法一:本机浏览器(最先试这个)
- 第 1 步,开开关:
config.yaml里加
其余 host/port 先别动(默认只绑本机webapp: enabled: true127.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),不碰局域网/公网。
- “开局域网”:再多做用法二,手机能连为止。