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

Local

Triển Khai Môi Trường Local — Tools V2 Worker Engine#

Phiên bản: 2.5.0
Cập nhật lần cuối: 26/03/2026

1. Yêu Cầu Hệ Thống#

1.1. Phần Mềm Bắt Buộc#

Bun phiên bản >= 1.2.5. Tải từ https://bun.sh.
Docker Desktop (Windows/macOS) hoặc Docker Engine (Linux) để chạy MongoDB.
Git phiên bản >= 2.30.0.

1.2. Hệ Điều Hành#

Ubuntu 22.04 LTS — khuyến nghị, được test đầy đủ.
macOS Sonoma trở lên — hỗ trợ tốt.
Windows với WSL2 — hoạt động nhưng cần cấu hình thêm.

1.3. Phần Cứng Tối Thiểu#

RAM: 4GB tối thiểu, 8GB khuyến nghị.
CPU: 2 cores tối thiểu, 4 cores khuyến nghị.
Disk: 10GB trống cho code, dependencies, log và screenshots.

1.4. Cài Đặt Bun#

1.5. Cài Đặt Chromium Dependencies (Linux/WSL2)#

Puppeteer cần các thư viện đồ họa để chạy Chrome headless trên Linux:
Nếu thiếu các thư viện này, Puppeteer sẽ báo lỗi Shared object missing khi cố mở Chrome.

2. Thiết Lập Lần Đầu#

2.1. Clone Repository#

2.2. Cài Đặt Dependencies#

Bun sẽ tự động:
Đọc package.json và cài tất cả dependencies.
Tải Chromium binary (~150MB) vào ~/.cache/puppeteer.
Tạo bun.lock nếu chưa có.
Quá trình này mất khoảng 2-5 phút lần đầu.

2.3. Cấu Hình Biến Môi Trường#

Chỉnh sửa .env với các giá trị quan trọng:
# Kết nối Go API Backend
API_HOST=http://localhost:33001
API_KEY=your-api-key-matching-go-api
WEBHOOK_API_KEY=your-webhook-key

# MongoDB (dùng Docker)
DB_MONGO_HOST=localhost
DB_MONGO_PORT=27017
DB_MONGO_USERNAME=root
DB_MONGO_PASSWORD=PwDev123
DB_MONGO_DATABASE=tool-traffic-tools

# Server identity
SERVER_ID="127.0.0.1"

# IP được phép gọi API
IP_ALLOWED=127.0.0.1,11.0.3.11

# Giới hạn browser (thấp cho dev)
BROWSER_LIMIT_PER_PROCESS=1

# Debug mode
NODE_ENV=development
DEBUG=true

2.4. Khởi Động MongoDB#

Lệnh này khởi động MongoDB container với:
Container name: traffic_tool_mongodb_v2.
Port: 27017 (map ra host theo DB_MONGO_PORT).
IP tĩnh trong Docker network: 11.0.3.11.
Data persist trong Docker volume mongodb_data.
Kiểm tra MongoDB đang chạy:

3. Khởi Chạy Server#

3.1. Chạy Với Hot-Reload (Khuyến Nghị Cho Development)#

Lệnh này thực thi: bun run --inspect=localhost:4000/debugger --watch src/index.ts
--watch: Tự động reload khi file TypeScript thay đổi.
--inspect=localhost:4000/debugger: Bật debugger tại port 4000.
Output mong đợi khi khởi động thành công:
Deleted user-data folder
Server started on port 3005
Swagger documentation available at http://localhost:3005/swagger
Connected to MongoDB
All task groups set to pending successfully

3.2. Chạy Không Hot-Reload#

Dùng khi không cần hot-reload, ví dụ khi test performance.

3.3. Build JavaScript Bundle#

Build thành JavaScript bundle. Vẫn cần Bun runtime để chạy.

3.4. Compile Thành Binary Tĩnh#

Compile thành standalone binary:
Tự chứa Bun runtime, TypeScript code và tất cả npm modules.
Có thể chạy trên server khác không cần cài Bun.
Kích thước khoảng 50-100MB.
Dùng trong production deployment.
Chạy binary:

4. Kiểm Tra Hoạt Động#

4.1. Kiểm Tra Server#

4.2. Kiểm Tra Swagger UI#

Mở trình duyệt tại http://localhost:3005/swagger để xem tất cả API endpoints với documentation đầy đủ.

4.3. Kiểm Tra Kết Nối MongoDB#

4.4. Kiểm Tra Kết Nối Go API#

Nếu Go API chưa chạy, Tools V2 vẫn khởi động được nhưng sẽ không nhận được tasks.

4.5. Kiểm Tra System Metrics#


5. Debug Với Bun Inspector#

5.1. Kết Nối Debugger#

Khi chạy bun run dev, debugger được bật tại localhost:4000/debugger.
Kết nối từ Chrome DevTools:
Mở Chrome và truy cập chrome://inspect.
Click "Configure..." và thêm localhost:4000.
Click "inspect" khi thấy target xuất hiện.
DevTools mở với đầy đủ tính năng: breakpoints, call stack, variables.

5.2. Đặt Breakpoints#

Trong DevTools:
Mở tab "Sources".
Navigate đến file TypeScript cần debug.
Click vào số dòng để đặt breakpoint.
Khi code chạy đến breakpoint, execution dừng lại.

5.3. Debug Cron Jobs#

Cron jobs chạy mỗi giây, khó debug bằng breakpoint thông thường. Thay vào đó:
Thêm console.log hoặc logger.debug vào code.
Xem output trong terminal hoặc log files.
Dùng LOG_LEVEL=debug để xem log chi tiết hơn.

6. Các Lệnh Phát Triển Thường Dùng#

6.1. Format Code#

Prettier format toàn bộ code trong src/ theo cấu hình .prettierrc.json.

6.2. Kiểm Tra Lint#

oxlint là linter viết bằng Rust, nhanh hơn ESLint nhiều lần. Flag --fix tự động sửa các lỗi có thể sửa được.

6.3. Kiểm Tra TypeScript#

Kiểm tra TypeScript types mà không emit files. Chạy trước khi commit để đảm bảo không có type errors.

6.4. Dọn Dẹp Build#

Xóa thư mục dist/ để build lại từ đầu.

6.5. Chạy Scripts Tiện Ích#


7. Quy Trình Làm Việc Hàng Ngày#

7.1. Bắt Đầu Ngày Làm Việc#

7.2. Trước Khi Tạo Merge Request#

7.3. Khi Thay Đổi Dependencies#


8. Xử Lý Sự Cố Thường Gặp#

8.1. Lỗi "Shared object missing" Khi Mở Chrome#

Nguyên nhân: Thiếu Chromium system dependencies trên Linux.
Giải pháp:

8.2. Lỗi "Cannot connect to MongoDB"#

Kiểm tra Docker container:
Nếu container không chạy:
Nếu container chạy nhưng vẫn lỗi, kiểm tra DB_MONGO_HOST trong .env:
Khi chạy trực tiếp (không Docker): DB_MONGO_HOST=localhost.
Khi chạy trong Docker: DB_MONGO_HOST=traffic_tool_mongodb_v2.

8.3. Lỗi "Port 3005 already in use"#

8.4. Lỗi "API_HOST not reachable"#

Kiểm tra Go API Backend đang chạy:
Nếu không phản hồi, khởi động Go API Backend trước khi chạy Tools V2.

8.5. Puppeteer Không Tìm Thấy Chrome#

8.6. Lỗi "bun: command not found"#

8.7. Hot-Reload Không Hoạt Động#

Kiểm tra --watch flag có trong lệnh không:
Nếu dùng WSL2, hot-reload có thể chậm do filesystem events. Đây là giới hạn của WSL2.

8.8. Lỗi TypeScript Khi Chạy#

Bun chạy TypeScript trực tiếp mà không cần biên dịch. Nếu có lỗi TypeScript:
Lưu ý: Bun bỏ qua một số TypeScript errors khi chạy. Luôn chạy typecheck để đảm bảo code đúng.

9. Cấu Hình Cho Từng Hệ Điều Hành#

9.1. Ubuntu/Debian#

Đây là môi trường được hỗ trợ tốt nhất. Không cần cấu hình đặc biệt ngoài cài Chromium dependencies.

9.2. macOS#

Chrome thường đã được cài sẵn. Nếu không:
Puppeteer trên macOS dùng Chrome system thay vì Chromium bundled.

9.3. Windows với WSL2#

Cài WSL2 với Ubuntu 22.04:
# Trong PowerShell (Admin)
wsl --install -d Ubuntu-22.04
Sau khi cài WSL2, làm theo hướng dẫn Ubuntu. Lưu ý:
Clone repository vào filesystem của WSL2, không phải Windows filesystem (/mnt/c/).
Docker Desktop cần bật WSL2 integration.
Hot-reload có thể chậm hơn native Linux.

10. Cấu Hình .env Cho Development#

File .env đầy đủ cho development:
# Server
PORT=3005
NODE_ENV=development
DEBUG=true
RUNTIME=bun
SERVER_ID="127.0.0.1"

# Authentication
API_KEY='your-api-key-matching-go-api'
WEBHOOK_API_KEY='your-webhook-key'
PROXY_API_KEY='your-proxy-api-key'
IP_ALLOWED=127.0.0.1,11.0.3.11

# Go API Backend
API_HOST=http://localhost:33001

# MongoDB (Docker)
DB_MONGO_HOST=localhost
DB_MONGO_PORT=27017
DB_MONGO_USERNAME=root
DB_MONGO_PASSWORD=PwDev123
DB_MONGO_DATABASE=tool-traffic-tools

# Browser limits (thấp cho dev)
BROWSER_LIMIT_PER_PROCESS=1

# Traffic control
TASK_RETRY_LIMIT=3
ENABLE_GEOLOCATION=true
MODE=browser

# 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
DIGITAL_OCEAN_BUCKET_NAME=your-bucket
DIGITAL_OCEAN_REGION=sgp1
DIGITAL_OCEAN_ACCESS_KEY_ID=your-key-id
DIGITAL_OCEAN_SECRET_ACCESS_KEY=your-secret
DIGITAL_OCEAN_ENDPOINT=https://sgp1.digitaloceanspaces.com
DIGITAL_OCEAN_CDN_URL=https://your-bucket.sgp1.cdn.digitaloceanspaces.com

# Cloudinary (fallback)
CLOUDINARY_CLOUD_NAME=your-cloud
CLOUDINARY_API_KEY=your-key
CLOUDINARY_API_SECRET=your-secret
CLOUDINARY_UPLOAD_PRESET=ml_default

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

# Logging
LOG_LEVEL=debug
LOG_COLORIZED=true
LOG_WRITE_TO_FILE=true
LOG_WRITE_TO_CONSOLE=true
LOG_TIMESTAMP=true
LOG_FOR_RECORD=true
ENABLE_SCREENSHOTS=true

11. Chạy Trong Docker (Development)#

11.1. Khi Nào Dùng Docker#

Chạy Tools V2 trong Docker hữu ích khi:
Muốn môi trường giống production hơn.
Không muốn cài Bun và Chrome trực tiếp trên máy.
Test Docker configuration trước khi deploy.

11.2. Uncomment Tool Service#

Trong docker-compose.yml, service tool đang bị comment. Uncomment để chạy:

11.3. Cập Nhật .env Cho Docker#

Khi cả Tools V2 và MongoDB đều chạy trong Docker, cập nhật:
# Dùng container name thay vì localhost
DB_MONGO_HOST=traffic_tool_mongodb_v2

11.4. Build Và Chạy#

11.5. Dockerfile Development#

.docker/dev/Dockerfile được thiết kế cho development:
Lưu ý: Dockerfile này dùng oven/bun:latest và cài Google Chrome thực. Build lần đầu mất khoảng 5-10 phút.

12. Quản Lý MongoDB Local#

12.1. Kết Nối MongoDB#

12.2. Xem Collections#

12.3. Xóa Tất Cả Collections#

Hoặc thủ công:

12.4. Backup Và Restore#


13. Tích Hợp Với Go API Backend#

13.1. Yêu Cầu#

Để Tools V2 hoạt động đầy đủ, Go API Backend phải đang chạy và accessible tại API_HOST.

13.2. Kiểm Tra Tích Hợp#

13.3. Chạy Không Có Go API#

Tools V2 vẫn khởi động được khi Go API không chạy. Tuy nhiên:
Cron task-group-api-request-cron sẽ log lỗi mỗi giây.
Không có tasks mới được nhận.
Các tasks đang pending trong MongoDB vẫn được thực thi.
Để test mà không cần Go API, có thể tạo tasks trực tiếp qua API:

14. Checklist Thiết Lập Hoàn Chỉnh#

Sau khi hoàn thành thiết lập, kiểm tra từng mục:
Bun >= 1.2.5 đã cài: bun --version.
Docker đang chạy: docker ps.
MongoDB container đang chạy: docker ps | grep mongodb.
File .env đã được tạo từ .env.example.
API_HOST trỏ đúng đến Go API Backend.
API_KEY khớp với cấu hình Go API.
IP_ALLOWED bao gồm 127.0.0.1 và 11.0.3.11.
Chromium dependencies đã cài (Linux).
Server khởi động thành công: bun run dev.
Health check trả về OK: curl http://localhost:3005/health.
Swagger UI accessible: http://localhost:3005/swagger.
MongoDB kết nối thành công (xem log khởi động).
Modified at 2026-03-27 02:28:40
Previous
Database Schema
Next
Staging
Built with