1. Deployment
Traffic Tool
  • Traffic Tool Docs
    • Tổng Quan
    • project
      • admin
        • 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
      • api + tool
        • Hướng dẫn sử dụng
          • User Guide
          • Setup Guide
        • 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)
        • Architecture
          • Database Schema
          • System Architecture
          • Code Structure
          • Logs and Monitoring
          • Environment & Configuration
        • Deployment
          • Local
          • Staging
          • Product
  • Traffic Backend API
    • 🔑 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
    • Schemas
      • AppError
      • LoginRequest
      • UserResponseDto
      • UserModel
      • CreateUserRequest
      • UpdateUserRequest
      • PagingInfo
      • ProfileModel
      • CreateProfileRequest
      • BulkImportProfileReq
      • UpdateProfileRequest
      • CampaignModel
      • CampaignConfigs
      • CreateCampaignRequest
      • UpdateCampaignRequest
      • BulkUpdateCampaignStatusReq
      • NegativeSeoData
      • CreateProjectRequest
      • UpdateProjectRequest
      • ProjectModel
      • BulkUpdateProjectRequest
      • ProjectAttribute
      • WorkerHandshakeRequest
      • WorkerHandshakeResponse
      • WorkerHeartbeatPayload
      • WorkerGlobalSettings
      • TaskPullRequest
      • WorkerFatalLog
      • TaskModel
      • TaskTrafficType
      • TaskUpdateDto
      • ReportTaskModel
      • ReportTaskResult
      • PCReportResponse
      • SummaryStats
      • DailyStats
      • BrandStats
      • ProfileStats
      • ReportTaskItem
      • ReportSiteItem
      • CreateReportSiteRequest
      • GPTConfig
      • ResponseConfig
      • FieldConfig
      • ReportDomainsResponse
      • ReportDomainItem
      • AddReportDomainRequest
      • UpdateReportDomainRequest
      • BulkUpdateDashboardRequest
      • ProxyModel
      • CreateProxyRequest
      • UpdateProxyRequest
      • SMTPServerConfig
      • EmailTaskLog
      • GeoLocation
  • Traffic Tools V2 API
    • Tasks
      • Lọc và Truy vấn Nhật ký Phiên Duyệt lẻ
      • Get all tasks
      • Nạp Kết Quả Chạy của Puppeteer (Update Callback)
      • Xóa toàn bộ Tasks lẻ
      • Get all tasks
      • Xóa một Task (ID)
    • Group task
      • Đẩy nhóm công việc Traffic theo lô (Batch Pipeline Task Creation)
      • Lấy sơ đồ trạng thái hàng đợi Group Tasks
      • Endpoint /api/task-traffics/
      • Clear/Flush Hàng đợi Group Task (Kill Queue)
      • Endpoint /api/task-traffics/
      • Xóa 1 nhóm nhiệm vụ (Theo ObjectID Mongoose)
      • Parse chuỗi Proxy
    • Test
      • Kiểm tra Proxy hoạt động ngầm
      • Endpoint /api/test
      • Kho Fingerprint Thử Nghiệm
      • Endpoint /api/test/account-stats
      • Endpoint /api/test/session-recommendation
      • Endpoint /api/test/check-browser
      • Endpoint /api/test/clear-browser-sessions
    • Proxies
      • Lấy kho Proxy server
      • Khai báo Pool Tuyến Proxy mới
      • Get all proxies
      • Get all proxies
      • Xóa toàn bộ Proxy
      • Get all proxies
      • Xóa Proxy theo ID
      • Reset lại số đếm tiến trình (Cron Proxy Thread)
    • 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
    • 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
      • Ra lệnh Máy Lọc Dữ Liệu TOP SEO Hàng Loại (Scraper Engine)
      • Đếm tổng số dòng tìm kiếm (Length)
    • Report Tasks
      • Tạo chiến dịch Report (Auto Spawn 14 tasks)
      • Tạo chiến dịch Report Form hàng loạt (Bulk Abuse Report)
      • Create Direct Report (Từ API hệ thống thay vì Frontend)
      • Tạo Nhiệm Vụ Sinh Email Khiếu nại (Automated Bulk Mail Spam)
      • Worker Pull - Lấy task Báo cáo đang Pending
      • Worker Trả kết quả (Report Status)
      • Danh mục Platfoms & Providers
      • Dashboard Statistic Báo Cáo
      • Force Run Cronjob
    • Monitor
      • Xuất dữ liệu đo đếm Hardware (Telemetry OS Watchdog)
    • Schemas
      • CreateTask
      • UpdateTask
      • CreateTaskGroupRequest
      • CreateProxy
      • CreateSearch
      • ReportTaskCreation
      • CreateEmail
      • CreateMultipleSearchRequest
      • CreateMultipleReportRequest
      • UpdateReportStatusRequest
      • TestProxyRequest
  1. Deployment

Local

Quy Trình Triển Khai — Traffic Tools V2#

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

1. Tổng Quan Quy Trình#

Traffic Tools V2 sử dụng GitLab CI/CD để tự động hóa toàn bộ quá trình kiểm tra, build Docker image và triển khai lên máy chủ. Khi một developer push code lên một nhánh cụ thể, pipeline sẽ tự động chạy mà không cần thao tác thủ công.
Developer push code
        │
        ▼
  GitLab nhận push
        │
        ▼
 Pipeline kích hoạt
 (theo nhánh push)
        │
        ├── develop-v2  →  [deploy-develop]   → Máy chủ Dev
        ├── staging-v2  →  [deploy-staging]   → Máy chủ Staging
        ├── release-v2  →  [deploy-release]   → Máy chủ Release
        └── master-v2   →  [build-master]     → Build Docker image → AWS ECR
                              └── [deploy-master] → Máy chủ Production

2. Các Môi Trường Triển Khai#

Môi trườngNhánh GitMục đíchLoại Deploy
Developmentdevelop-v2Kiểm thử tính năng mới trong ngàyDeploy trực tiếp bằng docker compose
Stagingstaging-v2Kiểm thử trước khi đưa lên ReleaseDeploy trực tiếp bằng docker compose
Releaserelease-v2Môi trường gần Production, test cuốiDeploy trực tiếp bằng docker compose
Productionmaster-v2Môi trường thật, phục vụ khách hàngBuild image → push AWS ECR → deploy từ ECR

3. Cấu Trúc File CI/CD#

File cấu hình pipeline nằm tại: .gitlab-ci.yml

3.1 Các Stage (Giai Đoạn)#

Các stage chạy tuần tự — nếu một stage thất bại, các stage sau không chạy.

3.2 Biến Hệ Thống (Variables)#

Được định nghĩa cấp project trong GitLab và tham chiếu trong pipeline:
BiếnGiá trịÝ nghĩa
AWS_REGIONap-southeast-1Vùng AWS (Singapore)
AWS_ACCOUNT_ID211125536219ID tài khoản AWS
AWS_ECR{account}.dkr.ecr.{region}.amazonaws.comĐịa chỉ registry Docker trên AWS
IMAGE_NAMEtraffic/tool-v2-prodTên image trên ECR
PLATFORMlinux/amd64Kiến trúc CPU target
TAG_LATEST{ECR}/{IMAGE}:latestTag phiên bản mới nhất
TAG_COMMIT{ECR}/{IMAGE}:{commit_hash}Tag theo commit hash cụ thể

4. Quy Trình Triển Khai Dev / Staging / Release#

Ba môi trường này dùng cơ chế triển khai giống nhau — chỉ khác nhánh Git và thư mục đích.

4.1 Điều Kiện Kích Hoạt#

Push lên nhánh → Pipeline kích hoạt job tương ứng
develop-v2     → deploy-develop
staging-v2     → deploy-staging
release-v2     → deploy-release

4.2 Các Bước Thực Thi (Step-by-step)#

Step 1: GitLab Runner khởi động job
        │
        ▼
Step 2: Nạp SSH Key vào Agent
        (Key được lưu dưới dạng Base64 trong GitLab CI Variables)
        - Giải mã Base64 từ biến $TRAFFIC_DEV_KEY
        - Đăng ký vào ssh-agent
        - Cấu hình SSH bỏ qua kiểm tra host
        │
        ▼
Step 3: SSH vào máy chủ Worker Target
        (dùng IP và Port từ CI Variables)
        │
        ▼
Step 4: [Trên máy chủ Worker] Kéo code mới nhất
        - Kiểm tra thư mục dự án đã tồn tại chưa
        - git pull origin — cập nhật repo wrapper
        - cd build/tools && git checkout {branch} && git pull — cập nhật submodule mã nguồn chính
        │
        ▼
Step 5: [Trên máy chủ Worker] Build và khởi động Docker
        - docker compose up --build -d
        - Docker đọc Dockerfile trong thư mục build/
        - Build image từ mã nguồn mới nhất
        - Khởi động container với cấu hình trong docker-compose.yml
        │
        ▼
Step 6: Dọn dẹp image thừa
        - docker image prune -f
        - Xóa các image cũ không còn được sử dụng
        │
        ▼
Pipeline kết thúc ✅
Lưu ý: Dev và Staging chạy song song trên 2 instance Tool-01 và Tool-02 cho mỗi môi trường.

5. Quy Trình Build & Triển Khai Production (master-v2)#

Production có 2 giai đoạn riêng biệt: Build image và Deploy image.

5.1 Giai Đoạn Build (build-master)#

Push lên master-v2
        │
        ▼
Step 1: SSH vào máy Build Server (Bastion)
        │
        ▼
Step 2: Đăng nhập AWS ECR
        aws ecr get-login-password | docker login --username AWS --password-stdin {ECR}
        │
        ▼
Step 3: Cập nhật mã nguồn
        - git pull origin (cập nhật repo chính)
        - git checkout master-v2 && git pull (cập nhật submodule)
        │
        ▼
Step 4: Kéo image cũ về để dùng làm build cache
        docker pull {ECR}/{IMAGE}:latest || true
        (|| true: không dừng pipeline nếu chưa có image nào)
        │
        ▼
Step 5: Build Docker image
        docker buildx build \
          --cache-from {TAG_LATEST} \   ← Dùng cache từ image cũ để tăng tốc
          --platform linux/amd64 \       ← Chỉ định kiến trúc CPU
          -t {TAG_LATEST} \             ← Gán tag :latest
          -t {TAG_COMMIT} \             ← Gán tag theo commit hash
          --push .                       ← Push thẳng lên AWS ECR
        │
        ▼
Step 6: Dọn dẹp image local
        docker image prune -f
        │
        ▼
Image mới đã có trên AWS ECR ✅

5.2 Giai Đoạn Deploy (deploy-master)#

Sau khi build-master thành công
        │
        ▼
Step 1: SSH vào từng máy chủ Production Worker
        (Lặp qua danh sách IP trong $VNETWORK_TRAFFIC_PROD_IP)
        │
        ▼
Step 2: Đăng nhập AWS ECR trên máy Production
        aws ecr get-login-password | docker login --username AWS --password-stdin {ECR}
        │
        ▼
Step 3: Kéo image mới nhất về máy Production
        docker pull {ECR}/{IMAGE}:latest
        │
        ▼
Step 4: Cập nhật file cấu hình
        git pull origin (cập nhật docker-compose.yml và .env nếu có thay đổi)
        │
        ▼
Step 5: Khởi động lại container với image mới
        docker compose up -d --force-recreate --remove-orphans
        - --force-recreate: buộc tạo lại container dù config không đổi
        - --remove-orphans: xóa container cũ không còn trong compose file
        │
        ▼
Step 6: Dọn dẹp image cũ
        docker image prune -f
        │
        ▼
Production cập nhật thành công ✅

6. Cấu Trúc Docker#

6.1 Dockerfile (Dev/Build)#

Tại sao dùng Bun thay vì Node.js?
Bun nhanh hơn Node.js 3–5 lần khi khởi động.
Hỗ trợ TypeScript native — không cần bước compile trung gian.
Công cụ cài package nhanh hơn npm/yarn.

6.2 Docker Compose#

Ứng dụng chính (tool engine) chạy trực tiếp trên máy hoặc trong container riêng tùy môi trường. MongoDB luôn chạy trong container với dữ liệu được lưu vào volume mongodb_data — đảm bảo không mất dữ liệu khi restart.

7. Quản Lý Secret & Bảo Mật Pipeline#

Tất cả thông tin nhạy cảm được lưu trong GitLab CI/CD Variables (không commit vào repo):
Loại biếnVí dụGhi chú
SSH Private Key$TRAFFIC_DEV_77_37_47_88_KEYMã hóa Base64, giải mã khi cần
Thông tin SSH$TRAFFIC_DEV_77_37_47_88_IP, _PORT, _USERIP, port, username của máy chủ
AWS CredentialsCấu hình qua IAM Role trên máy BuildKhông lưu Access Key trực tiếp
Môi trường AppĐược quản lý qua .env trên từng máy chủKhông commit .env vào repo

8. Luồng Nhánh Git#

feature/xxx  →  develop-v2  →  staging-v2  →  release-v2  →  master-v2
   (phát         (kiểm thử      (test tích     (kiểm thử     (production
   triển)         hàng ngày)     hợp)           cuối cùng)    thật)
NhánhAi mergeĐiều kiện merge
develop-v2DeveloperSau khi code xong tính năng
staging-v2Tech LeadSau khi dev xác nhận ổn
release-v2Tech Lead / PMSau khi staging test xong
master-v2System AdminSau khi release test xong và được duyệt

9. Xử Lý Sự Cố Trong Pipeline#

Tình huốngNguyên nhânCách xử lý
Pipeline không kích hoạtPush sai nhánhKiểm tra tên nhánh có đúng với only: trong gitlab-ci.yml
SSH connection failedSSH key hết hạn hoặc saiCập nhật lại CI Variable chứa SSH key
docker build thất bạiLỗi mã nguồn hoặc npm install failXem log chi tiết trong job output trên GitLab
docker pull ECR thất bạiAWS credentials hết hạn hoặc wrong regionKiểm tra lại IAM role hoặc AWS_REGION
Container không startFile .env thiếu biếnSSH vào máy, kiểm tra .env và docker compose logs
Image quá lớnKhông dọn dẹp layer DockerThêm .dockerignore, tối ưu Dockerfile layer

10. Câu Lệnh Hữu Ích Khi Vận Hành#

Modified at 2026-03-25 08:03:37
Previous
Environment & Configuration
Next
Staging
Built with