增强版轻量级浏览器服务,基于 Camoufox 构建,集成 noVNC 远程桌面功能。
- 🌐 Camoufox 浏览器服务: 提供 Chrome DevTools Protocol (CDP) 接口
- 🖥️ noVNC 远程桌面: 通过浏览器直接查看和操作桌面环境
- 📊 进程监控: 自动监控服务健康状态,异常时自动重启
- 🔔 飞书通知: 服务异常时发送飞书机器人通知
- 🐳 Docker 部署: 支持 Docker 和 Docker Compose 部署
- 🔧 配置灵活: 支持环境变量配置
- 9222: Chrome DevTools Protocol (CDP) 端口
- 6080: noVNC Web 界面端口
确保已安装:
- Docker
- Docker Compose
# 复制环境变量模板
cp .env.example .env
# 编辑配置文件
vim .env主要配置项:
# Camoufox 配置
CAMOUFOX_PORT=9222
# noVNC 配置
NOVNC_PORT=6080
# 飞书机器人配置(可选)
FEISHU_WEBHOOK=https://open.feishu.cn/open-apis/bot/v2/hook/your-webhook-key
FEISHU_SECRET=your-secret-key
# 监控配置
MONITOR_INTERVAL=30
MAX_RESTART_COUNT=5
RESTART_WINDOW=300# 启动服务
./start.sh start
# 查看状态
./start.sh status
# 查看日志
./start.sh logs
# 停止服务
./start.sh stop# 启动服务
start.bat start
# 查看状态
start.bat status
# 查看日志
start.bat logs
# 停止服务
start.bat stop# 启动服务
docker-compose up -d
# 查看日志
docker-compose logs -f
# 停止服务
docker-compose down启动成功后,可以通过以下地址访问:
- noVNC 界面: http://localhost:6080/vnc.html
- CDP WebSocket: ws://localhost:9222
- 打开浏览器访问 http://localhost:6080/vnc.html
- 点击 "Connect" 连接到远程桌面
- 可以在远程桌面中操作浏览器和其他应用
可以通过 CDP 接口控制浏览器:
// 连接到 CDP
const CDP = require('chrome-remote-interface');
CDP(async (client) => {
const {Network, Page, Runtime} = client;
await Network.enable();
await Page.enable();
// 导航到页面
await Page.navigate({url: 'https://example.com'});
// 等待页面加载
await Page.loadEventFired();
// 执行 JavaScript
const result = await Runtime.evaluate({
expression: 'document.title'
});
console.log('页面标题:', result.result.value);
});服务内置监控功能,会定期检查:
- Camoufox 进程状态
- VNC 相关进程状态
- 端口监听状态
当检测到异常时,会自动尝试重启服务。重启策略:
- 最大重启次数: 5次(可配置)
- 重启计数窗口: 300秒(可配置)
- 超过限制后停止自动重启
配置飞书机器人后,会在以下情况发送通知:
- 服务启动成功
- 服务异常重启
- 重启失败
- 进程意外终止
-
端口被占用
# 检查端口占用 netstat -tulpn | grep :9222 netstat -tulpn | grep :6080 # 修改 .env 文件中的端口配置
-
容器启动失败
# 查看详细日志 docker-compose logs # 检查资源使用情况 docker stats
-
noVNC 连接失败
# 检查 VNC 服务状态 docker-compose exec light-browser ps aux | grep vnc # 重启服务 ./start.sh restart
# 查看容器日志
docker-compose logs -f
# 查看应用日志(容器内)
docker-compose exec light-browser tail -f /app/logs/light-browser_*.loglight-browser/
├── Dockerfile # Docker 镜像构建文件
├── docker-compose.yml # Docker Compose 配置
├── start.py # 主启动脚本
├── start.sh # Linux/macOS 管理脚本
├── start.bat # Windows 管理脚本
├── .env.example # 环境变量模板
├── logs/ # 日志目录
└── README.md # 说明文档
可以通过环境变量自定义配置:
# 显示配置
DISPLAY=:99
# 监控配置
MONITOR_INTERVAL=30 # 监控检查间隔(秒)
MAX_RESTART_COUNT=5 # 最大重启次数
RESTART_WINDOW=300 # 重启计数窗口(秒)
# 资源限制
MEMORY_LIMIT=2G # 内存限制
CPU_LIMIT=1.0 # CPU 限制本项目基于原 Camoufox 项目构建,请遵循相应的开源许可证。