本地 Docker Compose¶
仓库现在已经内置了一套干净的本地 Docker 部署结构,放在 deploy/ 目录下。
包含的文件¶
Dockerfile— 面向本地运行的镜像构建文件deploy/ohmycaptcha/compose.yml— 应用服务deploy/ohmycaptcha/.env.example— 应用环境变量模板deploy/caddy/compose.yml— 反向代理服务deploy/caddy/Caddyfile— HTTPS 反代配置deploy/caddy/.env.example— Caddy 环境变量模板
推荐拓扑¶
推荐使用两个独立的 Compose 项目:
ohmycaptcha负责应用本体caddy负责 TLS 和公网入口
两个项目通过一个共享的外部 Docker 网络互通。
1. 创建共享网络¶
docker network create caddy_public
2. 启动 Caddy¶
cd deploy/caddy
cp .env.example .env
docker compose up -d
在 .env 中配置 DOMAIN 和 EMAIL。如果你不想使用 caddy_public,可以改 EDGE_NETWORK。
3. 启动 OhMyCaptcha¶
cd deploy/ohmycaptcha
cp .env.example .env
docker compose up -d --build
至少要配置:
CLIENT_KEYLOCAL_BASE_URLLOCAL_API_KEYLOCAL_MODELCLOUD_BASE_URLCLOUD_API_KEYCLOUD_MODEL
4. 验证服务¶
curl http://127.0.0.1:8000/api/v1/health
curl https://your-domain.example/api/v1/health
远端模型配置¶
你不需要在同一台主机上运行大模型。两个模型后端都可以指向远端 OpenAI-compatible 服务:
LOCAL_BASE_URL=https://your-openai-compatible-endpoint/v1
LOCAL_API_KEY=your-api-key
LOCAL_MODEL=gpt-5.4
CLOUD_BASE_URL=https://your-openai-compatible-endpoint/v1
CLOUD_API_KEY=your-api-key
CLOUD_MODEL=gpt-5.4
重要限制¶
- 任务状态只保存在内存中,所以这套部署默认应保持单实例,除非你另外改造任务存储。
- 浏览器类任务依然依赖 Playwright、Chromium、运行内存、IP 质量和目标站点行为。
- 当前代码里的
reCAPTCHA v2音频 fallback 会以特定请求格式调用CLOUD_*后端,并非所有 OpenAI-compatible 服务都能原样兼容。
小内存 VPS 建议¶
- 只跑一个应用容器
- 保持 Chromium 为
headless - 保留
shm_size: "512m" - 在
2 GB RAM主机上优先使用远端多模态模型,而不是本地推理