Skip to content

chen-ran/MemohLite

Repository files navigation

Memoh Lite

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,并用 CDP Input.* 将客户端输入注入同一个 Chromium 页面。
  • worker:任务执行服务(browser-use/playwright),通过 http://lite-web:9222 的 CDP 驱动同一个 Chromium 实例。

这个版本保留最核心能力:远程看见浏览器、鼠标键盘控制、地址跳转、worker 通过 CDP 自动化。同样明确不包含聊天、文件传输、麦克风或完整桌面环境。

运行方式

1) 准备配置

cp .env.example .env

至少配置:

  • OPENAI_API_KEY
  • OPENAI_BASE_URL(可选)
  • BROWSER_USE_MODEL(可选)

2) 启动

docker compose up -d --build

3) 访问

  • 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 对外地址

API(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 持久化目录挂载。

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors