neko-rooms REST API 完全参考:用代码自动化管理共享浏览器房间 📅 发布时间:2026/8/21 12:39:00 👁 浏览次数: neko-rooms REST API 完全参考用代码自动化管理共享浏览器房间【免费下载链接】neko-roomsSelfhosted collaborative browser - room management for n.eko项目地址: https://gitcode.com/gh_mirrors/ne/neko-roomsneko-rooms 是一个自托管的共享浏览器collaborative browser房间管理系统本质上是开源项目 n.eko 的房间管理中枢。它通过 Docker 动态创建、启动、停止和销毁一个个独立浏览器房间让多人远程共用浏览器。如果你管理着几十个房间逐一手动点击界面显然不现实——这时neko-rooms REST API就是你的自动化利器。本教程面向新手带你从零掌握 neko-rooms API 的每个端点、参数与真实调用示例实现用一行curl或脚本批量管理共享浏览器房间。为什么需要 neko-rooms REST API在图形界面里点按钮创建房间很快但当你需要以下场景时就力不从心了 定时批量创建/销毁房间如每天 9 点自动开课 程序化统计每个房间的在线人数与成员列表 配合 CI/CD 在镜像更新后自动重建所有房间️ 把房间管理嵌入你自己的网站或管理后台好在 neko-rooms 将全部能力封装成了一套简洁的REST API所有端点都在服务启动时自动挂载路由定义可查看源码 internal/api/api.go完整 OpenAPI 规范则记录在根目录的 OpenApi.yml 中——你可以直接用它对接到 Postman、Swagger 甚至自动生成客户端代码。快速上手调用前必须知道的 3 件事Base URLAPI 统一挂在/api前缀下例如http://你的服务器:8080/api/rooms。请求/响应格式除特殊说明外均为application/json返回值通常直接是 JSON 对象或数组。返回状态码成功返回200/204房间不存在返回404参数错误返回400内部错误返回500。 先试一个最简单的请求确认服务正常curl -s http://localhost:8080/api/config/rooms | python3 -m json.tool端点全景图一张表看懂全部接口 ️方法路径作用GET/api/config/rooms获取全局房间配置GET/api/rooms列出所有房间支持标签过滤POST/api/rooms创建新房间GET/api/rooms/{roomId}按 ID 获取房间信息GET/api/rooms/{roomName}/by-name按名称获取房间信息DELETE/api/rooms/{roomId}销毁房间GET/api/rooms/{roomId}/settings获取房间详细设置GET/api/rooms/{roomId}/stats获取房间实时统计POST/api/rooms/{roomId}/start启动房间POST/api/rooms/{roomId}/stop停止房间POST/api/rooms/{roomId}/restart重启房间POST/api/rooms/{roomId}/recreate按新配置重建房间GET/api/docker-compose.yaml导出全部房间为 docker-composeGET/POST/DELETE/api/pull查询/发起/停止镜像拉取GET/api/pull/sse拉取进度的 SSE 实时流GET/api/events房间事件的实时流支持 SSE房间管理 API 详解从创建到销毁的完整生命周期 房间的生命周期管理是 neko-rooms REST API 的核心能力对应源码实现在 internal/api/rooms.go。第一步创建共享浏览器房间curl -X POST http://localhost:8080/api/rooms \ -H Content-Type: application/json \ -d { name: demo-room, neko_image: m1k1o/neko:latest, max_connections: 10, user_pass: user123, admin_pass: admin123, screen: 1920x108060 }start查询参数默认为true即创建后自动启动传?startfalse则只注册不启动。返回的RoomEntry包含id、url、name、running、status、created等字段其中url就是用户访问该共享浏览器的地址。更多高级配置视频编码、音频码率、GPU、挂载、环境变量都支持通过RoomSettings传入字段定义见 OpenApi.yml 的RoomSettings章节。第二步查询房间状态按 ID 查询curl -s http://localhost:8080/api/rooms/bc04dace10 | python3 -m json.tool按名称查询适用于你不知道 ID 的情况curl -s http://localhost:8080/api/rooms/demo-room/by-name | python3 -m json.tool列出全部房间并按标签过滤例如只显示teama的房间curl -s http://localhost:8080/api/rooms?teama | python3 -m json.tool第三步查看统计与成员curl -s http://localhost:8080/api/rooms/bc04dace10/stats | python3 -m json.tool返回的RoomStats包含connections在线连接数、members成员数组含 id、显示名、是否管理员、是否静音、banned封禁列表、locked锁定状态等字段非常适合做监控面板。第四步控制房间启停# 停止房间 curl -X POST http://localhost:8080/api/rooms/bc04dace10/stop # 启动房间 curl -X POST http://localhost:8080/api/rooms/bc04dace10/start # 重启房间 curl -X POST http://localhost:8080/api/rooms/bc04dace10/restart第五步重建与销毁镜像升级或配置变更后用recreate一键按新参数重建start参数缺省时保持当前运行状态curl -X POST http://localhost:8080/api/rooms/bc04dace10/recreate \ -H Content-Type: application/json \ -d {screen: 2560x144060}销毁房间只需一个 DELETEcurl -X DELETE http://localhost:8080/api/rooms/bc04dace10一键拉取新镜像/api/pull 端点 neko-rooms 允许通过 API 直接触发 Docker 镜像拉取无需 SSH 登录服务器# 查询当前拉取状态 curl -s http://localhost:8080/api/pull # 发起拉取支持私有仓库账号 curl -X POST http://localhost:8080/api/pull \ -H Content-Type: application/json \ -d {neko_image: m1k1o/neko:latest} # 中断拉取 curl -X DELETE http://localhost:8080/api/pull拉取是耗时的异步操作前端常配合GET /api/pull/sse的 SSE 流实时展示每一层layer的下载进度实现进度条效果。实时监控房间变化/api/events 事件流 想要被动接收房间变化而不反复轮询GET /api/events就是为此设计的。它支持两种模式SSE 模式加?ssetrue返回text/event-stream每 1 分钟发送一次 ping 保活。JSON Lines 模式不加参数返回application/json格式的流式数据。事件类型定义在 internal/types/room.go包括created、started、ready、stopped、destroyed五种动作。实现逻辑见 internal/api/events.go示例curl -N http://localhost:8080/api/events?ssetrue你会看到类似event: rooms/data: {id:...,action:created}的事件流非常适合做自动化通知或实时刷新面板。导出配置与前端 SDK让集成更省心 导出 docker-composeGET /api/docker-compose.yaml会把当前全部房间导出为标准的 docker-compose 文件text/yaml方便备份或迁移。前端 SDK项目自带的 Web 界面本身就是 API 的忠实用户其 TypeScript 客户端由 OpenAPI 自动生成位于 client/src/api/api.ts包含RoomsApi、ConfigApi、DefaultApi等类。如果你用 JS/TS 开发可以直接复用这套代码免去手写请求。实战3 分钟写一个批量管理脚本 ️把上面的 API 串起来你就能实现一个简单的自动化运维脚本示例用 Bash curl#!/bin/bash BASEhttp://localhost:8080/api # 1. 清理所有已停止的房间 for id in $(curl -s $BASE/rooms | jq -r .[] | select(.runningfalse) | .id); do echo 删除已停止房间: $id curl -s -X DELETE $BASE/rooms/$id done # 2. 创建 3 个新房间并自动启动 for i in 1 2 3; do curl -s -X POST $BASE/rooms \ -H Content-Type: application/json \ -d {\name\: \auto-room-$i\, \neko_image\: \m1k1o/neko:chromium\} done # 3. 输出每个房间的访问地址 curl -s $BASE/rooms | jq -r .[] | \(.name) - \(.url)常见问题与最佳实践 ✅镜像未拉取时报错创建房间前请先用POST /api/pull拉取对应镜像如m1k1o/neko:chromium否则会返回No such image错误。存储未启用时无法挂载如果配置了mounts却收到 Mounts cannot be specified 的报错说明需要在服务端启用存储功能参见项目文档 docs/storage.md。多实例 mux 模式开启 mux 后max_connections设为0表示不限制由端口复用自动管理。合理使用标签给房间打上team、env等标签配合labels过滤参数可以极大简化批量查询逻辑。注意权限当前 API 尚无内置鉴权项目 Roadmap 中计划加入 bearer token请务必不要把 neko-rooms 端口直接暴露到公网。写在最后 neko-rooms REST API 麻雀虽小五脏俱全——从房间的创建、查询、统计、启停、重建、销毁到镜像拉取和实时事件流覆盖了共享浏览器房间运维的全流程。配合 OpenApi.yml 里的完整字段定义你可以轻松生成任意语言的 SDK把它融入自己的自动化体系。现在就动手用 curl 调用一次GET /api/rooms体验用代码掌控共享浏览器房间的快感吧【免费下载链接】neko-roomsSelfhosted collaborative browser - room management for n.eko项目地址: https://gitcode.com/gh_mirrors/ne/neko-rooms创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考