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

Tài Liệu Cấu Hình Môi Trường — API Backend Traffic Tools V2#


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

API Backend sử dụng thư viện spf13/viper để đọc file .env vào struct EnvStruct được định nghĩa trong pkg/env.go. Toàn bộ cấu hình được typed — mỗi biến có kiểu dữ liệu Go cụ thể (string, int, bool, time.Duration) thay vì string thô.
Quy trình nạp khi khởi động:
Viper đọc file .env ở thư mục gốc dự án.
Map giá trị vào EnvStruct theo tag mapstructure.
pkg.Env là biến global duy nhất lưu giữ toàn bộ cấu hình.
Toàn bộ module import pkg.Env để đọc cấu hình, không đọc os.Getenv trực tiếp.
Nếu không tìm thấy file .env, Viper tự động đọc từ biến môi trường hệ thống.

2. Danh Sách Đầy Đủ Biến Môi Trường#

2.1. Cấu Hình Ứng Dụng#

BiếnKiểuGiá Trị Mặc ĐịnhÝ Nghĩa
APP_MODEstringdevelopmentChế độ chạy: development, production. Ảnh hưởng đến CORS, log level và các tính năng debug.
SERVER_PORTstring33003Cổng HTTP server lắng nghe.
AUTO_MIGRATE_DATABASEboolfalseNếu true, GORM tự động migrate schema MySQL khi khởi động. Chỉ bật ở Dev.
API_KEYstring—Key xác thực cho các request không JWT (internal service calls).

2.2. Cơ Sở Dữ Liệu MySQL#

BiếnGiá Trị DevGiá Trị ProductionÝ Nghĩa
DB_MYSQL_HOSTtraffic_tool_mysqlIP máy chủ MySQL productionHostname của MySQL server
DB_MYSQL_PORT33063306Cổng MySQL
DB_MYSQL_USERrootTài khoản có quyền hạn chếUsername kết nối
DB_MYSQL_PASSPwDev123Mật khẩu phức tạpMật khẩu MySQL
DB_MYSQL_NAMEtool_traffic_apitool_traffic_apiTên database
Lưu ý production: Không dùng root — tạo user riêng với quyền chỉ SELECT, INSERT, UPDATE, DELETE trên database tool_traffic_api.

2.3. Cơ Sở Dữ Liệu MongoDB#

BiếnGiá Trị DevGiá Trị ProductionÝ Nghĩa
DB_MONGO_HOSTtraffic_tool_mongodbIP máy chủ MongoDBHostname của MongoDB server
DB_MONGO_PORT2701727017Cổng MongoDB
DB_MONGO_USERrootTài khoản không phải rootUsername
DB_MONGO_PASSPwDev123Mật khẩu phức tạpMật khẩu MongoDB
DB_MONGO_NAMEtool-traffic-apitool-traffic-apiTên database MongoDB

2.4. Redis#

BiếnGiá Trị DevÝ Nghĩa
REDIS_HOSTtraffic_tool_redisHostname Redis
REDIS_PORT6379Cổng Redis
REDIS_USER(trống)Username nếu Redis có auth
REDIS_PASS(trống)Mật khẩu Redis
REDIS_DB0Database index trong Redis (0-15)

2.5. Bảo Mật Và Xác Thực#

BiếnÝ Nghĩa
JWT_SECRETSecret key ký/verify JWT token. Tuyệt đối không dùng giá trị mặc định ở Production.
WEBHOOK_SECKET_KEYKey xác thực webhook từ nội bộ.
WEBHOOK_KEYKey 64 ký tự hex, dùng cho xác thực webhook calls.
WHITE_LIST_IP_TOOL_TRAFFICComma-separated list các IP worker được phép gọi /api/task/request. Ví dụ: 127.0.0.1,10.0.0.5.

2.6. Cấu Hình Session#

BiếnKiểuGiá Trị Mặc ĐịnhÝ Nghĩa
SESSION_TIMEOUTtime.Duration1hThời gian session hết hạn sau lần hoạt động cuối.
DISABLE_SESSION_TIMEOUTboolfalseTắt kiểm tra session timeout (chỉ dùng trong development).
DEV_SESSION_TIMEOUTtime.Duration24hSession timeout kéo dài cho development khi DISABLE_SESSION_TIMEOUT=true.
DISABLE_2FAboolfalseTắt xác thực 2FA (chỉ dùng trong development).

2.7. Cấu Hình Cron Job#

Mỗi biến chứa một biểu thức cron (chuẩn 5-field):
BiếnBiểu Thức Mặc ĐịnhTần Suất
SCHEDULE_RESET_TASK*/10 * * * *Mỗi 10 phút: reset task bị kẹt
SCHEDULE_SEND_TASK* * * * *Mỗi phút: giao task mới đến server
SCHEDULE_REPORT_TRAFFIC0 2-22/2 * * *Mỗi 2 giờ từ 2h-22h: tổng hợp báo cáo
SCHEDULE_REPORT_TRAFFIC_EXTRA59 23 * * *23:59 mỗi ngày: báo cáo cuối ngày
SCHEDULE_SERVER_HOURLY_REPORT0 * * * *Mỗi đầu giờ: báo cáo tình trạng server
SCHEDULE_SEARCH_KEYWORD*/30 * * * *Mỗi 30 phút: kiểm tra thứ hạng từ khóa
SCHEDULE_CONFIRM_FIRE*/30 * * * *Mỗi 30 phút: xác nhận tác vụ hoàn thành
SCHEDULE_CHANGE_ACTIVE_PROXYTheo cấu hìnhKích hoạt/vô hiệu hóa proxy theo lịch
SCHEDULE_CHECK_PROJECT_DEADTheo cấu hìnhPhát hiện project không còn hoạt động
MATTERMOST_SCHEDULE0 0 9 * * *9:00 sáng hàng ngày: báo cáo Mattermost

2.8. Cấu Hình Webhook#

BiếnÝ Nghĩa
WEBHOOK_HOSTBase URL của chính API server này. Tools_v2 dùng để gọi lại webhook. Ví dụ: http://traffic_tool_api:33003.
WEBHOOK_TASK_UPDATE_STATUS_URLURL admin update trạng thái task: {WEBHOOK_HOST}/webhook/task/update-status.
WEBHOOK_PROXY_GET_PROXY_URLURL lấy proxy: {WEBHOOK_HOST}/webhook/proxy/get-proxy.
WEBHOOK_SEARCH_KEYWORD_URLURL nhận kết quả từ khóa: {WEBHOOK_HOST}/webhook/keyword-result.
WEBHOOK_URLURL cập nhật tiến trình: {WEBHOOK_HOST}/webhook/task/update-process.
WEBHOOK_CHECK_PROXY_ALIVE_URLURL kiểm tra IP còn sống: https://api.ipify.org/.

2.9. Cấu Hình Proxy#

BiếnKiểuÝ Nghĩa
PROXY_USE_MAXintSố lần tối đa một IP proxy được phép dùng trước khi bị thay thế. Mặc định: 1.
PROXY_ROTATE_MAX_CONCURRENTintSố goroutine đồng thời tối đa được phép xoay IP.
LIMIT_SEND_TASK_PER_SERVERintSố tác vụ tối đa giao cho mỗi server worker trong một chu kỳ cron. Mặc định: 300.

2.10. Cấu Hình Traffic Pool#

Giới hạn số lượng traffic theo từng loại mỗi ngày:
BiếnGiá Trị Mặc ĐịnhÝ Nghĩa
TRAFFIC_GG_ADS100Giới hạn traffic Google Ads click
TRAFFIC_CC_ADS100000Giới hạn traffic CocCoc Ads click
TRAFFIC_KILL750000Giới hạn traffic Negative SEO (Kill)
TRAFFIC_HOME5000Giới hạn traffic truy cập trang chủ
TRAFFIC_NORMAL_CLICK100000Giới hạn traffic click tự nhiên

2.11. Telegram Bot#

BiếnÝ Nghĩa
TELEGRAM_BOT_TOKENToken của Telegram bot (từ BotFather).
TELEGRAM_CHAT_IDChat ID nhận thông báo chung.
TELEGRAM_CHAT_REPORT_IDChat ID nhận báo cáo định kỳ.
TELEGRAM_CHAT_ERROR_IDChat ID nhận cảnh báo lỗi hệ thống.
ENABLE_PUSH_MESSAGE_ERROR_TO_TELEGRAMbool — Bật/tắt gửi lỗi lên Telegram.
ENABLE_TELEGRAM_REPORTbool — Bật/tắt gửi báo cáo định kỳ lên Telegram.

2.12. Mattermost#

BiếnGiá Trị Mặc ĐịnhÝ Nghĩa
MATTERMOST_API_URLhttps://chat.nospace.networkURL Mattermost server
MATTERMOST_API_TOKEN—Token xác thực Mattermost
MATTERMOST_CHANNEL_ID—ID kênh nhận thông báo
MATTERMOST_VERIFY_SSLtrueXác minh SSL certificate
MATTERMOST_TIMEOUT—Timeout kết nối (giây)
MATTERMOST_CONNECT_TIMEOUT—Timeout kết nối ban đầu (giây)
MATTERMOST_SCHEDULE0 0 9 * * *Lịch gửi báo cáo (9:00 sáng hàng ngày)

2.13. Tích Hợp Scan Domain#

BiếnÝ Nghĩa
PROXY_SCAN_DOMAIN_URLEndpoint dịch vụ proxy scan để kiểm tra IP bị chặn theo domain.
API_SCAN_DOMAIN_URLAPI ngoài kiểm tra tình trạng domain.
API_ACCESS_TOKENToken xác thực cho API scan domain.

2.14. DigitalOcean Spaces#

BiếnÝ Nghĩa
DIGITALOCEAN_ACCESS_KEYAccess key cho DigitalOcean Spaces
DIGITALOCEAN_SECRET_KEYSecret key cho DigitalOcean Spaces
DIGITALOCEAN_REGIONRegion của bucket (ví dụ: sgp1)
DIGITALOCEAN_BUCKET_NAMETên bucket lưu trữ file
DIGITALOCEAN_ENDPOINTEndpoint URL của DigitalOcean Spaces
DIGITALOCEAN_CDN_URLURL CDN để truy cập file đã upload

2.15. Proxy Provider Credentials#

BiếnÝ Nghĩa
PROXY_XOAY_USERNAMEUsername cho dịch vụ ProxyXoay
PROXY_XOAY_PASSWORDPassword cho dịch vụ ProxyXoay
ENODE_PROXY_TOKENToken cho dịch vụ Enode Proxy
ZING_PROXY_TOKENToken cho dịch vụ Zing Proxy
M2_PROXY_TOKENToken cho dịch vụ M2 Proxy

3. File .env.example — Template Chuẩn#

File .env.example được commit vào Git như một tài liệu sống về tất cả biến cần thiết. Developer mới clone dự án sẽ copy file này và điền giá trị cục bộ:
Quy tắc với .env trong dự án này:
.env — Không bao giờ commit. Chứa giá trị thực.
.env.example — Luôn commit. Chứa cấu trúc và ghi chú.
.env.original — Bản lưu trữ cấu hình gốc, không dùng trực tiếp.

4. Cấu Hình Docker Compose#

File docker-compose.yaml khởi động toàn bộ hạ tầng cục bộ:
Tên hostname trong .env trùng với tên service Docker Compose để kết nối nội bộ qua Docker network. Khi chạy local không qua Docker, thay hostname bằng localhost và port tương ứng.
Lệnh khởi động:

5. Cấu Hình .air.toml — Hot Reload#

File .air.toml cấu hình Air để tự động reload khi code thay đổi:
[build]
  cmd = "go build -o ./tmp/main ./cmd/main.go"
  bin = "./tmp/main"
  include_ext = ["go"]
  exclude_dir = ["logs", "tmp", "testdata", "mysql-data"]
  delay = 500  # ms chờ trước khi rebuild
Khi lưu file .go, Air tự động rebuild và restart server trong vòng 500ms.

6. Lưu Ý Bảo Mật Cho Production#

JWT_SECRET: Phải là chuỗi ngẫu nhiên tối thiểu 32 ký tự. Không dùng secret-key mặc định.
WEBHOOK_KEY: Phải là chuỗi 64 ký tự hex ngẫu nhiên. Không dùng key trong .env.example.
Database passwords: Phải đặt mật khẩu mạnh, khác hoàn toàn Dev.
WHITE_LIST_IP_TOOL_TRAFFIC: Chỉ thêm IP của các server worker thực tế, không thêm 0.0.0.0.
ENABLE_PUSH_MESSAGE_ERROR_TO_TELEGRAM: Đặt true ở Production để nhận cảnh báo lỗi kịp thời.
AUTO_MIGRATE_DATABASE: Đặt false ở Production. Migration phải được review và chạy thủ công.
DISABLE_2FA: Luôn false ở Production. Chỉ dùng true trong development.
DISABLE_SESSION_TIMEOUT: Luôn false ở Production.

7. Giá Trị Mặc Định Tự Động#

Hàm LoadEnv() tự động đặt giá trị mặc định cho một số biến nếu không được cấu hình:

8. Cấu Hình Môi Trường Development Vs Production#

Tính NăngDevelopmentProduction
CORSAllowOrigins = "*"Chỉ các origin cụ thể
2FATắt (DISABLE_2FA=true)Bật bắt buộc
Session Timeout24 giờ1 giờ (cấu hình qua SESSION_TIMEOUT)
Auto MigrateBật (AUTO_MIGRATE_DATABASE=true)Tắt
Log LevelDebug + InfoInfo + Error
Route PrintBật (EnablePrintRoutes=true)Tắt
Telegram ErrorTùy chọnBật bắt buộc

9. Cấu Hình Kết Nối Database Chi Tiết#

9.1. MySQL Connection String#

GORM tạo connection string theo format:
{user}:{password}@tcp({host}:{port})/{dbname}?charset=utf8mb4&parseTime=True&loc=Local
Ví dụ development:
root:PwDev123@tcp(localhost:33022)/tool_traffic_api?charset=utf8mb4&parseTime=True&loc=Local
Tham số quan trọng:
charset=utf8mb4 — Hỗ trợ đầy đủ Unicode bao gồm emoji.
parseTime=True — Tự động parse DATETIME MySQL thành time.Time Go.
loc=Local — Sử dụng múi giờ local của server (Asia/Ho_Chi_Minh).

9.2. MongoDB Connection String#

mongodb://{user}:{password}@{host}:{port}/{dbname}?authSource=admin
Ví dụ development:
mongodb://root:PwDev123@localhost:33021/tool-traffic-api?authSource=admin

9.3. Redis Connection#


10. Cấu Hình Connection Pool#

10.1. MySQL Connection Pool#

GORM sử dụng database/sql connection pool bên dưới. Cấu hình trong pkg/database/mysql_pool.go:

10.2. MongoDB Connection Pool#

MongoDB driver tự quản lý connection pool. Cấu hình trong pkg/database/mongo_pool.go:

11. Cấu Hình Fiber Server#

Fiber được khởi tạo với các tham số sau trong cmd/main.go:
EnablePrintRoutes — In danh sách tất cả routes khi khởi động (chỉ development).
ReadTimeout — Thời gian tối đa để đọc toàn bộ request body.
WriteTimeout — Thời gian tối đa để ghi response.
IdleTimeout — Thời gian tối đa giữ kết nối idle (keep-alive).

12. Cấu Hình Log Rotation#

Log rotation được cấu hình trong cmd/main.go sử dụng lumberjack:
Log được ghi đồng thời vào cả stdout và file thông qua io.MultiWriter:

13. Cấu Hình Static Files#

API phục vụ file tĩnh từ thư mục public/:
Thư mục public/import_excel/ chứa file Excel mẫu để import proxy (proxy.xlsx). Người dùng có thể tải về qua GET /public/import_excel/proxy.xlsx.

14. Cấu Hình Middleware Timeout#

pkg/middleware/timeout.go định nghĩa timeout mặc định cho request processing:
Middleware này được áp dụng toàn cục để ngăn các request xử lý quá lâu làm nghẽn goroutine pool. Các endpoint đặc biệt như /api/proxy/import-all có timeout riêng được xử lý ở tầng service.

15. Cấu Hình Webhook Middleware#

pkg/middleware/webhook_middleware.go xác thực các request đến webhook endpoints:
Worker phải gửi header X-Webhook-Key: {WEBHOOK_KEY} với mọi request đến webhook endpoints. Giá trị WEBHOOK_KEY phải khớp với giá trị trong .env của API server.

16. Cấu Hình IP Whitelist#

pkg/middleware/validate_ip.go kiểm tra IP của request đến các endpoint nhạy cảm:
Biến WHITE_LIST_IP_TOOL_TRAFFIC trong .env chứa danh sách IP được phép, phân cách bằng dấu phẩy. Viper tự động parse thành []string khi load cấu hình.
Modified at 2026-03-26 10:46:29
Previous
Code Structure
Next
Logs and Monitoring
Built with