本文档包含生产环境部署、Docker 服务说明、HF Space 配置和 CF Worker 设置。
- Docker 24+ & Docker Compose v2
- 域名 + SSL 证书(推荐 Cloudflare 托管或 Let's Encrypt)
- PostgreSQL 16+(Docker Compose 已包含)
- 服务器配置:2C4G 起步(主服务),Worker 节点部署在 HF Space
# 1. 克隆仓库
git clone https://github.com/xiaolajiaoyyds/regplatformm.git
cd regplatformm
# 2. 配置环境变量
cp .env.example .env
vim .env # 必须修改 DATABASE_URL、JWT_SECRET
# 3. 启动服务
docker compose -f docker-compose.prod.yml up -d
# 4. 检查状态
docker compose -f docker-compose.prod.yml ps编辑 .env 文件,以下为必填项:
# 数据库(使用 Docker Compose 内置 PostgreSQL)
DATABASE_URL=postgres://postgres:你的数据库密码@db:5432/regplatform?sslmode=disable
# JWT 密钥(≥32 字符,推荐使用 openssl rand -hex 32 生成)
JWT_SECRET=你的JWT密钥
# 生产模式
GIN_MODE=release
DEV_MODE=false可选配置:
# 指定管理员用户名(该用户注册时自动成为管理员)
# 留空则第一个注册的用户自动成为管理员
ADMIN_USERNAME=
# SSO 对接(可选,用于与 New-API 等外部系统集成)
SSO_SECRET=
# Redis(可选,提升多实例下的缓存一致性)
REDIS_URL=redis://redis:6379
# CORS 白名单(生产环境,逗号分隔)
CORS_ORIGINS=https://yourdomain.com- 访问
http://your-server:8000 - 点击「注册」创建第一个账号(自动成为管理员)
- 进入 Dashboard → 管理面板 → 系统设置
- 配置以下关键设置:
| 设置项 | 说明 |
|---|---|
| YYDS Mail 服务地址 | 临时邮箱 API 地址(yydsmail_base_url),用于接收注册验证码 |
| GPTMail API Key | GPTMail 邮箱服务密钥 |
| Turnstile 求解服务 | 验证码求解服务地址(默认 http://turnstile-solver:5072) |
| 注册服务 URL | OpenAI/Grok/Kiro 各平台的注册 Worker 地址 |
| 默认代理 | 注册任务使用的 HTTP/SOCKS5 代理地址 |
server {
listen 443 ssl http2;
server_name your-domain.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
# 前端 + API
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
# WebSocket / SSE
location /ws/ {
proxy_pass http://127.0.0.1:8000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_read_timeout 86400s;
}
}
server {
listen 80;
server_name your-domain.com;
return 301 https://$host$request_uri;
}| 服务 | 镜像 | 必需 | 端口 | 说明 |
|---|---|---|---|---|
| db | postgres:16-alpine |
是 | 5432 | PostgreSQL 数据库 |
| app | regplatformm:latest |
是 | 8000 | 主服务(Go 后端 + Vue 前端) |
| xray | teddysun/xray:latest |
否 | - | 代理工具(需要自建代理时启用) |
| turnstile-solver | regplatformm-turnstile-solver:latest |
推荐 | 5072 | Turnstile 验证码求解(Camoufox) |
| cf-bypass-solver | regplatformm-cf-bypass-solver:latest |
否 | 5073 | Cloudflare 挑战绕过 |
| openai-reg | regplatformm-openai-reg:latest |
否 | 5075 | OpenAI 本地注册 Worker(替代 HF Space) |
| aws-builder-id-reg | regplatformm-aws-builder-id-reg:latest |
否 | 5076 | Kiro/AWS BuilderID 注册 Worker |
| camoufox-reg | regplatformm-camoufox-reg:latest |
否 | 5074 | 通用 Camoufox 浏览器注册(需 --profile browser-mode) |
如果使用 HF Space 作为 Worker 节点,只需启动 db 和 app:
docker compose -f docker-compose.prod.yml up -d db appdocker compose -f docker-compose.prod.yml up -d开发环境使用本地构建而非预构建镜像,适合修改代码后调试:
# 启动数据库
docker compose up -d db
# 本地运行后端
go run cmd/server/main.go
# 本地运行前端(另一个终端)
cd web && npm run devHF Space 用于部署分布式 Worker 节点,实现注册任务的弹性扩缩容。
Go 后端 → POST → CF Worker(负载均衡)
│ 路径前缀匹配
├── /openai/* → HFNP 节点池(Go HTTP Worker)
├── /grok/* → HFGS 节点池(Go HTTP Worker)
├── /kiro/* → HFKR 节点池(Python + Camoufox)
├── /gemini/* → HFGM 节点池(Python + Camoufox)
└── /ts/* → HFTS 节点池(Turnstile 求解)
每种服务对应一个 HF Space Docker 模板:
| 目录 | 服务 | 运行时 | 说明 |
|---|---|---|---|
HFNP/ |
OpenAI | Go 二进制 | 从 GitHub Release 下载 inference-runtime.zip |
HFGS/ |
Grok | Go 二进制 | 从 GitHub Release 下载 stream-worker.zip |
HFKR/ |
Kiro | Python + Camoufox | 从 GitHub Release 下载 browser-agent.zip |
HFGM/ |
Gemini | Python + Camoufox | 从 GitHub Release 下载 gemini-agent.zip |
HFTS/ |
Turnstile | Python + Camoufox | 从 GitHub Release 下载 net-toolkit.zip |
方式一:管理后台部署(推荐)
- 管理后台 → HF Space Tab → Token 管理 → 添加 HF Token
- 验证 Token 可用
- Space 管理 → 批量部署 → 选择服务类型和数量
- 部署完成后点击「同步 CF Worker」更新路由
方式二:命令行批量部署
# 准备 HF Token 文件
echo '["hf_your_token_1", "hf_your_token_2"]' > scripts/hf_tokens.json
# 部署 5 个 OpenAI Worker
python scripts/hf_deploy.py \
--service openai \
--count 5 \
--release-url "https://github.com/your-repo/releases/download/inference-runtime-latest/inference-runtime.zip" \
--gh-pat "$GH_PAT"# 检查所有 Kiro 节点健康状态(dry-run)
python scripts/hf_autoscaler.py --service kiro --dry-run
# 自动修复:删除封禁节点 + 补充新节点到目标数
python scripts/hf_autoscaler.py --service kiro --target 5 \
--release-url "..." --gh-pat "$GH_PAT" \
--cf-account-id "$CF_ACCOUNT_ID" \
--cf-api-token "$CF_API_TOKEN" \
--cf-worker-name "your-worker-name"CF Worker 用于统一路由请求到各 HF Space 节点,并提供定时保活。
cd cloudflare
# 编辑 wrangler.toml,设置你的 Worker 名称
vim wrangler.toml
# 部署
npx wrangler deploy在 Cloudflare Dashboard → Workers → 你的 Worker → Settings → Variables 中添加:
| 变量名 | 值 | 说明 |
|---|---|---|
OPENAI_SPACES |
https://user1-space1.hf.space https://user2-space2.hf.space |
OpenAI 节点 URL 列表(空格分隔) |
GROK_SPACES |
同上格式 | Grok 节点列表 |
KIRO_SPACES |
同上格式 | Kiro 节点列表 |
GEMINI_SPACES |
同上格式 | Gemini 节点列表 |
TS_SPACES |
同上格式 | Turnstile 节点列表 |
也可通过管理后台「HF Space → 同步 CF Worker」自动更新。
Worker 内置 Cron Trigger,每 2 小时自动访问所有 Space 的 /health 端点防止休眠。
在 wrangler.toml 中配置:
[triggers]
crons = ["0 */2 * * *"]在管理后台 → 系统设置中配置注册服务地址,指向 CF Worker 域名:
| 设置项 | 示例值 |
|---|---|
openai_reg_url |
https://your-worker.workers.dev |
grok_reg_url |
https://your-worker.workers.dev |
kiro_reg_url |
https://your-worker.workers.dev |
Go 后端会自动拼接 /{platform}/register 路径。
push 到 main 分支后,GitHub Actions 自动构建:
| Job | 产物 | 用途 |
|---|---|---|
build-app |
Docker 镜像 | 主服务部署 |
build-openai-worker |
inference-runtime.zip |
HFNP Space 下载 |
build-grok-worker |
stream-worker.zip |
HFGS Space 下载 |
build-kiro-reg |
browser-agent.zip |
HFKR Space 下载 |
build-gemini-reg |
gemini-agent.zip |
HFGM Space 下载 |
build-ts-solver |
net-toolkit.zip |
HFTS Space 下载 |
build-macmini-* |
Docker 镜像 x5 | Mac Mini 本地部署 |
deploy-cf-worker |
- | 自动部署 CF Worker |
在 GitHub 仓库 → Settings → Secrets 中配置:
| Secret | 说明 |
|---|---|
GITHUB_TOKEN |
自动提供,用于推送镜像到 GHCR 和创建 Release |
CF_API_TOKEN |
Cloudflare API Token(部署 Worker 用) |
CF_ACCOUNT_ID |
Cloudflare Account ID |
注册流程需要临时邮箱接收验证码 OTP。系统支持以下邮箱提供商:
在管理后台 → 系统设置中配置:
| 设置项 | 说明 |
|---|---|
yydsmail_base_url |
YYDS Mail API 服务地址 |
| 设置项 | 说明 |
|---|---|
gptmail_api_key |
GPTMail API Key |
gptmail_base_url |
GPTMail 服务地址(默认 https://mail.chatgpt.org.uk) |
系统会按优先级自动选择可用的邮箱提供商。
# 拉取最新镜像
docker compose -f docker-compose.prod.yml pull
# 重启服务(数据库数据持久化在 volume 中,不会丢失)
docker compose -f docker-compose.prod.yml up -d
# 或使用部署脚本
./scripts/deploy.sh --all数据库 Migration 通过 GORM AutoMigrate 自动执行,无需手动操作。