Skip to content

Commit 8c2648c

Browse files
committed
feat: 新增浏览器插件打码模式(extension)
1 parent cbf9cd1 commit 8c2648c

15 files changed

Lines changed: 2290 additions & 486 deletions

Dockerfile.captcha

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
FROM python:3.11-slim-bookworm
2+
3+
# 安装运行依赖
4+
RUN apt-get update && apt-get install -y --no-install-recommends \
5+
fonts-liberation fonts-noto-cjk \
6+
xvfb dbus dbus-x11 procps xdotool fluxbox \
7+
libnss3 libatk1.0-0 libatk-bridge2.0-0 libcups2 libdrm2 \
8+
libxkbcommon0 libxcomposite1 libxdamage1 libxrandr2 libgbm1 \
9+
libpango-1.0-0 libcairo2 libasound2 libxshmfence1 \
10+
&& rm -rf /var/lib/apt/lists/*
11+
12+
# 安装 CloakBrowser Python 包
13+
RUN pip install --no-cache-dir cloakbrowser
14+
15+
# 预下载二进制(ensure_binary 会在最后验证运行,build 阶段无 X11 会 segfault,忽略即可)
16+
RUN mkdir -p /opt/cloakbrowser \
17+
&& HOME=/opt/cloakbrowser python -c "from cloakbrowser import ensure_binary; ensure_binary()" || true
18+
19+
# 创建软链接(二进制已下载到 /opt/cloakbrowser/.cloakbrowser/*/chrome)
20+
RUN CLOAK_BIN=$(find /opt/cloakbrowser -name "chrome" -type f | head -1) \
21+
&& echo "CloakBrowser binary: $CLOAK_BIN" \
22+
&& ln -sf "$CLOAK_BIN" /usr/local/bin/cloakbrowser-bin \
23+
&& chmod -R a+rX /opt/cloakbrowser
24+
25+
# 生成 machine-id
26+
RUN dbus-uuidgen > /etc/machine-id
27+
28+
# 预创建 X11 socket 目录
29+
RUN mkdir -p /tmp/.X11-unix && chmod 1777 /tmp/.X11-unix
30+
31+
# 创建非 root 用户
32+
RUN groupadd -r chrome && useradd -r -g chrome -G audio,video chrome \
33+
&& mkdir -p /home/chrome/extension /home/chrome/data \
34+
&& chown -R chrome:chrome /home/chrome
35+
36+
# 复制插件文件
37+
COPY chrome-extension/ /home/chrome/extension/
38+
RUN chown -R chrome:chrome /home/chrome/extension
39+
40+
# 复制启动脚本
41+
COPY docker/entrypoint.captcha.sh /entrypoint.sh
42+
RUN chmod +x /entrypoint.sh
43+
44+
ENV DISPLAY=:99
45+
ENV WS_URL=""
46+
ENV AUTH_KEY=""
47+
ENV PROXY_URL=""
48+
49+
USER chrome
50+
WORKDIR /home/chrome
51+
52+
ENTRYPOINT ["/entrypoint.sh"]

README.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,24 @@ docker compose -f docker-compose.headed.yml logs -f
8484
- API 端口:`8000`
8585
- 进入管理后台后,将验证码方式设为 `browser``personal`
8686

87+
#### Docker 浏览器插件打码模式(extension)
88+
89+
> 支持在 PC 浏览器或安卓 Kiwi 浏览器中作为插件安装,也可直接通过 Docker 容器运行。
90+
> 容器内默认使用 [CloakBrowser](https://github.com/CloakHQ/CloakBrowser) + Xvfb ,插件自动连接到 `/ws/captcha`
91+
> 默认启动 2 个 solver 实例,后端根据客户端状态自动进行负载均衡。
92+
93+
```bash
94+
# 启动插件打码模式(首次启动需带 --build 编译指纹环境)
95+
docker compose -f docker-compose.captcha.yml up -d --build
96+
97+
# 查看日志
98+
docker compose -f docker-compose.captcha.yml logs -f captcha-solver
99+
100+
# 调整实例数量(如需 3 个并发处理容器)
101+
docker compose -f docker-compose.captcha.yml up -d --scale captcha-solver=3
102+
```
103+
104+
- **安卓手机节点**:手机端可用 [Kiwi Browser](https://kiwibrowser.com/) 安装插件。必须在系统设置中允许 Kiwi **自启动**,并将省电策略设为**无限制**(极其关键,否则锁屏必然断网掉线)。
87105
### 方式二:本地部署
88106

89107
```bash

0 commit comments

Comments
 (0)