# gpt_signup_hybrid — config # Copy thành .env rồi chỉnh giá trị. # File này nằm trong gpt_signup_hybrid/, đọc bởi config.load_settings (CWD). # ── Browser / runtime ──────────────────────────────────────────────── BROWSER_ENGINE=camoufox RUNTIME_DIR=runtime BROWSER_VIEWPORT_WIDTH=1440 BROWSER_VIEWPORT_HEIGHT=800 BROWSER_USE_PROFILE_TEMPLATE=true BROWSER_PROFILE_TEMPLATE_DIR=runtime/profiles/template BROWSER_CAMOUFOX_PROFILE_DIR=runtime/profiles/camoufox_template # true = Camoufox tự random screen dimensions (stealth tốt hơn); false = dùng viewport cố định BROWSER_RANDOM_SCREEN=true # ── Web UI (web.manager) ───────────────────────────────────────────── # Max concurrent jobs (web UI multi mode). Range [1, 10], mặc định 2. HYBRID_MAX_CONCURRENT=2 # Proxy seed (backward-compat). Nếu set → tự thêm vào proxy pool lúc khởi động. # Khuyến nghị: cấu hình proxy pool trong UI (tab Settings > Proxies) thay vì env. # Format: http://user:pass@host:port hoặc socks5://host:port. Để trống = direct. HYBRID_OUTLOOK_PROXY= # Job timeout (giây). Range [30, 600]. Phải > OTP timeout (180s). Mặc định 240. HYBRID_JOB_TIMEOUT=240 # ── iCloud HME pool (feature: icloud-hme-pool) ─────────────────────── # Pool / profile lifecycle (R2) ICLOUD_LIMITED_TTL_HOURS=24 ICLOUD_QUOTA_RETRY_MINUTES=15 ICLOUD_HME_QUOTA_LIMIT=700 # Generator / HME client (R3, R11) ICLOUD_HME_PROFILE_PARALLELISM=1 ICLOUD_HME_HTTP_TIMEOUT_SEC=30 ICLOUD_HME_RACE_RETRY_MAX=3 ICLOUD_INFINITE_WAIT_MAX_SEC=86400 # Retention (None = giữ vô hạn — bỏ trống hoặc xóa dòng) ICLOUD_RECORDING_RETENTION_DAYS= ICLOUD_AUDIT_RETENTION_DAYS= # Job runner (R13) ICLOUD_JOB_MAX_PARALLEL=1 ICLOUD_JOB_LOG_RETENTION_DAYS=30 # Web API auth (R10) — Web_API startup raise nếu unset (R10.10a) ICLOUD_API_AUTH_TOKEN= # ── Sentinel sidecar (Phase 10/11 — pure_request anti-ban) ─────────── # Off-switch — sets QuickJS path (NGUY HIỂM: weak fingerprint → deferred ban). REG_SIDECAR_DISABLED=0 # Disable individual K2/K2c steps if needed for A/B testing. OPENAI_SENTINEL_DISABLE_K2=0 OPENAI_SENTINEL_DISABLE_K2C=0 # RAM optimization (recommended for >5 concurrent signups): # By default sidecar uses request.proxy → one Camoufox process per unique # proxy (~150MB each). Setting this env makes all sidecars share ONE # Camoufox keyed on this proxy value, regardless of per-signup proxy. # Caller curl_cffi still uses request.proxy so server still sees N IPs. # Cloudflare cookies (__cf_bm, cf_clearance) are NOT synced when sidecar # proxy ≠ caller proxy (they're IP-bound; curl re-fetches them). # # "" → all sidecars share ONE direct (no-proxy) Camoufox # "" → all sidecars share ONE Camoufox via that proxy # unset → legacy behavior (one Camoufox per unique caller proxy) # # SIDECAR_SHARED_PROXY=