项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-08-09 · 当前星标 ★ 12215
使用教程
ℹ 本教程由 AI 依据该项目 README 整理,个别步骤可能需要按你的环境微调。
环境要求
- Docker(用于运行 camofox-browser 容器镜像)
- 一个自行生成的 CAMOFOX_API_KEY 密钥用于接口鉴权
- 可选:Railway CLI(部署到 Railway)
- 可选:Fly.io CLI(部署到 Fly.io)
安装与启动步骤
-
1准备服务密钥
按 README 的 Setup 章节先生成一个密钥,用于后续所有接口的 Bearer 鉴权;节选中该命令未完整给出,请以仓库文档为准。
-
2启动 Docker 容器
映射 9377 端口,通过环境变量注入密钥,并把本机 cookies 目录只读挂载进容器以复用登录态。
docker run -p 9377:9377 -e CAMOFOX_API_KEY="your-generated-key" -v ~/.camofox/cookies:/home/node/.camofox/cookies:ro camofox-browser -
3调用接口验证
用 curl 向会话的 cookies 接口发一次请求,验证服务已起来且密钥生效;被拒绝说明密钥不匹配。
curl -X POST http://localhost:9377/sessions/agent1/cookies -H 'Content-Type: application/json' -H 'Authorization: Bearer YOUR_CAMOFOX_API_KEY' -d '{"cookies":[{"name":"foo","value":"bar","domain":"example.com","path":"/","expires":-1,"httpOnly":false,"secure":false}]}' -
4调整浏览器配置
在 camofox.config.json 中设置 newPageTimeoutMs,控制新建标签页等待 Firefox 的超时时间,默认 10 秒。
-
5部署到 Railway
用 Railway CLI 关联并上传项目,再通过变量命令设置 API 密钥;密钥也可在 Railway 面板中设置。
railway link railway up railway variables set CAMOFOX_API_KEY="your-generated-key" -
6部署到 Fly.io
在 Fly.io 上以密钥形式写入 CAMOFOX_API_KEY,避免明文出现在配置文件中。
fly secrets set CAMOFOX_API_KEY="your-generated-key" -
7关闭遥测上报
不需要崩溃上报时,把 CAMOFOX_CRASH_REPORT_ENABLED 设为 false;也可用 CAMOFOX_CRASH_REPORT_URL 指向自建端点。
CAMOFOX_CRASH_REPORT_ENABLED=false
关键配置
| 配置项 | 必填 | 说明 | 示例 |
|---|---|---|---|
CAMOFOX_API_KEY | 是 | 接口鉴权用的密钥,通过环境变量或平台 secret 注入 | your-generated-key |
newPageTimeoutMs | 否 | 新建标签页等待 Firefox 创建页面的超时时间 | 10000 |
CAMOFOX_CRASH_REPORT_ENABLED | 否 | 设为 false 可完全关闭遥测与崩溃上报 | false |
CAMOFOX_CRASH_REPORT_URL | 否 | 把崩溃上报指向自建端点 | https://your-endpoint.example.com |
如何确认成功
curl 带 Authorization: Bearer 密钥请求 http://localhost:9377/sessions/agent1/cookies,能正常返回即启动成功。
常见问题
Q:必须用 Docker 部署吗?
A:README 主要给出 docker run 方式;也支持 Fly.io 和 Railway,通过各自 CLI 设置 CAMOFOX_API_KEY 后部署。
Q:端口是多少,可以改吗?
A:示例中服务使用 9377 端口,docker run 用 -p 9377:9377 映射;改端口需同步调整映射和请求地址。
Q:登录态/ cookies 怎么持久化?
A:把本机 ~/.camofox/cookies 挂载到容器的 /home/node/.camofox/cookies,示例中为只读挂载。
Q:担心遥测数据怎么办?
A:设置 CAMOFOX_CRASH_REPORT_ENABLED=false 关闭全部遥测,或用 CAMOFOX_CRASH_REPORT_URL 指向自己的端点。
Q:浏览器行为不稳定的怎么调?
A:在 camofox.config.json 调整 newPageTimeoutMs;上下文无响应时 Camofox 只重建该用户的上下文并重试一次。
注意事项
- README 节选中密钥生成命令被截断,未给出可复制命令,请以仓库 Setup 章节为准。
- CAMOFOX_API_KEY 属敏感信息,建议用平台 secret 或环境变量注入,不要提交到代码仓库。
- 服务会拉起 Camoufox 浏览器引擎子进程,YouTube 字幕提取时还会拉起 yt-dlp,属正常行为。
- 官方遥测端点可自行校验部署代码哈希,与仓库不一致说明运行的不是当前代码。
核心亮点
- 直接兼容 Puppeteer/Playwright API,迁移成本极低,无需重写代码。
- 内置多种反检测技术,有效绕过 Cloudflare 等主流防护,采集成功率显著提升。
- 基于 Firefox 深度定制,指纹随机化更自然,降低被识别为机器人的概率。
不足之处
- 项目较新,社区生态和文档完善度尚待观察。
- 基于 Firefox 而非 Chromium,部分依赖 Chrome 特性的扩展可能不兼容。
适用场景
- AI 智能体需要访问受 Cloudflare 保护的网站获取数据。
- 大规模网络爬虫需要规避反爬机制,提高数据采集效率。
- 自动化测试需要模拟真实用户行为,绕过 bot 检测。
替代项目
Puppeteer Extra、Playwright Stealth、Selenium Stealth
同类项目推荐
tampermonkey-scripts
开源
装上即用,AI聊天和论坛摸鱼效率翻倍
Greasemonkey、Tampermonkey scripts 油猴脚本集:AI chat全能助手、linux.do摸鱼...
ff-ruyijs
开源
用 Python 直接跑真实 Firefox 引擎执行网页 JS
This is a lightweight, headless browser purpose-built for AI agents (such as Codex o···
page-agent
开源
用大白话指挥网页干活,省去写脚本的麻烦。
JavaScript in-page GUI agent. Control web interfaces with natural language.
bhban_rpa
开源
零基础学Python,一天搞定半年重复工作
<6개월 치 업무를 하루 만에 끝내는 업무 자동화(생능출판사, 2020)>의 예제 코드입니다. ···
YuYuWechat
开源
定时发消息、批量群发,微信自动化小助手
一个让微信(非WEB版)定时循环发送消息/文件(cron表达式精确到分钟),批量群发消息,定···
tiktok-askreddit
开源
自动抓Reddit热帖,生成短视频并发布TikTok
A content generation & posting bot for TikTok, scraping posts from r/AskReddit
starlight-llms-txt
开源
Starlight 文档一键生成 llms.txt,喂给大模型更省事
Generate llms.txt files to train large language models on your Starlight documentati···
Light-skills
开源
装上一套技能包,让 AI 帮你搞定科研写作和竞赛项目。
A research workflow skill pack connecting literature, experiments, figures, writing,···
lever
开源
给 Copilot 加技能,把重复活儿变成安全自动化
Copilot skills for building feedback loops, delegating safely, and moving repeatable···
