Memoh Lite 是一个用于给 Memoh 提供 Compute Use 能力的实验性项目。
项目目标是提供一套可远程控制、可自动化执行任务的浏览器计算环境,支持后续接入 Memoh 的任务编排与执行链路。
当前实现已经移除 Neko 运行时,核心由本仓库提供:
lite-web:Go 服务,启动并管理 Chromium,暴露极简 Web 客户端、WebRTC 信令和 Chromium CDP。- WebRTC:使用 Pion 建立 PeerConnection,通过 DataChannel 传输 Chromium screencast JPEG 帧和鼠标/键盘/导航输入。
- Browser:通过 Chrome DevTools Protocol 定时执行
Page.captureScreenshot,并用 CDPInput.*将客户端输入注入同一个 Chromium 页面。 worker:任务执行服务(browser-use/playwright),通过http://lite-web:9222的 CDP 驱动同一个 Chromium 实例。
这个版本保留最核心能力:远程看见浏览器、鼠标键盘控制、地址跳转、worker 通过 CDP 自动化。同样明确不包含聊天、文件传输、麦克风或完整桌面环境。
cp .env.example .env至少配置:
OPENAI_API_KEYOPENAI_BASE_URL(可选)BROWSER_USE_MODEL(可选)
docker compose up -d --build- Memoh Lite Web:
http://localhost:${MEMOH_LITE_HTTP_PORT:-8080} - Worker 健康检查:
http://localhost:7070/health
Web 页面无需登录。点击 Connect 后会建立 WebRTC DataChannel,页面画面来自服务端 Chromium 的 CDP screencast。
| 变量 | 默认值 | 说明 |
|---|---|---|
MEMOH_LITE_HTTP_PORT |
8080 |
Memoh Lite Web 映射到本机的端口 |
BROWSER_START_URL |
https://www.google.com |
Chromium 启动后打开的初始页面 |
BROWSER_WIDTH |
1280 |
浏览器 viewport 宽度 |
BROWSER_HEIGHT |
720 |
浏览器 viewport 高度 |
BROWSER_FRAME_QUALITY |
65 |
CDP screencast JPEG 质量 |
BROWSER_FRAME_EVERY |
2 |
CDP screencast 每 N 帧取一帧 |
WEBRTC_UDP_MIN |
52000 |
Pion WebRTC UDP 端口范围起点 |
WEBRTC_UDP_MAX |
52100 |
Pion WebRTC UDP 端口范围终点 |
WEBRTC_NAT1TO1 |
127.0.0.1 |
WebRTC host candidate 地址;局域网/远程访问时改为宿主机可达 IP |
WORKER_CHROME_CDP_URL |
http://lite-web:9222 |
Worker 使用的 Chromium CDP 地址 |
WORKER_URL |
http://127.0.0.1:7070 |
Worker 对外地址 |
GET /health:状态检查POST /run:启动任务GET /job/{job_id}:查询任务状态POST /stop/{job_id}:停止任务
- 本项目为实验性项目,接口和部署形态可能调整。
- 目前 WebRTC 传输的是 DataChannel 上的 JPEG 帧,而不是 RTP H264/VP8 视频轨;优点是实现薄、依赖少,缺点是效率不如真正的视频编码链路。
- Chromium CDP 只在 Docker 网络内给 worker 使用,Compose 没有把
9222映射到宿主机。 .chrome-profile/会作为 Chromium profile 持久化目录挂载。