1. Architecture
Traffic Tool
  • Traffic Tool Docs
    • Tổng quan
      • Tổng Quan
      • Setup Guide
      • System Architecture
      • Code Structure
      • Logs and Monitoring
      • Environment & Configuration
      • Deployment
        • Local
        • Staging
        • Product
    • Bussiness | Logic
      • 1. Thống kê hàng ngày (Daily Statistics)
      • 2. Thống kê hệ thống (System Statistics)
      • 3. Tìm kiếm tự động (Automated Discovery)
      • 4. Trung tâm Báo cáo (Report Center)
      • 5. Quản lý tài khoản (Account Management)
      • 6. Quản lý Hệ thống (System Management)
      • 7. Quản lý tài khoản Google (Google Account Management)
    • Project
      • ADMIN
        • Tổng quan
        • Hướng dẫn sử dung
          • Đăng Nhập & Xác Thực Hai Bước
          • Thống Kê Hệ Thống
          • Thống Kê Hàng Ngày
          • Tìm Kiếm Tự Động
          • Trung Tâm Báo Cáo
          • Quản Lý Tài Khoản
          • Quản Lý Server
          • Quản Lý Proxy
          • Quản Lý Gói Proxy
          • Quản Lý Nhà Cung Cấp Proxy
          • Quản Lý Backup Proxy
          • Quản Lý Tài Khoản Google
          • User Guide
        • Architecture
          • System Architecture
          • Code Structure
          • Environment & Configuration
          • Logs and Monitoring
        • Deployment
          • Local
          • Staging
          • Production
      • API
        • Tổng quan
        • Architecture
          • Database Schema
          • System Architecture
          • Code Structure
          • Environment & Configuration
          • Logs and Monitoring
        • Deployment
          • Local
          • Staging
          • Production
        • API Interface
          • 🔑 Identity & Session
            • Đăng nhập hệ thống (Login)
            • Đăng ký tài khoản mới (Public)
            • Lấy danh sách người dùng (Phân trang)
            • Admin tạo người dùng mới
            • Lấy thông tin cá nhân hiện tại
            • Khởi tạo bảo mật 2FA
            • Xác thực mã OTP
            • Chi tiết người dùng theo ID
            • Cập nhật thông tin người dùng
            • Xóa tài khoản người dùng
            • Đổi mật khẩu
            • Kiểm tra Cấu hình Thông báo Telegram Toàn hệ thống
            • Bật/Tắt Thông báo Telegram Toàn cục
          • 📁 Campaign Management
            • Danh sách Chiến dịch Toàn cầu
            • Khởi tạo Chiến dịch Mới
            • Chi tiết Chiến dịch
            • Cập nhật Chiến dịch
            • Xóa Chiến dịch
            • Tắt/Mở Chiến dịch (Hàng loạt)
            • Dữ liệu Hình mẫu SEO (Negative SEO)
          • ⚙️ Project Mechanics
            • Danh sách Dự án (Projects List)
            • Khởi tạo Kịch bản Mô phỏng
            • Lấy chi tiết cấu hình Dự án
            • Cập nhật Kịch bản chạy
            • Xóa Dự án
            • Chỉnh sửa Hàng loạt (Bulk)
            • Bật/Tắt Dự án
          • 👤 Profile Management
            • Danh sách Vân tay số (Profiles Data)
            • Tạo Hồ sơ Đơn lẻ (Tạo Vân tay mới)
            • Nhập kho Tài khoản Email (Bulk Import)
            • Chi tiết Session/Cookies
            • Chỉnh sửa Hồ sơ/Ghi chú
            • Xóa Vân tay số và Dữ liệu Local
            • Mở khóa Captcha/Trạng thái Blocked
            • Tra cứu Kho Profile Khả dụng
            • Báo cáo Sức khỏe Kho Tài Khoản
          • 🦾 Worker Interface
            • Đăng ký Khởi tạo Node (Handshake)
            • Nhịp Tim Khảo Sát Tình Trạng (Heartbeat)
            • Nhận Cấu hình Bypass & Hệ thống
            • Kéo (PULL) Nhiệm vụ Traffic SEO
            • Báo cáo Sự cố Node (Crash Report)
          • 📊 Report: Execution
            • Kéo Công việc Báo cáo (Worker Pull)
            • Quản lý Giám sát Nhiệm vụ (Task Dashboard)
            • Bắn Lại Báo Cáo Thất Bại (Manual Retry)
          • 📊 Report: Discovery
            • Danh sách Tên miền Chờ Xử Lý (Discovery Pool)
            • Nhập Mục Tiêu Thủ Công (Manual Insert)
            • Kích hoạt Heuristic Scanner (Cào tự động)
            • Chi tiết Bằng Chứng (Evidence Data)
            • Dán nhãn Vi Phạm / Cập nhật Screenshot
            • Loại Bỏ Mục Tiêu
            • Duyệt Yêu Cầu (Approve to Execution)
          • 📊 Report: Platforms Configuration
            • Truy vấn Danh sách Nền tảng Đối tác (Vendor)
            • Tạo Nền tảng Vendor Báo cáo Mới
            • Bật/Tắt Trang báo cáo theo Loại
            • Cập nhật Metadata Trang
            • Xóa Trang Báo Cáo
            • Lấy Cài đặt LLM cho Vendor cụ thể
            • Cập nhật Cài đặt Tạo mẫu LLM
            • Lấy Cấu hình Schema Biểu mẫu cho Vendor
            • Cập nhật Yêu cầu Trường Biểu mẫu
          • 📊 Report: Email Automation
            • Danh sách SMTP/Mailer Server
            • Thêm kết nối SMTP Mới
            • Nhật ký Nhiệm vụ Gửi Mail (Email Log)
            • Phân tích Tỉ lệ Chuyển đổi (Email Delivery Analytics)
          • 🌐 Global Proxies
            • Danh sách Kho Proxy Phân trang (Proxy Pool)
            • Thêm mới Tuyến IP (Bulk Import)
            • Cập nhật Thông tin máy chủ Proxy
            • Xóa Proxy (Thu hồi tài nguyên)
            • Kích hoạt Xoay vòng (Rotate IP) Cưỡng bức
          • 📈 System Intelligence
            • Báo cáo Luồng Bảo mật Hợp nhất (Colossal Report)
            • Bản Đồ Lưu Lượng GeoIP (Heatmap)
          • 🪝 Webhook Integrations
            • Callback Hoàn tất Gói Lưu lượng SEO (Traffic Node)
            • Callback Thông báo Hoàn tất Bắn Report AI
      • Tool
        • Tổng quan
        • Architecture
          • System Architecture
          • Code Structure
          • Environment & Configuration
          • Logs And Monitoring
          • Database Schema
        • Deployment
          • Local
          • Staging
          • Production
        • API interface
          • Tasks
            • Lấy tasks có phân trang và lọc
            • Xóa tất cả tasks
            • Get all tasks
            • Cập nhật một task
            • Xóa một task theo ID
            • Get all tasks
          • Group task
            • Tạo nhiều task groups
            • Lấy tất cả task groups
            • Xóa tất cả task groups
            • Xóa một task group theo ID
            • Endpoint /api/task-traffics/
            • Test parse proxy string
            • Endpoint /api/task-traffics/
          • Test
            • Mock proxy endpoint cho development
            • Mock profile endpoint cho development
            • Endpoint /api/test
            • Endpoint /api/test/account-stats
            • Endpoint /api/test/session-recommendation
            • Endpoint /api/test/check-browser
            • Endpoint /api/test/clear-browser-sessions
          • Proxies
            • Lấy tất cả proxy records
            • Tạo proxy record mới
            • Xóa tất cả proxies
            • Get all proxies
            • Xóa một proxy theo ID
            • Reset proxy process counter
            • Get all proxies
            • Get all proxies
          • Report Platforms
            • Submit report to multiple platforms
            • Submit report to specific platform
            • Get available platforms
            • Get platform statistics
            • Health check
          • Reports
            • Create a new report
            • Create a new report
            • Get report by ID
            • Get report by ID
            • Get report statistics
            • Get report groups
            • Get report groups
            • Get report group
            • Add report to group
            • Bulk add reports to group
            • Get report group statistics
            • Get analytics data
            • Get platform success rates
            • Get reports by platform
            • Get reports by group
            • Create test reports in bulk
            • Tạo PC report CSV
            • Lấy PC report JSON
            • Lấy report tasks
            • Giám sát report tasks
            • Report tasks đang hoạt động
            • Chi tiết report task
            • Thống kê reports
            • Dữ liệu biểu đồ reports
            • Lấy danh sách report sites
            • Tạo report site
            • Thống kê sites
            • Toggle site enabled/disabled
            • Toggle tất cả sites
            • Toggle sites theo type
            • Cập nhật hàng loạt AI prompts
            • Cập nhật site
            • Xóa site
            • Lấy cấu hình đầy đủ của site
            • Lấy AI prompt của site
            • Cập nhật AI prompt của site
            • Lấy GPT config của site
            • Cập nhật GPT config
            • Lấy response config của site
            • Cập nhật response config
            • Lấy security vendors đang bật
            • Phân tích keywords
            • Top keywords
            • Thống kê analytics
            • PC report dashboard
            • Lấy report domains
            • Thêm report domain
            • Chi tiết report domain
            • Thống kê hàng ngày
            • Cập nhật hàng loạt reports
          • Test Report
            • Test Microsoft report submission
            • Test AdGuard report submission
            • Test Google Ads report submission
            • Test Spamhaus report submission
            • Test ESET report submission
            • Test multi-platform report submission
            • Get available platforms
          • ESET Test
            • Simple test
            • Minimal POST test
            • Generate ESET report content
            • Get sample test data
            • Test form filling
            • Test full form submission
          • Spamhaus Test
            • Simple test
            • Minimal POST test
            • Generate Spamhaus report content
            • Get sample test data
            • Test Spamhaus form filling
            • Test full Spamhaus form submission
          • Report Scheduler
            • Get report scheduler statistics
            • Process ad detection result
            • Submit a scheduled report
            • Start report scheduler
            • Stop report scheduler
            • Get scheduler status
            • Process scheduled reports
            • Test browser session (non-headless)
            • Test report submission (non-headless)
          • Comprehensive Analytics
            • Get comprehensive dashboard analytics
            • Get overview statistics
            • Get brand-wise statistics
            • Get daily statistics
            • Get platform success rates
            • Get account performance
            • Get summary report
          • Search
            • Tạo nhiều search tasks
            • Lấy tổng số search tasks
          • Report Tasks
            • Tạo report tasks cho một domain
            • Tạo report tasks trực tiếp (hỗ trợ profileCountry và domainType rõ ràng)
            • Tạo report tasks cho nhiều domains cùng lúc
            • Tạo email-based report tasks
            • Lấy report task PENDING tiếp theo
            • Cập nhật status của report task
            • Lấy danh sách platforms có sẵn
            • Thống kê report tasks
            • Kích hoạt thực thi thủ công
          • Monitor
            • Thông tin tài nguyên hệ thống
          • System
            • Hello World
            • Health check
            • Đọc file log từ xa
            • Monitor worker status
          • Auth
            • Đăng nhập
            • Đăng ký tài khoản
          • User Management
            • Danh sách users có phân trang
            • Tạo user mới (Admin only)
            • Lấy tất cả users (không phân trang)
            • Lấy thông tin profile của user hiện tại
            • Tạo QR code TOTP cho 2FA
            • Xác thực TOTP để bật 2FA
            • Lấy user theo ID
            • Cập nhật thông tin user
            • Xóa user
            • Đổi mật khẩu user
          • Campaign Management
            • Danh sách campaigns có phân trang
            • Tạo campaign mới
            • Lấy tất cả campaigns
            • Thống kê tổng hợp campaigns
            • Xuất campaigns ra Excel
            • Lấy dữ liệu Negative SEO
            • Xuất dữ liệu Negative SEO ra Excel
            • Xuất Negative SEO theo IDs
            • Lấy dữ liệu Home Traffic
            • Xuất Home Traffic ra Excel
            • Xuất Home Traffic theo IDs
            • Lấy báo cáo campaigns (Public)
            • Lấy tất cả báo cáo campaigns (Public)
            • Lấy chi tiết campaign
            • Cập nhật campaign
            • Xóa campaign
            • Lấy campaigns đã fired theo type
          • Server Management
            • Danh sách servers có phân trang
            • Tạo server mới
            • Lấy tất cả servers
            • Lấy servers từ MongoDB
            • Báo cáo hiệu suất server
            • Thống kê health check
            • Thống kê task monitor
            • Lịch sử lỗi server
            • Thống kê lỗi server
            • Thay đổi trạng thái server
            • Xóa nhiều servers
            • Lấy server theo ID
            • Cập nhật server
            • Xóa server
            • Báo cáo servers (Public)
          • Project Management
            • Lấy tất cả projects
            • Tạo project mới
            • Lấy projects theo campaign
            • Cập nhật dữ liệu traffic
            • Cập nhật nhiều projects
            • Xóa nhiều projects
            • Lấy project theo ID
            • Cập nhật project
            • Cập nhật state của project
            • Cập nhật status của project
            • Tính lại chi tiết project
          • Task Management
            • Worker yêu cầu tasks
            • Reset task creation
          • Proxy Management
            • Danh sách proxies
            • Tạo proxy mới
            • Xóa tất cả proxies
            • Xuất proxies ra Excel
            • Tải template Excel mẫu
            • Tạo nhiều proxies
            • Import proxies từ Excel
            • Import từ tất cả providers
            • Xóa nhiều proxies
            • Lấy proxy theo ID
            • Cập nhật proxy
            • Xóa proxy
            • Toggle trạng thái proxy
          • Backup Proxy
            • Lấy danh sách backup proxies
            • Tạo backup proxy
            • Xóa nhiều backup proxies
            • Import từ Proxifly
            • Chạy health check
            • Lấy backup proxy theo ID
            • Cập nhật backup proxy
            • Xóa backup proxy
            • Test backup proxy
          • Proxy Providers
            • Lấy danh sách proxy providers
            • Tạo proxy provider
            • Xóa nhiều providers
            • Lấy provider theo ID
            • Cập nhật provider
            • Xóa provider
          • Proxy Packages
            • Lấy danh sách proxy packages
            • Tạo proxy package
            • Xóa nhiều packages
            • Lấy package theo ID
            • Cập nhật package
            • Xóa package
          • Profiles
            • Lấy profiles khả dụng (Public)
            • Lấy profile ngẫu nhiên (Public)
            • Danh sách profiles có phân trang
            • Phân tích profiles
            • Health check profiles
            • Tạo profile session
            • Lấy profile session
            • Cập nhật profile session
            • Xóa profile session
            • Đánh dấu profile đã dùng
            • Cập nhật nhiều profiles
            • Tạo nhiều profiles
            • Dọn dẹp sessions hết hạn
            • Dọn dẹp toàn diện
            • Tạo profile mới
            • Lấy profile theo ID
            • Cập nhật profile
            • Xóa profile
            • Thống kê profile
            • Sessions của profile (phân trang)
            • Report tasks của profile
            • Domains đã report bởi profile
            • Tasks theo domain của profile
            • Reset cooldown của profile
            • Test kết nối profile
            • Reset số lần đăng nhập thất bại
            • Ghi nhận đăng nhập thất bại
          • Keywords
            • Danh sách keywords
            • Tạo keyword mới
            • Xuất keywords ra Excel
            • Xác nhận fire keyword
            • Reset tất cả keywords
            • Lấy keyword theo ID
            • Cập nhật keyword
            • Xóa keyword
            • Reset keyword
            • Cập nhật status keyword
            • Kết quả SERP của keyword
          • Dashboard
            • Dữ liệu tổng hợp dashboard
            • Thống kê hệ thống
            • Thống kê traffic theo ID
            • Dữ liệu bảng biểu đồ traffic
            • Xuất báo cáo ra Excel
            • Lấy dữ liệu báo cáo
            • Cập nhật hàng loạt dashboard
            • Tính lại chi tiết projects (Admin only)
          • System Settings
            • Toggle Telegram notifications
            • Trạng thái Telegram notification
          • Activity Logs
            • Lấy activity logs
          • Locations
            • Lấy tất cả locations
            • Tạo location mới
            • Lấy location theo ID
            • Cập nhật location
            • Xóa location
          • Evidence
            • Kiểm tra evidence tồn tại
            • Kiểm tra evidence hàng loạt
            • Lấy evidence mới nhất
          • Files
            • Upload file
            • Download file
          • Server Hourly Reports
            • Lấy server hourly reports
          • Task Logs
            • Lấy task logs
          • Webhooks - Proxy
            • Lấy proxy cho task (Worker webhook)
            • Lấy proxies có thể rotate (Worker webhook)
            • Báo cáo kết quả proxy rotation (Worker webhook)
            • Lấy backup proxy (Worker webhook)
          • Webhooks - Profile
            • Lấy profiles (admin view, webhook)
            • Lấy profile ngẫu nhiên (Worker webhook)
            • Profiles khả dụng (webhook)
            • Lấy profile session (webhook)
            • Tạo profile session (webhook)
            • Đánh dấu profile đã dùng (webhook)
            • Lấy profile tags (webhook)
            • Lấy tất cả profile sessions (webhook)
          • Webhooks - Task
            • Cập nhật kết quả thực thi task (Worker webhook)
          • Webhooks - Search
            • Báo cáo domains đã click (webhook)
            • Lấy clicked domains (webhook)
            • Báo cáo domains (webhook)
            • Third party callback (webhook)
          • Webhooks - Logs
            • Lấy file logs (webhook)
            • Xóa nội dung log (webhook)
            • Kiểm tra IP address (webhook)
          • Webhooks - Keyword
            • Gửi kết quả SERP keyword (webhook)
          • Webhooks - Report
            • Cập nhật trạng thái report task (webhook)
          • Webhooks - CocCoc Token
            • Lấy CocCoc tokens (webhook)
            • Lock CocCoc token (webhook)
            • Unlock CocCoc token (webhook)
    • Schemas
      • LoginRequest
      • UpdateTask
      • WorkerStatus
      • StandardResponse
      • UserResponseDto
      • CreateTaskGroupRequest
      • HealthResponse
      • UserModel
      • CreateProxy
      • ErrorResponse
      • Pagination
      • CreateUserRequest
      • ReportTaskCreation
      • ErrorResponseFull
      • BulkDeleteRequest
      • UpdateUserRequest
      • CreateEmail
      • MessageResponse
      • UserResponse
      • PagingInfo
      • CreateMultipleSearchRequest
      • TrafficType
      • CampaignResponse
      • ProfileModel
      • CreateMultipleReportRequest
      • ServerResponse
      • CreateProfileRequest
      • UpdateReportStatusRequest
      • Task
      • BulkImportProfileReq
      • TestProxyRequest
      • TaskGroup
      • ProxyResponse
      • UpdateProfileRequest
      • CreateTask
      • UpdateTaskBody
      • KeywordResponse
      • CampaignModel
      • CreateSearch
      • TaskPaginatedResponse
      • LocationResponse
      • CreateCampaignRequest
      • ProxyTestResult
      • UpdateCampaignRequest
      • CreateReportTaskBody
      • BulkUpdateCampaignStatusReq
      • CreateEmailReportTaskBody
      • NegativeSeoData
      • BatchReportTaskItem
      • CreateProjectRequest
      • CreateReportTaskResponse
      • UpdateProjectRequest
      • BatchReportTaskResponse
      • ProjectModel
      • BulkUpdateProjectRequest
      • ReportTask
      • WorkerHandshakeRequest
      • UpdateReportTaskStatusBody
      • WorkerHandshakeResponse
      • UpdateReportTaskStatusResponse
      • WorkerHeartbeatPayload
      • PlatformsListResponse
      • WorkerGlobalSettings
      • ReportTaskStatsResponse
      • TaskPullRequest
      • ExecuteReportTaskResponse
      • WorkerFatalLog
      • CreateSearchTask
      • TaskModel
      • Proxy
      • TaskUpdateDto
      • CreateProxyBody
      • ReportTaskModel
      • CreateProxyResponse
      • ReportTaskResult
      • ResetProcessResponse
      • PCReportResponse
      • MonitorResponse
      • ReportSiteItem
      • CreateReportSiteRequest
      • TestProxyResponse
      • GPTConfig
      • TestProfileResponse
      • ResponseConfig
      • ReportDomainsResponse
      • ReportDomainItem
      • AddReportDomainRequest
      • UpdateReportDomainRequest
      • BulkUpdateDashboardRequest
      • ProxyModel
      • CreateProxyRequest
      • UpdateProxyRequest
      • SMTPServerConfig
      • EmailTaskLog
      • GeoLocation
      • CampaignConfigs
      • ProjectAttribute
      • TaskTrafficType
      • ReportTaskItem
      • SummaryStats
      • DailyStats
      • BrandStats
      • ProfileStats
      • FieldConfig
  1. Architecture

Environment & Configuration

Cấu Hình Môi Trường — Tools V2 Worker Engine#


1. Tổng Quan#

1.1. Cơ Chế Đọc Cấu Hình#

Tools V2 đọc toàn bộ cấu hình từ biến môi trường thông qua file src/utils/env.ts. File này export một object env duy nhất được dùng xuyên suốt toàn bộ codebase. Không có nơi nào trong code đọc process.env trực tiếp ngoài env.ts.
Cơ chế hoạt động:
Khi server khởi động, loadEnv() được gọi một lần duy nhất.
Tất cả biến được đọc, coerce sang đúng kiểu dữ liệu, và apply defaults.
Object env được freeze và export.
Mọi module import env từ @/utils/env hoặc @/utils.

1.2. Phân Biệt Development Và Production#

env.ts phân biệt hai chế độ dựa trên biến NODE_ENV:
Khi isLocal = true, một số giới hạn được nới lỏng:
TASK_RETRY_LIMIT: Không giới hạn (Number.MAX_SAFE_INTEGER).
PROXY_RETRY_LIMIT: Không giới hạn.
MAX_RETRY_COUNT: Không giới hạn.
BROWSER_LIMIT_PER_PROCESS: Luôn là 1.
SEARCH_TASK_LIMIT: Không giới hạn.

1.3. Biến Hardcode Trong Code#

Một số giá trị quan trọng được hardcode trong env.ts và không thể override qua .env:
CRON_TASK_LIMIT = 25: Số task traffic đồng thời tối đa.
CRON_REPORT_LIMIT = 2: Số report task đồng thời tối đa.
CRON_SEARCH_LIMIT = 1: Số search task đồng thời tối đa.
BROWSER_LIMIT = 100: Hard limit tuyệt đối cho browser instances.
Lý do hardcode: Đảm bảo production luôn dùng giá trị đúng, tránh vô tình set quá cao gây crash server.

1.4. File .env Và .env.example#

.env: File thực tế chứa credentials. Không bao giờ commit vào Git.
.env.example: Template với cấu trúc đầy đủ và giá trị mẫu. Luôn commit vào Git.
.env.backup: Bản backup cấu hình. Không dùng trực tiếp.
Khi setup lần đầu:

2. Nhóm Biến: Server#

2.1. Danh Sách Biến#

BiếnKiểuMặc địnhMô tả
PORTnumber3005Cổng HTTP server lắng nghe
NODE_ENVstringdevelopmentChế độ chạy: development hoặc production
DEBUGbooleanfalseBật debug logging chi tiết
RUNTIMEstringbunPhải là bun để bật AOT compilation trong Elysia
SERVER_IDstringtools_v2_serverĐịnh danh duy nhất của worker instance

2.2. Chi Tiết Từng Biến#

PORT:
Cổng HTTP server lắng nghe.
Mặc định: 3005.
Trong Docker, port này được map ra host qua ports trong docker-compose.yml.
Swagger UI truy cập tại http://localhost:{PORT}/swagger.
NODE_ENV:
Giá trị hợp lệ: development, production.
Ảnh hưởng đến isLocal flag trong env.ts.
Khi development: Giới hạn retry được nới lỏng, browser limit = 1.
Khi production: Giới hạn nghiêm ngặt, browser limit đọc từ env.
DEBUG:
Khi true: Browser chạy có giao diện (không headless) trong development.
Khi false: Browser chạy headless.
Trong Docker, luôn headless bất kể DEBUG.
RUNTIME:
Phải là bun để createElysia() bật aot: true.
AOT (Ahead-of-Time) compilation tối ưu performance của Elysia.
SERVER_ID:
Định danh duy nhất của worker instance.
Thường là IP của server: "10.0.0.2", "192.168.1.5".
Go API dùng SERVER_ID để tracking worker health và phân phối tasks.
Mỗi server phải có SERVER_ID khác nhau.

3. Nhóm Biến: Xác Thực API#

3.1. Danh Sách Biến#

BiếnKiểuMặc địnhMô tả
API_KEYstring""Token xác thực cho requests từ Tools V2 đến Go API
WEBHOOK_API_KEYstring"webhook-key"Token xác thực cho webhook từ Go API vào Tools V2
PROXY_API_KEYstring""Token xác thực riêng cho proxy endpoints
IP_ALLOWEDstring""Danh sách IP được phép gọi API, phân cách bằng dấu phẩy

3.2. Chi Tiết Từng Biến#

API_KEY:
Được gửi trong header X-API-Key khi Tools V2 gọi Go API.
Phải khớp với API_KEY được cấu hình trên Go API Backend.
Nếu không khớp, Go API trả về HTTP 401.
Ví dụ: '#!6f1!0#aa77%@G$%8262x4AaD460c*3TExbqS9@0fPHF2F&!!^468J72W'
WEBHOOK_API_KEY:
Được gửi trong header khi Go API gọi webhook vào Tools V2.
ipValidationMiddleware kiểm tra key này.
Phải khớp với key được cấu hình trên Go API.
Alias: WEBHOOK_KEY (cả hai đều được đọc, ưu tiên WEBHOOK_API_KEY).
PROXY_API_KEY:
Token riêng cho endpoint lấy proxy.
Tách biệt với API_KEY để có thể revoke độc lập.
IP_ALLOWED:
Comma-separated list IP được phép gọi API của Tools V2.
Ví dụ: "127.0.0.1,11.0.3.11,10.0.0.1".
Nếu rỗng: Tất cả IP đều được phép (không khuyến nghị trong production).
ipValidationMiddleware kiểm tra IP nguồn của mỗi request.
Trong Docker, MongoDB container có IP 11.0.3.11 nên cần thêm vào list.

4. Nhóm Biến: Kết Nối Go API Backend#

4.1. Danh Sách Biến#

BiếnKiểuMặc địnhMô tả
API_HOSTstringhttps://traffic-api.longtu.clubURL của Go API Backend
API_BASE_URLstringGiống API_HOSTAlias cho API_HOST
WEBHOOK_HOSTstringGiống API_HOSTAlias cho API_HOST

4.2. Chi Tiết#

API_HOST:
URL đầy đủ của Go API Backend, bao gồm protocol và port.
Development: http://localhost:33001.
Production: https://traffic-api.longtu.club.
Tools V2 gọi {API_HOST}/api/task/request để lấy tasks.
Tools V2 gọi {API_HOST}/webhook/task/update-status để gửi kết quả.
Alias:
API_BASE_URL và WEBHOOK_HOST đều fallback về API_HOST.
Cả ba biến đều được đọc, ưu tiên theo thứ tự: API_HOST > WEBHOOK_HOST > default.

5. Nhóm Biến: MongoDB#

5.1. Danh Sách Biến#

BiếnKiểuMặc địnhMô tả
DB_MONGO_HOSTstringlocalhostHostname của MongoDB server
DB_MONGO_PORTnumber27017Port của MongoDB
DB_MONGO_USERNAMEstring""Username MongoDB
DB_MONGO_PASSWORDstring""Password MongoDB
DB_MONGO_DATABASEstringtraffic-toolTên database

5.2. MongoDB URI Tự Động#

env.ts tự động xây dựng MONGODB_URI từ các biến trên:

5.3. Cấu Hình Theo Môi Trường#

Development (chạy trực tiếp, MongoDB trong Docker):
DB_MONGO_HOST=localhost
DB_MONGO_PORT=27017
DB_MONGO_USERNAME=root
DB_MONGO_PASSWORD=PwDev123
DB_MONGO_DATABASE=tool-traffic-tools
Development (cả Tools V2 và MongoDB trong Docker):
DB_MONGO_HOST=traffic_tool_mongodb_v2
DB_MONGO_PORT=27017
DB_MONGO_USERNAME=root
DB_MONGO_PASSWORD=PwDev123
DB_MONGO_DATABASE=tool-traffic-tools
Khi Tools V2 chạy trong Docker, phải dùng container name traffic_tool_mongodb_v2 thay vì localhost vì cả hai container trong cùng Docker network.

5.4. Docker Compose MongoDB#

docker-compose.yml khởi động MongoDB với cấu hình:
MongoDB version: 8 (latest stable).
IP tĩnh trong Docker network: 11.0.3.11.
Data được persist trong Docker volume mongodb_data.
Port được map ra host theo DB_MONGO_PORT.

6. Nhóm Biến: Giới Hạn Browser Và Cron#

6.1. Danh Sách Biến#

BiếnKiểuGiá trị DevGiá trị ProdMô tả
CRON_TASK_LIMITnumber25 (hardcode)25 (hardcode)Số traffic task đồng thời tối đa
CRON_REPORT_LIMITnumber2 (hardcode)2 (hardcode)Số report task đồng thời tối đa
CRON_SEARCH_LIMITnumber1 (hardcode)1 (hardcode)Số search task đồng thời tối đa
BROWSER_LIMIT_PER_PROCESSnumber1 (forced)Đọc từ envTổng số Chrome instances tối đa
BROWSER_LIMITnumber100 (hardcode)100 (hardcode)Hard limit tuyệt đối

6.2. Lưu Ý Quan Trọng#

CRON_TASK_LIMIT, CRON_REPORT_LIMIT, CRON_SEARCH_LIMIT được hardcode trong env.ts và không thể override qua .env. Giá trị trong .env.example chỉ là tham khảo, không có tác dụng.
BROWSER_LIMIT_PER_PROCESS trong development luôn là 1 bất kể giá trị trong .env. Chỉ trong production mới đọc từ env.

6.3. Tính Toán Giới Hạn Browser#

Khi cấu hình BROWSER_LIMIT_PER_PROCESS cho production, tính toán như sau:
RAM khả dụng cho Chrome = Tổng RAM - 4GB (OS và các process khác).
Mỗi Chrome instance trung bình 300MB RAM.
BROWSER_LIMIT_PER_PROCESS = RAM khả dụng / 300MB × 0.7 (buffer 30%).
Ví dụ với server 16GB RAM:
RAM khả dụng: 16 - 4 = 12GB = 12288MB.
Tối đa: 12288 / 300 = 40 instances.
Với buffer 30%: 40 × 0.7 = 28 instances.
Cấu hình: BROWSER_LIMIT_PER_PROCESS=28.

7. Nhóm Biến: Traffic Control#

7.1. Danh Sách Biến#

BiếnKiểuMặc địnhMô tả
TASK_RETRY_LIMITnumber8 (prod), unlimited (dev)Số lần retry tối đa cho một task
PROXY_RETRY_LIMITnumber15 (prod), unlimited (dev)Số lần retry tối đa cho một proxy
MAX_RETRY_COUNTnumber3 (prod), unlimited (dev)Số lần retry tối đa chung
KILL_TRAFFIC_RATIOnumber0.8Tỷ lệ kill traffic trong tổng allocation
HOME_TRAFFIC_RATIOnumber0.25Tỷ lệ home traffic trong tổng allocation
HOME_TRAFFIC_PER_TARGET_LIMITnumber3Số home traffic task đồng thời cho cùng một URL
HOME_TRAFFIC_LIMITnumber2Giới hạn tổng home traffic tasks
TASK_TRAFFIC_LIMITnumberCRON_TASK_LIMIT * 2Tổng traffic tasks tối đa trong queue
SEARCH_TASK_LIMITnumber1000 (prod)Tổng search tasks tối đa
GEOLOCATION_RANDOM_RADIUS_KMnumber2.0Bán kính ngẫu nhiên geolocation (km)
FAKE_SUCCESSbooleanfalseGiả lập thành công (chỉ dùng để test)
FAKE_SUCCESS_RATIOnumber0.5Tỷ lệ giả lập thành công
MODEstringbrowserChế độ chạy: browser hoặc api
ENABLE_ADS_RELATIONSbooleanfalseBật ads relations matching
ENABLE_GEOLOCATIONbooleantrueBật geolocation spoofing
ORIGINAL_SESSION_TASK_LIMITnumber0Giới hạn task dùng original session
SEARCH_FLOWstringclickLoại search flow: click hoặc report

7.2. Chi Tiết Biến Quan Trọng#

TASK_RETRY_LIMIT:
Số lần tối đa một task group được retry trước khi bị xóa.
Mỗi lần task reset về PENDING, retries_total tăng 1.
Khi retries_total > TASK_RETRY_LIMIT, task bị xóa và đánh dấu ERROR.
Development: Không giới hạn (để test không bị mất task).
Production: Mặc định 8 lần.
KILL_TRAFFIC_RATIO:
Tỷ lệ slots được dành cho kill traffic trong ResourceAllocator.
Mặc định 0.8 = 80% slots cho kill traffic khi có kill tasks.
Giá trị này ảnh hưởng đến _getDefaultAllocation() trong resource-allocator.ts.
HOME_TRAFFIC_PER_TARGET_LIMIT:
Số lượng home traffic tasks đang chạy đồng thời cho cùng một URL mục tiêu.
LinkTracker dùng giá trị này để giới hạn.
Mặc định 3: Tối đa 3 phiên Chrome cùng truy cập một URL.
GEOLOCATION_RANDOM_RADIUS_KM:
Khi geolocation được bật, vị trí thực tế được randomize trong bán kính này.
Mặc định 2.0 km: Vị trí có thể lệch tối đa 2km so với vị trí proxy.
Tạo sự đa dạng trong geolocation data.
FAKE_SUCCESS:
Chỉ dùng để test. Khi true, task được đánh dấu thành công mà không thực sự thực thi.
FAKE_SUCCESS_RATIO: Tỷ lệ task được fake thành công (0.5 = 50%).
Không bao giờ bật trong production.

8. Nhóm Biến: Anti-Captcha#

8.1. Danh Sách Biến#

BiếnKiểuMặc địnhMô tả
CAPTCHA_SOLVING_ENABLEDbooleantrueBật/tắt toàn bộ module giải CAPTCHA
CAPTCHA_FALLBACK_TO_MANUALbooleantrueFallback sang OpenAI Vision khi Anti-Captcha thất bại
ANTICAPTCHA_API_KEYstring—API key của anti-captcha.com
ANTICAPTCHA_BASE_URLstringhttps://api.anti-captcha.comBase URL của Anti-Captcha API
ANTICAPTCHA_TIMEOUTnumber300000Timeout chờ giải CAPTCHA (ms) = 5 phút
ANTICAPTCHA_RETRY_ATTEMPTSnumber3Số lần retry khi giải thất bại

8.2. Chi Tiết#

CAPTCHA_SOLVING_ENABLED:
Khi false: Toàn bộ module CAPTCHA bị tắt. Tasks gặp CAPTCHA sẽ thất bại.
Khi true: Hệ thống tự động phát hiện và giải CAPTCHA.
CAPTCHA_FALLBACK_TO_MANUAL:
Khi true: Nếu Anti-Captcha API thất bại, thử OpenAI Vision.
Khi false: Chỉ dùng Anti-Captcha API, không fallback.
Nên bật trong production để tăng tỷ lệ thành công.
ANTICAPTCHA_API_KEY:
API key của tài khoản anti-captcha.com.
Dịch vụ tính phí theo số lần giải.
Cần theo dõi số dư tài khoản để tránh gián đoạn.
Không bao giờ commit key thật vào Git.
ANTICAPTCHA_TIMEOUT:
Thời gian tối đa chờ Anti-Captcha API trả về token.
Mặc định 300000ms = 5 phút.
Nếu vượt quá timeout, task được đánh dấu thất bại.

9. Nhóm Biến: OpenAI#

9.1. Danh Sách Biến#

BiếnKiểuMặc địnhMô tả
CHATGPT_API_KEYstring—OpenAI API key (alias chính)
OPENAI_API_KEYstringFallback về CHATGPT_API_KEYOpenAI API key (alias phụ)
CHATGPT_MODELstringgpt-4o-miniModel mặc định (alias chính)
OPENAI_MODELstringFallback về CHATGPT_MODELModel mặc định (alias phụ)

9.2. Chi Tiết#

CHATGPT_API_KEY / OPENAI_API_KEY:
Cả hai đều được đọc, ưu tiên CHATGPT_API_KEY.
Dùng cho hai mục đích: tạo nội dung báo cáo và giải CAPTCHA bằng Vision.
Tính phí theo số tokens.
Không bao giờ commit key thật vào Git.
CHATGPT_MODEL / OPENAI_MODEL:
Model mặc định: gpt-4o-mini.
gpt-4o-mini được chọn vì cân bằng giữa chi phí và chất lượng.
Có thể override per-platform từ cấu hình trên Go API.
Không nên dùng gpt-4o vì chi phí cao hơn nhiều.

10. Nhóm Biến: Lưu Trữ Ảnh#

10.1. DigitalOcean Spaces (Primary)#

BiếnMô tả
DIGITAL_OCEAN_BUCKET_NAMETên bucket, ví dụ tools-greeting1073
DIGITAL_OCEAN_REGIONRegion: sgp1 (Singapore)
DIGITAL_OCEAN_ACCESS_KEY_IDAccess Key ID
DIGITAL_OCEAN_SECRET_ACCESS_KEYSecret Access Key
DIGITAL_OCEAN_ENDPOINTEndpoint: https://sgp1.digitaloceanspaces.com
DIGITAL_OCEAN_CDN_URLCDN URL: https://tools-greeting1073.sgp1.cdn.digitaloceanspaces.com

10.2. Cloudinary (Fallback)#

BiếnMô tả
CLOUDINARY_CLOUD_NAMECloud name
CLOUDINARY_API_KEYAPI Key
CLOUDINARY_API_SECRETAPI Secret
CLOUDINARY_UPLOAD_PRESETUpload preset

10.3. Chiến Lược Upload#

Hệ thống thử upload theo thứ tự:
Thử DigitalOcean Spaces trước.
Nếu thất bại, thử Cloudinary.
Nếu cả hai thất bại, lưu local trong storage/screenshots/.
URL ảnh được gửi về Go API qua webhook. Nếu lưu local, URL sẽ là đường dẫn local và không accessible từ bên ngoài.

11. Nhóm Biến: Email SMTP#

11.1. Danh Sách Biến#

BiếnKiểuMặc địnhMô tả
SMTP_HOSTstringsmtp.gmail.comSMTP server hostname
SMTP_PORTstring587SMTP port
SMTP_SECUREstringfalseDùng SSL/TLS (true) hay STARTTLS (false)
SMTP_USERstring—Email address
SMTP_PASSstring—App password (không phải mật khẩu Gmail thường)

11.2. Cấu Hình Gmail#

Gmail yêu cầu App Password thay vì mật khẩu thường:
Bật 2-Step Verification trên tài khoản Google.
Vào Google Account → Security → 2-Step Verification → App passwords.
Tạo App Password cho "Mail" và "Other device".
Dùng App Password này cho SMTP_PASS.
Cấu hình Gmail chuẩn:
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_SECURE=false
SMTP_USER=your-email@gmail.com
SMTP_PASS=xxxx xxxx xxxx xxxx

11.3. Cấu Hình Với SMTP Khác#

Với các SMTP server khác (SendGrid, Mailgun, v.v.):
SMTP_HOST=smtp.sendgrid.net
SMTP_PORT=587
SMTP_SECURE=false
SMTP_USER=apikey
SMTP_PASS=SG.your-sendgrid-api-key

12. Nhóm Biến: ZingProxy#

12.1. Danh Sách Biến#

BiếnKiểuMặc địnhMô tả
ZING_PROXY_API_KEYstringJWT token mặc địnhAPI key của ZingProxy
ZING_PROXY_BASE_URLstringhttps://api.zingproxy.com/proxyBase URL của ZingProxy API

12.2. Chi Tiết#

ZingProxy là nhà cung cấp proxy chính. API key là JWT token với thời hạn sử dụng. Cần cập nhật khi token hết hạn.
ZING_PROXY_BASE_URL là endpoint để lấy proxy mới từ ZingProxy. Được dùng bởi zing-proxy.service.ts.

13. Nhóm Biến: Logging#

13.1. Danh Sách Biến#

BiếnKiểuMặc địnhMô tả
LOG_LEVELstringinfoMức log: debug, info, warn, error
LOG_SERVICEstringappTên service mặc định trong log
LOG_TIMESTAMPbooleanfalseThêm timestamp vào log
LOG_COLORIZEDbooleanfalseTô màu log trong console
LOG_WRITE_TO_FILEbooleanfalseGhi log ra file
LOG_WRITE_TO_CONSOLEbooleanfalseIn log ra console
LOG_DIRstringstorage/logThư mục lưu log files
LOG_FOR_RECORDbooleanfalseGhi log chi tiết cho audit
ENABLE_SCREENSHOTSstringtrueBật/tắt chụp màn hình bằng chứng

13.2. Cấu Hình Khuyến Nghị#

Development:
LOG_LEVEL=debug
LOG_COLORIZED=true
LOG_WRITE_TO_FILE=true
LOG_WRITE_TO_CONSOLE=true
LOG_TIMESTAMP=true
LOG_FOR_RECORD=true
Production:
LOG_LEVEL=info
LOG_COLORIZED=false
LOG_WRITE_TO_FILE=true
LOG_WRITE_TO_CONSOLE=true
LOG_TIMESTAMP=true
LOG_FOR_RECORD=true

13.3. Log Level Ảnh Hưởng#

debug: Log tất cả, bao gồm cursor coordinates, network calls. Rất verbose.
info: Log các sự kiện quan trọng: task start/complete, proxy rotation.
warn: Log cảnh báo: proxy chậm, retry attempts.
error: Chỉ log lỗi nghiêm trọng.
Trong production, dùng info để tránh log quá nhiều làm đầy disk.

14. So Sánh Cấu Hình Theo Môi Trường#

14.1. Bảng So Sánh Đầy Đủ#

BiếnDevelopmentStagingProduction
NODE_ENVdevelopmentproductionproduction
DEBUGtruefalsefalse
PORT300530053005
API_HOSThttp://localhost:33001URL stagingURL production
SERVER_IDIP máy devIP server stagingIP server production
CRON_TASK_LIMIT25 (hardcode)25 (hardcode)25 (hardcode)
BROWSER_LIMIT_PER_PROCESS1 (forced)Theo RAM serverTheo RAM server
TASK_RETRY_LIMITUnlimited88
PROXY_RETRY_LIMITUnlimited1515
LOG_LEVELdebuginfoinfo
LOG_COLORIZEDtruefalsefalse
CAPTCHA_SOLVING_ENABLEDtruetruetrue
CAPTCHA_FALLBACK_TO_MANUALfalsetruetrue
DB_MONGO_HOSTlocalhostContainer nameContainer name

14.2. Biến Chỉ Khác Nhau Giữa Môi Trường#

Các biến sau cần thay đổi khi chuyển môi trường:
NODE_ENV: Ảnh hưởng đến isLocal flag và nhiều behaviors.
API_HOST: URL của Go API Backend tương ứng.
SERVER_ID: Phải là IP hoặc identifier duy nhất của server.
DB_MONGO_HOST: localhost khi dev, container name khi trong Docker.
IP_ALLOWED: Danh sách IP được phép gọi API.
BROWSER_LIMIT_PER_PROCESS: Tùy theo RAM của server.

15. Dockerfile Và Build#

15.1. Development Dockerfile — .docker/dev/Dockerfile#

Dockerfile development:
Dùng oven/bun:latest làm base image.
Cài đặt Google Chrome thực (không phải Chromium).
Copy toàn bộ source code vào container.
Chạy với hot-reload (bun run dev).

15.2. Production Build#

Production không dùng Dockerfile trong .docker/dev/. Thay vào đó, CI/CD pipeline build image riêng trên Bastion Build Server và push lên AWS ECR.
Quy trình build production:
Bastion Build Server pull code từ GitLab.
Build Docker image với docker buildx build.
Push image lên AWS ECR với tag latest và commit hash.
Các server Vnetwork pull image từ ECR và chạy.

15.3. Biến Môi Trường Trong Docker#

Khi chạy trong Docker, biến môi trường được truyền qua:
env_file: .env trong docker-compose.yml.
Hoặc environment: section trong docker-compose.yml.
Hoặc -e VAR=value khi chạy docker run.
Trong production, biến môi trường được lưu trong file .env trên server và mount vào container.

16. Bảo Mật Biến Môi Trường#

16.1. Biến Cần Bảo Vệ Đặc Biệt#

Các biến sau chứa credentials nhạy cảm, không bao giờ được commit vào Git hoặc log ra console:
API_KEY: Token xác thực với Go API.
WEBHOOK_API_KEY: Token xác thực webhook.
ANTICAPTCHA_API_KEY: API key Anti-Captcha (tính phí).
CHATGPT_API_KEY / OPENAI_API_KEY: OpenAI API key (tính phí).
DIGITAL_OCEAN_SECRET_ACCESS_KEY: AWS-compatible secret key.
CLOUDINARY_API_SECRET: Cloudinary secret.
SMTP_PASS: Gmail App Password.
ZING_PROXY_API_KEY: ZingProxy JWT token.
DB_MONGO_PASSWORD: MongoDB password.

16.2. Quy Tắc Bảo Mật#

File .env phải có trong .gitignore.
Không bao giờ hardcode credentials trong code.
Trong CI/CD, dùng GitLab CI/CD Variables (Protected) để lưu credentials.
Rotate API keys định kỳ hoặc khi nghi ngờ bị lộ.
Dùng App Password cho Gmail thay vì mật khẩu thường.
Giới hạn quyền của API keys (chỉ cấp quyền cần thiết).

16.3. Kiểm Tra .gitignore#

File .gitignore phải bao gồm:
.env
.env.backup
storage/
tmp/
dist/
node_modules/

16.4. Xử Lý Khi Credentials Bị Lộ#

Nếu phát hiện credentials bị lộ:
Revoke API key ngay lập tức trên dashboard của dịch vụ.
Tạo API key mới.
Cập nhật .env trên tất cả servers.
Restart workers để load credentials mới.
Kiểm tra logs để xem có hoạt động bất thường không.

17. Kiểm Tra Cấu Hình#

17.1. Kiểm Tra Sau Khi Setup#

Sau khi cấu hình .env, kiểm tra theo thứ tự:
Bước 1 — Kiểm tra server khởi động:
Bước 2 — Kiểm tra health:
Bước 3 — Kiểm tra kết nối Go API:
Bước 4 — Kiểm tra cấu hình (development only):

17.2. Dấu Hiệu Cấu Hình Sai#

Server không khởi động: Kiểm tra PORT có bị chiếm không.
"Cannot connect to MongoDB": Kiểm tra DB_MONGO_HOST, DB_MONGO_PORT, credentials.
Tasks không được nhận: Kiểm tra API_HOST, API_KEY.
Webhook thất bại: Kiểm tra WEBHOOK_API_KEY, IP_ALLOWED.
CAPTCHA không giải được: Kiểm tra ANTICAPTCHA_API_KEY, số dư tài khoản.
Screenshot không upload: Kiểm tra DigitalOcean credentials.
Email không gửi được: Kiểm tra SMTP credentials, App Password.

17.3. Xem Cấu Hình Hiện Tại#

Trong development, có thể xem toàn bộ cấu hình đang dùng:
Trong production, không bao giờ expose env qua API. Header Show-Env: true chỉ hoạt động khi NODE_ENV=development.

18. Template .env Đầy Đủ#

Dưới đây là template .env đầy đủ với tất cả biến và giải thích:
# ============================================================
# SERVER SETTINGS
# ============================================================
PORT=3005
NODE_ENV=development
DEBUG=true
RUNTIME=bun
SERVER_ID="127.0.0.1"

# ============================================================
# AUTHENTICATION
# ============================================================
API_KEY='your-api-key-here'
WEBHOOK_API_KEY='your-webhook-key-here'
PROXY_API_KEY='your-proxy-api-key-here'
IP_ALLOWED=127.0.0.1,11.0.3.11

# ============================================================
# GO API BACKEND
# ============================================================
API_HOST=http://localhost:33001

# ============================================================
# MONGODB
# ============================================================
DB_MONGO_HOST=localhost
DB_MONGO_PORT=27017
DB_MONGO_USERNAME=root
DB_MONGO_PASSWORD=PwDev123
DB_MONGO_DATABASE=tool-traffic-tools

# ============================================================
# BROWSER LIMITS (CRON_TASK_LIMIT hardcoded = 25)
# ============================================================
BROWSER_LIMIT_PER_PROCESS=1

# ============================================================
# TRAFFIC CONTROL
# ============================================================
TASK_RETRY_LIMIT=8
PROXY_RETRY_LIMIT=15
KILL_TRAFFIC_RATIO=0.8
HOME_TRAFFIC_RATIO=0.25
HOME_TRAFFIC_PER_TARGET_LIMIT=3
HOME_TRAFFIC_LIMIT=2
ENABLE_GEOLOCATION=true
GEOLOCATION_RANDOM_RADIUS_KM=2.0
MODE=browser
ENABLE_ADS_RELATIONS=false

# ============================================================
# ANTI-CAPTCHA
# ============================================================
CAPTCHA_SOLVING_ENABLED=true
CAPTCHA_FALLBACK_TO_MANUAL=true
ANTICAPTCHA_API_KEY=your-anticaptcha-key
ANTICAPTCHA_BASE_URL=https://api.anti-captcha.com
ANTICAPTCHA_TIMEOUT=300000
ANTICAPTCHA_RETRY_ATTEMPTS=3

# ============================================================
# OPENAI
# ============================================================
CHATGPT_API_KEY=sk-proj-your-openai-key
CHATGPT_MODEL=gpt-4o-mini

# ============================================================
# DIGITALOCEAN SPACES (PRIMARY STORAGE)
# ============================================================
DIGITAL_OCEAN_BUCKET_NAME=your-bucket-name
DIGITAL_OCEAN_REGION=sgp1
DIGITAL_OCEAN_ACCESS_KEY_ID=your-access-key
DIGITAL_OCEAN_SECRET_ACCESS_KEY=your-secret-key
DIGITAL_OCEAN_ENDPOINT=https://sgp1.digitaloceanspaces.com
DIGITAL_OCEAN_CDN_URL=https://your-bucket.sgp1.cdn.digitaloceanspaces.com

# ============================================================
# CLOUDINARY (FALLBACK STORAGE)
# ============================================================
CLOUDINARY_CLOUD_NAME=your-cloud-name
CLOUDINARY_API_KEY=your-api-key
CLOUDINARY_API_SECRET=your-api-secret
CLOUDINARY_UPLOAD_PRESET=ml_default

# ============================================================
# SMTP EMAIL
# ============================================================
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_SECURE=false
SMTP_USER=your-email@gmail.com
SMTP_PASS=your-gmail-app-password

# ============================================================
# ZING PROXY
# ============================================================
ZING_PROXY_API_KEY=your-zing-proxy-jwt-token
ZING_PROXY_BASE_URL=https://api.zingproxy.com/proxy

# ============================================================
# LOGGING
# ============================================================
LOG_LEVEL=info
LOG_SERVICE=app
LOG_TIMESTAMP=true
LOG_COLORIZED=true
LOG_WRITE_TO_FILE=true
LOG_WRITE_TO_CONSOLE=true
LOG_DIR=storage/log
LOG_FOR_RECORD=true
ENABLE_SCREENSHOTS=true
Modified at 2026-03-27 02:17:39
Previous
Code Structure
Next
Logs And Monitoring
Built with