# grok-free-register 配置模板 # 复制为 .env 后按需修改。未填写的项目会使用程序默认值。 # 邮箱模式 # tempmail: 免费临时邮箱,适合快速试跑。 # custom: 自建域名邮箱,需要 Cloudflare Email Routing 和本地收信服务。 EMAIL_MODE=tempmail # custom 模式专用 # EMAIL_DOMAIN=example.com # EMAIL_API=http://127.0.0.1:8080 # 认证账号来源 # auto: 配置 SSH 主机时读取远端,否则读取当前项目;一般保持默认即可。 # XAI_AUTH_SERVICE_SOURCE=auto # auto | local | ssh # XAI_AUTH_SERVICE_REGISTER_ROOT=. # local 模式下的注册项目目录 # 注册与认证不在同一台机器时填写 # XAI_AUTH_SERVICE_SSH_HOST=user@server.example # XAI_AUTH_SERVICE_SSH_IDENTITY=/path/to/key.pem # XAI_AUTH_SERVICE_REMOTE_ROOT=/opt/grok-free-register # XAI_AUTH_SERVICE_SYNC_SEC=30 # 同步新账号的间隔(秒) # 认证节奏 # XAI_AUTH_SERVICE_MIN_INTERVAL_SEC=10 # 两次认证请求的基础最小间隔(秒) # # 触发限流后会自动抬高(约18s起,最多约90s),成功连串后再缓慢回落 # XAI_AUTH_SERVICE_RETRY_SEC=60 # 被限流后的基础探测间隔(秒);连续撞限会按 1.5x 增长,上限 300s # XAI_AUTH_SERVICE_LOG_MODE=user # user | debug # 运行目标 # TARGET=0 # 成功 N 个后停止;0=不限 # 日志显示 # REGISTER_LOG_MODE=user # 默认:任务开始、结果、平均速度和限流等待 # REGISTER_LOG_MODE=debug # 额外显示 T/Q/并发/阶段耗时调试面板 # 浏览器并发容量 # PHYSICAL_CAP=0 # 0=按 CPU/内存自动估算;>0=手动指定 # PHYSICAL_PER_CPU=2 # 自动估算时每个 CPU 核心对应的并发参考值 # PHYSICAL_MEM_MB=512 # 自动估算时每个浏览器任务的内存预算(MB) # MIN_FREE_MEM_MB=500 # 自动估算时保留的内存(MB) # CAPACITY_PROFILE= # 可选:离线压测生成的静态 profile(JSON) # 缓冲容量 # T_SLOT_CAP=8 # Q_SLOT_CAP=8 # Q_PENDING_CAP=12 # Worker 数量 # 通常不需要手动设置。0 表示根据容量自动派生。 # S_WORKERS=0 # P_WORKERS=0 # C_WORKERS=0 # 资源有效期 # T_MAX_AGE=300 # token 最大年龄(秒) # Q_MAX_AGE=120 # 验证码最大年龄(秒) # 阶段超时 # P_REQUEST_TIMEOUT=95 # 等待验证码返回超时(秒) # C_CONSUME_TIMEOUT=60 # 最终提交阶段超时(秒) # 局部门控和批量发送 # 这些项目默认会按容量派生。只有在压测定位后才建议覆盖。 # T_TARGET=4 # token 缓冲目标 # Q_TARGET=4 # 验证码缓冲目标 # T_HIGH_WATER= # token 生产高水位 # T_LOW_WATER= # token 生产恢复低水位 # Q_HIGH_WATER= # 验证码生产高水位 # Q_LOW_WATER= # 验证码生产恢复低水位 # P_BATCH_MAX=4 # 单个发送页面最多发送的验证码请求数 # P_SEND_CAP=0 # 0=不额外限制;>0=限制发送页面并发 # 页面和 token 获取 # SOLVER_REUSE=1 # token 页面复用 # MAX_SOLVER_REUSE=25 # 单个 token 页面最大复用次数 # SOLVER_INITIAL_WAIT_MS=500 # token 注入后的首次等待 # SOLVER_POLL_INTERVAL_MS=500 # token 轮询间隔 # SOLVER_POLL_ATTEMPTS=100 # token 最大轮询次数 # SOLVER_HARD_TIMEOUT=90 # 单次 solver 全链路硬截止(秒) # SOLVER_CLEANUP_TIMEOUT=5 # 异常页回收最长等待(秒) # SOLVER_FAST_CLICK=1 # 没有可见验证框时跳过慢点击 # SOLVER_MOUSE_CLICK_RETRIES=3 # token 验证框中心点击次数;0=关闭 # SOLVER_MOUSE_CLICK_INTERVAL_MS=600 # token 中心点击间隔(ms) # PAGE_GOTO_WAIT_UNTIL=domcontentloaded # 页面导航等待策略 # PAGE_POST_WAIT_MS=500 # 页面导航后的短等待 # 可选性能开关 # PAGE_BLOCK_STATIC_ASSETS=0 # 阻断部分静态资源,降低页面准备成本 # C_HOT_PAGE_POOL=0 # 复用消费阶段页面,会增加常驻内存 # C_HOT_PAGE_POOL_SIZE=0 # 0=按启动期并发派生;>0=手动指定 # C_SET_COOKIE_VIA_REQUEST=0 # 用浏览器 request 访问 set-cookie URL;热页池开启时默认启用 # --------------------------------------------------------------------------- # 代理(grok-free-register 本进程出口,给 Playwright + httpx) # 与下面 FlareSolverr 清障栈是两套东西,不要混。 # Playwright 不会自动读环境变量,代码里会显式挂到 launch(proxy=...)。 # --------------------------------------------------------------------------- # REGISTER_PROXY=http://127.0.0.1:40080 # 优先;指向本机 privoxy→WARP 时用这个 # HTTP_PROXY=http://127.0.0.1:7890 # 兜底(REGISTER_PROXY 未设时) # HTTPS_PROXY=http://127.0.0.1:7890 # --------------------------------------------------------------------------- # Cloudflare 清障预热(调用外部 FlareSolverr,不在本仓起 FS) # 默认 FS: docker compose 暴露 127.0.0.1:8191 # 预热根域名(无 path 后缀): accounts.x.ai / x.ai / status.x.ai / console.x.ai / auth.x.ai # CLEARANCE_PROXY 是 FS *容器内* 浏览器的出口,必须是容器可达地址; # 不要把 host 的 127.0.0.1 塞进去。走 WARP 时用 docker 网内 privoxy。 # --------------------------------------------------------------------------- # CLEARANCE_ENABLED=1 # FLARESOLVERR_URL=http://127.0.0.1:8191 # CLEARANCE_URLS=https://accounts.x.ai,https://x.ai,https://status.x.ai,https://console.x.ai,https://auth.x.ai # CLEARANCE_PROXY=http://privoxy:8118 # CLEARANCE_TIMEOUT_SEC=60 # CLEARANCE_REFRESH_SEC=3000 # --------------------------------------------------------------------------- # 本机注册 → 推 keys 到远端 auth(可选;scripts/push_keys_to_auth.sh) # 无内置默认主机,必须显式填写。 # --------------------------------------------------------------------------- # AUTH_SSH_HOST=user@auth-server.example # AUTH_REMOTE_ROOT=/opt/grok-free-register # AUTH_SSH_IDENTITY= # AUTH_PUSH_INTERVAL=20