Skip to content

skVPN/light-browser

Repository files navigation

Light Browser

增强版轻量级浏览器服务,基于 Camoufox 构建,集成 noVNC 远程桌面功能。

功能特性

  • 🌐 Camoufox 浏览器服务: 提供 Chrome DevTools Protocol (CDP) 接口
  • 🖥️ noVNC 远程桌面: 通过浏览器直接查看和操作桌面环境
  • 📊 进程监控: 自动监控服务健康状态,异常时自动重启
  • 🔔 飞书通知: 服务异常时发送飞书机器人通知
  • 🐳 Docker 部署: 支持 Docker 和 Docker Compose 部署
  • 🔧 配置灵活: 支持环境变量配置

端口说明

  • 9222: Chrome DevTools Protocol (CDP) 端口
  • 6080: noVNC Web 界面端口

快速开始

1. 环境准备

确保已安装:

  • Docker
  • Docker Compose

2. 配置环境变量

# 复制环境变量模板
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

3. 启动服务

Linux/macOS

# 启动服务
./start.sh start

# 查看状态
./start.sh status

# 查看日志
./start.sh logs

# 停止服务
./start.sh stop

Windows

# 启动服务
start.bat start

# 查看状态
start.bat status

# 查看日志
start.bat logs

# 停止服务
start.bat stop

直接使用 Docker Compose

# 启动服务
docker-compose up -d

# 查看日志
docker-compose logs -f

# 停止服务
docker-compose down

4. 访问服务

启动成功后,可以通过以下地址访问:

使用说明

noVNC 远程桌面

  1. 打开浏览器访问 http://localhost:6080/vnc.html
  2. 点击 "Connect" 连接到远程桌面
  3. 可以在远程桌面中操作浏览器和其他应用

CDP 接口

可以通过 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秒(可配置)
  • 超过限制后停止自动重启

飞书通知

配置飞书机器人后,会在以下情况发送通知:

  • 服务启动成功
  • 服务异常重启
  • 重启失败
  • 进程意外终止

故障排除

常见问题

  1. 端口被占用

    # 检查端口占用
    netstat -tulpn | grep :9222
    netstat -tulpn | grep :6080
    
    # 修改 .env 文件中的端口配置
  2. 容器启动失败

    # 查看详细日志
    docker-compose logs
    
    # 检查资源使用情况
    docker stats
  3. 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_*.log

开发说明

目录结构

light-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 项目构建,请遵循相应的开源许可证。

About

轻量云浏览器

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors