1. API
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. API

Tổng quan

Tài Liệu Thiết Kế Tổng Quan — API Backend Traffic Tools V2#


1. Mục Đích Và Vai Trò#

Project api/ là backend engine trung tâm của hệ thống Traffic Tools V2. Đây là nơi duy nhất lưu trữ toàn bộ dữ liệu cấu hình (chiến dịch, proxy, từ khóa, tài khoản người dùng), xử lý xác thực JWT, phân phối tác vụ đến các node thực thi và thu thập kết quả.
Ứng dụng được xây dựng bằng Go framework Fiber v2 và lắng nghe trên cổng 33003 theo mặc định. Nó giao tiếp với ba hệ thống chính:
Admin Dashboard (admin/): Nhận yêu cầu từ người quản trị thông qua REST API có xác thực JWT. Mọi thao tác cấu hình, giám sát và báo cáo đều đi qua lớp này.
tools_v2: Nhận yêu cầu tác vụ từ worker engine, trả về tác vụ cần thực thi, xử lý webhook kết quả. Đây là luồng dữ liệu thời gian thực quan trọng nhất.
Máy chủ Worker: Giao tác vụ qua API POST và nhận kết quả qua webhook GET/POST. Worker không có quyền truy cập trực tiếp vào database.

2. Ngăn Xếp Công Nghệ#

Thành PhầnCông NghệPhiên BảnVai Trò
Ngôn ngữGo1.22.4Ngôn ngữ nền tảng — compiled, statically typed
Web FrameworkFiber v2v2.52.5HTTP router và middleware chain
WebSocketgofiber/contrib/socketiov1.1.3Real-time socket cho giám sát live server
ORMGORMv1.25.12Tương tác với MySQL (models, migrations)
Driver MySQLgo-sql-driver/mysqlv1.8.1Kết nối thấp đến MySQL
Driver MongoDBgo.mongodb.org/mongo-driverv1.17.1Tương tác trực tiếp với MongoDB
Cachego-redis/redis v8v8.11.5Redis — lưu token blacklist, cache dữ liệu
In-memory Cachepatrickmn/go-cachev2.1.0Cache nhanh trong RAM không cần Redis
Schedulergocron/v2v2.12.4Cron job điều phối tác vụ định kỳ
Cron parserrobfig/cron/v3v3.0.1Parse biểu thức cron từ .env
JWTgofiber/contrib/jwtv1.0.10Middleware xác thực JWT trên route bảo vệ
JWT parsergolang-jwt/jwt/v5v5.2.1Tạo và verify JWT token
TOTPxlzd/gotpv0.1.0Tạo mã 2FA theo chuẩn TOTP (Google Auth)
Configspf13/viperv1.19.0Đọc .env file vào struct typed
Loggergo.uber.org/zapv1.27.0Structured logging hiệu suất cao
Log Rotationlumberjack.v2v2.2.1Tự động cuộn file log theo ngày/kích thước
Validatorgo-playground/validator/v10v10.22.1Validate DTO struct từ request body
Excel Exportxuri/excelize/v2v2.9.0Xuất báo cáo dạng .xlsx
UUIDgoogle/uuidv1.6.0Tạo UUID cho các entity mới
Utilitysamber/lov1.47.0Generics utilities (map, filter, contains)
Cryptogolang.org/x/cryptov0.30.0Mã hóa password bcrypt
AWS SDKaws/aws-sdk-gov1.55.8Tích hợp upload file lên S3/DigitalOcean Spaces
DI Containergo.uber.org/digv1.18.0Dependency injection framework
Mattermost(HTTP client)—Gửi thông báo qua Mattermost

3. Sơ Đồ Luồng Dữ Liệu Tổng Thể#

Admin Dashboard (Vue 3)
        |
        | JWT REST API (port 33003)
        v
+----------------------------------------------------------+
|                  Go Fiber API Server                     |
|                                                          |
|  +---------------+  +-------------+  +---------------+  |
|  |  Auth Layer   |  |  Business   |  |  Cron Jobs    |  |
|  |  (JWT/2FA/    |  |  Layer      |  |  (gocron)     |  |
|  |   Device-     |  |  (36 module)|  |  (15+ jobs)   |  |
|  |   Token)      |  |             |  |               |  |
|  +-------+-------+  +------+------+  +-------+-------+  |
|          |                 |                 |           |
|          +-----------------+-----------------+           |
|                            |                             |
|               +------------+------------+                |
|               |    Data Access Layer    |                |
|               |  GORM (MySQL)           |                |
|               |  mongo-driver (MongoDB) |                |
|               |  go-redis (Redis)       |                |
|               +------------+------------+                |
+----------------------------+-----------------------------+
                             |
          +------------------+------------------+
          v                  v                  v
       MySQL              MongoDB             Redis
   (user, proxy,       (task_log,          (token,
    campaign,           evidence,           session,
    keyword,            reports,            cron lock)
    server, task)       keyword_result)

4. Kiến Trúc Route — Nhóm API Đầy Đủ#

Toàn bộ route được khai báo trong bootstrap/routes.go. Có ba loại route chính:

4.1. Route Công Khai (Không Xác Thực)#

MethodPathHandlerMục Đích
GET/inlineTrả về thông tin cơ bản API
POST/api/user/loginuserHandler.LoginĐăng nhập, nhận JWT token
POST/api/user/registeruserHandler.CreateĐăng ký tài khoản mới
GET/api/reset-create-tasktaskHandler.ResetCreateTaskReset tác vụ bị kẹt
POST/api/task/requesttaskHandler.RequestTaskstools_v2 yêu cầu tác vụ mới
POST/api/report/request-taskreportDashboardHandler.RequestReportTasktools_v2 yêu cầu tác vụ báo cáo
GET/api/campaign/reportscampaignHandler.GetReportBáo cáo chiến dịch
GET/api/campaigns/reportscampaignHandler.GetAllReportsBáo cáo tất cả chiến dịch
GET/api/servers/reportsserverHandler.GetReportBáo cáo server
*/api/reports/...reportHandlerBáo cáo CSV (công khai để download)
*/api/dashboard/...dashboardHandlerData cho Looker Studio (công khai)
POST/api/monitormonitorHandler.MonitorPing giám sát từ worker
*/api/system-settings/...systemSettingsHandlerCấu hình hệ thống
*/api/evidence/...evidenceHandlerTruy vấn ảnh bằng chứng

4.2. Route Webhook (Luôn Công Khai)#

Webhook routes được đặt dưới prefix /webhook và tuyệt đối không được thêm authentication middleware. Đây là điểm nhận callback từ worker và tools_v2.
PathMô Tả
/webhook/task/update-statusWorker cập nhật trạng thái tác vụ sau khi hoàn thành
/webhook/task/update-processWorker cập nhật tiến trình thực thi theo thời gian thực
/webhook/proxy/get-proxyWorker yêu cầu proxy IP cho tác vụ mới
/webhook/keyword-resultGhi nhận kết quả tìm kiếm từ khóa từ worker
/webhook/report/...Webhook xử lý kết quả báo cáo từ tools_v2
/webhook/coccoc-token/...Nhận token CocCoc từ worker sau khi đăng nhập

4.3. Route Bảo Vệ (Yêu Cầu JWT)#

Áp dụng hai middleware theo thứ tự:
middleware.AuthMiddleware — Kiểm tra Device-Token header trong database MySQL và kiểm tra session timeout.
middleware.JWTMiddleware — Verify chữ ký JWT bằng JWT_SECRET và kiểm tra session timeout trong Redis.
ModulePath PrefixHandler Module
User/api/userinternal/user/handler
Campaign/api/campaigninternal/campaign/handler
Server/api/serverinternal/server/handler
Project/api/projectinternal/project/handler
Project Detail/api/project-detailinternal/project_detail/handler
Task Log/api/task-loginternal/task_log/handler
Activity Log/api/activity-loginternal/activity_log/handler
Proxy/api/proxyinternal/proxy/handler
Backup Proxy/api/backup-proxyinternal/backup_proxy/handler
Proxy IP Log/api/proxy-ip-loginternal/proxy_ip_log/handler
Proxy Provider/api/proxy-providersinternal/proxy_providers/handler
Proxy Package/api/proxy-packagesinternal/proxy_packages/handler
Profile/api/profilesinternal/profiles/handler
Keyword/api/keywordsinternal/keyword/handler
Keyword Analytics/api/keyword-analyticsinternal/keyword_analytics/handler
Keyword Result/api/keyword-resultinternal/keyword_result/handler
Keyword Schedule/api/keyword-scheduleinternal/keyword_schedule/handler
Setup Fire/api/setup-fireinternal/setup_fire/handler
Location/api/locationsinternal/location/handler
Files/api/filesinternal/storage/handler
Server Hourly Report/api/server-hourly-reportinternal/server_hourly_report/handler
Admin Dashboard/api/dashboard/admin/...Admin middleware + dashboardHandler

5. Hệ Thống Cron Job#

Tất cả cron job được khởi tạo trong bootstrap/cron/cron.go và chạy theo biểu thức cron cấu hình qua .env. Có 15+ cron job chạy song song:
Tên CronBiến EnvTần SuấtChức Năng
Task SendSCHEDULE_SEND_TASKMỗi phútGiao tác vụ mới đến các server worker
Task ResetSCHEDULE_RESET_TASKMỗi 10 phútReset các tác vụ bị kẹt quá lâu
Report TrafficSCHEDULE_REPORT_TRAFFICMỗi 2 giờ (2h-22h)Tổng hợp báo cáo traffic
Report Traffic ExtraSCHEDULE_REPORT_TRAFFIC_EXTRA23:59 mỗi ngàyBáo cáo cuối ngày
Server Hourly ReportSCHEDULE_SERVER_HOURLY_REPORTMỗi đầu giờBáo cáo tình trạng từng server
Search KeywordSCHEDULE_SEARCH_KEYWORDMỗi 30 phútKiểm tra thứ hạng từ khóa
Confirm FireSCHEDULE_CONFIRM_FIREMỗi 30 phútXác nhận các tác vụ đã hoàn thành
Proxy Change ActiveSCHEDULE_CHANGE_ACTIVE_PROXYTheo cấu hìnhKích hoạt/vô hiệu hóa proxy theo lịch
Project Dead CheckSCHEDULE_CHECK_PROJECT_DEADTheo cấu hìnhPhát hiện project không còn hoạt động
Backup Proxy Update(hardcoded 5 phút)Mỗi 5 phútCập nhật danh sách backup proxy
Backup Proxy Health(hardcoded 2 phút)Mỗi 2 phútKiểm tra sức khỏe backup proxy
Free Proxy Fetch(hardcoded)Theo cấu hìnhThu thập proxy miễn phí
Free Proxy Health(hardcoded)Theo cấu hìnhKiểm tra sức khỏe free proxy
MongoDB Cleanup(hardcoded)Theo cấu hìnhDọn dẹp dữ liệu cũ trong MongoDB
Mattermost ReportMATTERMOST_SCHEDULE9:00 sáng hàng ngàyGửi báo cáo tổng hợp qua Mattermost
Report Sync(hardcoded)Theo cấu hìnhĐồng bộ dữ liệu báo cáo
Search Dispatch(hardcoded)Theo cấu hìnhPhân phối tác vụ tìm kiếm
Log Cleanup(hardcoded)Theo cấu hìnhDọn dẹp file log cũ

6. Hệ Thống Cơ Sở Dữ Liệu#

Backend sử dụng đồng thời ba loại cơ sở dữ liệu với vai trò khác nhau:
DatabaseCông NghệDữ Liệu Lưu Trữ
MySQLGORMDữ liệu quan hệ: user, campaign, proxy, server, keyword, task, proxy_package, proxy_provider, location
MongoDBmongo-driverDữ liệu phi cấu trúc: task_log chi tiết, evidence (ảnh bằng chứng), reports tổng hợp, keyword_result, server_hourly_report
Redisgo-redisSession token, last_active_at tracking, distributed lock cho cron job

7. Hệ Thống Xác Thực Hai Lớp#

7.1. Luồng Đăng Nhập#

Bước 1: Client gọi POST /api/user/login với email và password.
Bước 2: Server verify password bằng bcrypt, tạo JWT token với JWT_SECRET.
Bước 3: Server tạo device_token (UUID) và lưu vào bảng users.device_token.
Bước 4: Server trả về token (JWT), device_token, is_2fa (trạng thái 2FA của tài khoản).
Bước 5: Nếu is_2fa = true, client phải gọi POST /api/user/verify-totp với mã OTP.
Bước 6: Sau khi verify TOTP thành công, server cập nhật is_logged_in = true và last_active_at.

7.2. Cơ Chế Xác Thực Mỗi Request#

Mỗi request đến route bảo vệ phải có hai header:
Authorization: Bearer {jwt_token} — JWT token từ bước đăng nhập.
Device-Token: {device_token} — Device token từ bước đăng nhập.
AuthMiddleware kiểm tra device_token trong bảng users MySQL và xác nhận is_logged_in = true. Sau đó cập nhật last_active_at và kiểm tra session timeout (mặc định 1 giờ, có thể cấu hình qua SESSION_TIMEOUT).
JWTMiddleware verify chữ ký JWT và kiểm tra last_active_at trong Redis. Nếu thời gian từ lần hoạt động cuối vượt quá SESSION_TIMEOUT, session bị hủy.

7.3. Cơ Chế 2FA (TOTP)#

Sử dụng thư viện xlzd/gotp theo chuẩn TOTP (Time-based One-Time Password) tương thích với Google Authenticator:
GET /api/user/generate-totp — Tạo secret key và QR code URI cho lần thiết lập đầu tiên.
POST /api/user/verify-totp — Xác minh mã OTP 6 chữ số. Nếu đúng, đánh dấu two_factor = true trong database.
Trong môi trường development, có thể tắt 2FA bằng DISABLE_2FA=true trong .env.

8. Hệ Thống Thông Báo#

8.1. Telegram#

API gửi thông báo đến ba kênh Telegram riêng biệt:
TELEGRAM_CHAT_ID — Thông báo chung về hoạt động hệ thống.
TELEGRAM_CHAT_REPORT_ID — Báo cáo tự động định kỳ (traffic, hiệu suất).
TELEGRAM_CHAT_ERROR_ID — Cảnh báo lỗi nghiêm trọng cần can thiệp ngay.
Điều kiện gửi được kiểm soát bởi ENABLE_PUSH_MESSAGE_ERROR_TO_TELEGRAM=true/false.

8.2. Mattermost#

Tích hợp Mattermost để gửi báo cáo tổng hợp hàng ngày vào lúc 9:00 sáng (cấu hình qua MATTERMOST_SCHEDULE). Báo cáo bao gồm thống kê traffic, hiệu suất server và tình trạng proxy pool.

9. Background Services#

Hai dịch vụ nền chạy song song với HTTP server trong goroutine riêng:

9.1. HealthCheckCron#

Ping chủ động đến từng server worker theo lịch. Nếu server không phản hồi:
Đánh dấu status = offline trong MySQL.
Ghi log vào kênh background_services.
Gửi thông báo Telegram nếu được bật.
Tác vụ ngừng được giao đến server đó cho đến khi ping thành công lại.

9.2. TaskMonitor#

Liên tục scan database để tìm các tác vụ bị kẹt (stuck tasks) — tác vụ đã giao cho worker nhưng không nhận được phản hồi sau khoảng thời gian cấu hình. Khi phát hiện:
Reset tác vụ về trạng thái pending để giao lại cho server khác.
Ghi log chi tiết vào kênh background_services.
Cả hai dịch vụ hỗ trợ graceful shutdown thông qua context.Context — khi server nhận tín hiệu tắt, chúng hoàn thành chu kỳ hiện tại trước khi dừng.

10. Tích Hợp DigitalOcean Spaces#

Module internal/storage cung cấp khả năng upload file lên DigitalOcean Spaces (tương thích S3 API) thông qua AWS SDK:
DIGITALOCEAN_ACCESS_KEY và DIGITALOCEAN_SECRET_KEY — Credentials.
DIGITALOCEAN_BUCKET_NAME — Tên bucket lưu trữ.
DIGITALOCEAN_ENDPOINT — Endpoint của DigitalOcean Spaces.
DIGITALOCEAN_CDN_URL — URL CDN để truy cập file đã upload.
File được upload qua POST /api/files (route bảo vệ) và trả về URL CDN để lưu vào database.

11. Cấu Hình CORS#

CORS được cấu hình khác nhau theo môi trường:
Development: AllowOrigins = "*", AllowCredentials = false — Cho phép mọi origin để tiện phát triển.
Production: AllowOrigins = "https://traffic.longtu.club,https://traffic-api.longtu.club,http://localhost:5173,http://localhost:3000", AllowCredentials = true — Chỉ cho phép các origin đã biết.
Header được phép: Origin, Content-Type, Accept, Authorization, Device-Token, Cache-Control, Pragma, X-Requested-With.

12. Cấu Hình Timeout#

Fiber được cấu hình với các timeout sau:
ReadTimeout: 30s — Thời gian tối đa để đọc toàn bộ request body.
WriteTimeout: 30s — Thời gian tối đa để ghi response.
IdleTimeout: 120s — Thời gian tối đa giữ kết nối idle (keep-alive).
DefaultTimeout (middleware): Timeout mặc định cho xử lý request, cấu hình trong pkg/middleware/timeout.go.
Middleware TimeoutMiddleware được áp dụng toàn cục để ngăn các request xử lý quá lâu làm nghẽn goroutine pool.

13. Danh Sách Đầy Đủ 36 Module Internal#

Dưới đây là mô tả chi tiết từng module trong thư mục internal/:
ModuleMô TảDatabaseCó Cron
activity_logGhi nhật ký mọi hành động của người dùng: tạo, sửa, xóa bản ghi. Lưu giá trị trước và sau khi thay đổi.MySQLKhông
backup_proxyQuản lý pool proxy dự phòng. Tự động kiểm tra sức khỏe mỗi 2 phút và cập nhật mỗi 5 phút.MySQLCó
campaignQuản lý chiến dịch traffic. Mỗi chiến dịch chứa nhiều project/task. Hỗ trợ xuất báo cáo Excel.MySQLKhông
coccoc_tokenNhận và lưu trữ token xác thực CocCoc từ worker sau khi đăng nhập thành công.MySQLCó
dashboardCung cấp dữ liệu tổng hợp cho Admin Dashboard và Looker Studio. Không yêu cầu xác thực.MySQL + MongoDBKhông
evidenceLưu trữ và truy vấn ảnh chụp màn hình bằng chứng từ worker. Lưu trong MongoDB.MongoDBKhông
free_proxyThu thập proxy miễn phí từ các nguồn công khai. Kiểm tra sức khỏe và thêm vào pool.MySQLCó
keywordQuản lý từ khóa SEO với cấu hình engine, thiết bị, vị trí địa lý. Hỗ trợ xuất Excel.MySQLCó
keyword_analyticsPhân tích xu hướng thứ hạng từ khóa theo thời gian. Lưu dữ liệu phân tích vào MongoDB.MongoDBCó
keyword_pool_taskQuản lý pool tác vụ kiểm tra từ khóa. Phân phối tác vụ đến worker.MySQLCó
keyword_resultLưu kết quả kiểm tra thứ hạng từ khóa. Nhận webhook từ worker.MongoDBCó
keyword_scheduleLịch kiểm tra thứ hạng từ khóa. Cấu hình tần suất và thời điểm kiểm tra.MySQLKhông
locationQuản lý vị trí địa lý (tỉnh/thành, quốc gia) với tọa độ lat/lng.MySQLKhông
mattermostTích hợp Mattermost để gửi báo cáo tổng hợp hàng ngày.KhôngCó
mongodb_cleanupDọn dẹp dữ liệu cũ trong MongoDB theo lịch. Tạo và quản lý indexes.MongoDBCó
monitorNhận ping từ worker để xác nhận server còn hoạt động.MySQLKhông
profilesQuản lý hồ sơ trình duyệt (Browser Fingerprint) dùng cho tự động hóa.MongoDBKhông
projectQuản lý project của khách hàng. Mỗi project chứa nhiều link cần traffic.MySQLCó
project_detailChi tiết từng link trong project: thứ hạng, trạng thái, lịch sử.MySQL + MongoDBKhông
project_settingsCấu hình tùy chỉnh cho từng project: giới hạn traffic, khung giờ.MySQLKhông
proxyQuản lý pool proxy IP chính. Import từ Excel, xoay vòng, kiểm tra sức khỏe.MySQLCó
proxy_ip_logNhật ký sử dụng từng địa chỉ IP proxy: task nào dùng, kết quả ra sao.MongoDBKhông
proxy_ip_log_detailChi tiết từng lần sử dụng IP: timestamp, latency, kết quả.MongoDBKhông
proxy_packagesQuản lý gói proxy đã mua: tên, giá, nhà cung cấp, trạng thái.MySQLKhông
proxy_providersQuản lý nhà cung cấp proxy: API credentials, thống kê dữ liệu sử dụng.MySQLKhông
reportTổng hợp và xuất báo cáo traffic. Ba service: chính, dashboard, PC report.MySQL + MongoDBCó
search_dispatchPhân phối tác vụ tìm kiếm đến worker. Quản lý hàng đợi tác vụ.MySQLCó
serverQuản lý máy chủ worker: IP, giới hạn tiến trình, trạng thái.MySQLKhông
server_hourly_reportBáo cáo hiệu suất theo giờ của từng server. Lưu vào MongoDB.MongoDBCó
setup_fireCấu hình kích hoạt tác vụ: điều kiện, thời điểm, số lượng.MySQLKhông
storageUpload và quản lý file trên DigitalOcean Spaces (S3-compatible).KhôngKhông
system_settingsCấu hình hệ thống toàn cục: giới hạn traffic, cấu hình cron.MySQLKhông
taskTác vụ thực thi traffic. Nhận yêu cầu từ tools_v2, giao cho worker.MySQLCó
task_logLog chi tiết từng lượt thực thi tác vụ.MongoDBKhông
userQuản lý tài khoản người dùng, xác thực JWT, 2FA TOTP.MySQLKhông
webhookNhận callback từ worker: cập nhật trạng thái, kết quả, proxy.MySQLKhông

14. Luồng Xử Lý Tác Vụ Traffic#

Đây là luồng quan trọng nhất của hệ thống, mô tả cách một tác vụ traffic được tạo ra và thực thi:
Bước 1: Admin tạo chiến dịch và project qua Admin Dashboard.
Bước 2: Cron job SCHEDULE_SEND_TASK (mỗi phút) quét database tìm tác vụ chờ xử lý.
Bước 3: Cron job giao tác vụ đến các server worker đang online, tối đa LIMIT_SEND_TASK_PER_SERVER tác vụ mỗi server.
Bước 4: tools_v2 trên server worker gọi POST /api/task/request để nhận danh sách tác vụ.
Bước 5: Worker thực thi tác vụ (mở trình duyệt, tìm kiếm, click quảng cáo).
Bước 6: Worker gọi POST /webhook/proxy/get-proxy để lấy proxy IP cho tác vụ.
Bước 7: Worker gọi POST /webhook/task/update-process để cập nhật tiến trình theo thời gian thực.
Bước 8: Sau khi hoàn thành, worker gọi POST /webhook/task/update-status để cập nhật kết quả cuối.
Bước 9: API lưu kết quả vào MySQL và MongoDB, cập nhật thống kê.
Bước 10: Admin Dashboard hiển thị kết quả qua các endpoint dashboard và report.

15. Luồng Xử Lý Từ Khóa SEO#

Bước 1: Admin tạo từ khóa với cấu hình engine (Google/CocCoc), thiết bị (Desktop/Mobile), vị trí địa lý.
Bước 2: Cron job SCHEDULE_SEARCH_KEYWORD (mỗi 30 phút) kiểm tra thứ hạng từ khóa.
Bước 3: Worker nhận tác vụ kiểm tra từ khóa, thực hiện tìm kiếm thực tế.
Bước 4: Worker gọi webhook /webhook/keyword-result để gửi kết quả thứ hạng.
Bước 5: API lưu kết quả vào MongoDB collection keyword_results.
Bước 6: Admin Dashboard hiển thị biểu đồ thứ hạng theo thời gian.
Bước 7: Cron job SCHEDULE_CONFIRM_FIRE (mỗi 30 phút) xác nhận các tác vụ đã hoàn thành và kích hoạt tác vụ tiếp theo.
Modified at 2026-03-26 10:46:15
Previous
Production
Next
Database Schema
Built with