Initial commit: grok-free-register-oss

Open-source Grok free registration CLI, xai_enroller auth pipeline,
local auth service, tests and docs.
This commit is contained in:
chaos committed 2026-07-16 21:04:05 +08:00
commit d10009d639
72 files changed
+18752

No files matched your search

+67
View File
@@ -0,0 +1,67 @@
# 本地认证服务
认证服务把已有的 SSO 会话转换为 CPA 可直接读取的 OAuth 凭据。注册与认证可以在同一台机器,也可以分开运行。
## 默认同机运行
同一个项目目录已经或正在运行注册服务时,直接启动认证:
```bash
bash auth-service.sh
```
未配置 SSH 主机时,认证服务自动读取本项目 `keys/` 中的完整会话与历史账号。注册可以继续追加,认证服务只安装经过校验的完整快照。
## 配置远端同步
先把无密码导出器放到服务器项目目录:
```bash
scp scripts/export_registered_sessions.py user@server.example:/opt/grok-free-register/scripts/
```
在本地终端设置连接信息:
可以直接 `export`,也可以把 `.env.example` 复制为 `.env` 后填写;认证入口会自动读取 `.env`。
```bash
export XAI_AUTH_SERVICE_SSH_HOST=user@server.example
export XAI_AUTH_SERVICE_SSH_IDENTITY=/path/to/key.pem
export XAI_AUTH_SERVICE_REMOTE_ROOT=/opt/grok-free-register
```
使用 `ssh-agent` 时可省略 `XAI_AUTH_SERVICE_SSH_IDENTITY`。
设置了 `XAI_AUTH_SERVICE_SSH_HOST` 后,默认的 `auto` 模式会选择 SSH。需要明确覆盖时使用:
```bash
export XAI_AUTH_SERVICE_SOURCE=local # 强制读取同机注册结果
export XAI_AUTH_SERVICE_SOURCE=ssh # 强制使用 SSH,必须配置主机
```
## 运行
```bash
bash auth-service.sh
```
首次运行会自动安装项目依赖。该命令在当前终端持续运行并直接接受控制命令;输入 `q` 或按 `Ctrl-C` 停止,再次执行同一命令即可重启。不需要额外的会话管理工具。
普通模式只在来源连接、发现新账号、任务开始、认证结果、限流和控制状态变化时输出。查看队列、重试、节拍和冷却探针时使用:
```bash
bash auth-service.sh --debug
```
运行中终端底部会保持 `认证> ` 输入行。日志更新不会清掉尚未提交的内容;直接输入命令并回车:
```text
s 查看状态
take N 取用 N 个凭据
p 暂停
r 恢复
c 取消当前任务
q 安全退出
```
快照默认每 30 秒更新一次;内容无变化时终端保持安静。有效快照和已生成凭据会在重启后继续使用。
+19
View File
@@ -0,0 +1,19 @@
# 凭据库存与取用
认证成功的凭据保存在本地认证目录,并在 SQLite 库存中维护三种状态:
- `available`:已经认证、尚未取用;
- `claiming`:正在移动到取用批次;
- `claimed`:已经取用。
运行认证服务后输入:
```text
take 100
```
服务会选择最新的 100 个可用凭据,移动到 `claimed/<batch-id>/`,再把对应库存标记为 `claimed`。认证 ledger 中的 `imported` 记录仍然保留,所以这些账号不会被重新认证。
每条库存记录预留 `note` 字段,默认为空。取用操作不要求填写用途;以后需要备注时可直接更新该字段。
若文件移动中断,服务下次启动会恢复 `claiming` 状态。库存不足或凭据文件缺失时,操作失败但认证服务继续运行。
+54
View File
@@ -0,0 +1,54 @@
# 注册教程
## 开始运行
```bash
git clone <your-fork-or-mirror>/grok-free-register.git
cd grok-free-register
bash start.sh
```
首次运行会安装 Python、CloakBrowser Chromium 及其系统依赖,然后引导选择邮箱模式。以后再次执行 `bash start.sh` 会直接使用已有配置。
普通模式只显示服务启动、任务开始、注册成功或失败、本次运行平均速率、累计数量和限流状态。查看完整并发、库存和阶段耗时时使用:
```bash
bash start.sh --debug
```
常用参数:
```bash
bash start.sh --target 100
bash start.sh --max-mem 6G
bash start.sh --reconfig
```
未设置 `--target` 时服务持续运行,按 `Ctrl-C` 安全停止。
再次执行 `bash start.sh` 即可重启。程序直接使用当前终端,不需要额外的会话管理工具。
## 配置邮箱
临时邮箱无需额外配置:
```env
EMAIL_MODE=tempmail
```
自建邮箱需要可接收邮件的域名和本项目的收信服务:
```env
EMAIL_MODE=custom
EMAIL_DOMAIN=example.com
EMAIL_API=http://127.0.0.1:8080
```
自建模式还需运行:
```bash
bash start.sh --email-service
```
性能参数默认会根据 CPU 和可用内存估算。除非正在压测,否则保持 `.env.example` 中的默认值即可。
成功结果写入 `keys/accounts.txt`、`keys/grok.txt` 和 `keys/auth-sessions.jsonl`;这些文件默认不提交到 Git。
+38
View File
@@ -0,0 +1,38 @@
# 运行状态与排障
## 普通模式
普通模式的每一行都对应一次状态变化:
- `[→]`:新任务开始;
- `[✓]`:任务成功或来源连接完成;
- `[✗]`:当前任务失败或被跳过;
- `[⏸]`:进入限流冷却或服务暂停;
- `[▶]`:限流解除或服务恢复;
- `[!]`:来源、配置或流水线出现需要关注的问题。
认证端输入 `s` 可查看运行状态、待处理数量、当前阶段、本次运行平均速率、累计成功、可用和已取用凭据,以及是否处于限流。
## Debug 模式
注册端:
```bash
bash start.sh --debug
```
认证端:
```bash
bash auth-service.sh --debug
```
注册 Debug 面板包含 T/Q 库存、物理并发、S/P/C 阶段耗时和 token 求解时间。认证 Debug 状态包含 source/prepared/completion 队列、重试、授权节拍、冷却、单次探针和近五分钟滚动速率。
## 常见状态
限流后不会持续重试。认证端默认等待 60 秒,再只放行一个恢复探针;探针仍被限流时重新等待。注册端同样通过全局冷却闸门阻止并发任务漏过等待周期。
远端来源暂时断开时,本地认证服务继续使用上一份完整有效快照。恢复连接后会自动同步,不需要重启。
配置错误会指出缺少或非法的配置名,不输出 traceback。按提示检查 [注册配置](registration.md#配置邮箱) 或 [认证同步配置](auth-service.md#配置远端同步)。