1. Traffic
Tool
  • Check
    • Admin + API + Tool
      • Tài liệu triển khai dự án Check
    • Search
      • Tài liệu triển khai dịch vụ Search cho dự án Check
    • Proxy
      • Tài liệu triển khai dịch vụ Proxy cho dự án Check
  • Traffic
    • Tài liệu triển khai dự án Traffic
  • OnePush
    • Tài liệu triển khai dự án OnePush
  • Landing-Pages
    • Tài liệu triển khai dự án Landing-Page
  • Marketing
    • Tài liệu triển khai dự án Marketing
  1. Traffic

Tài liệu triển khai dự án Traffic

Tài Liệu Triển Khai Dự Án Traffic — Docker#

Docker  Vue.js  Golang  Bun

Triển Khai Dự Án Traffic Production với Docker

🔥 Tổng Quan#

Tài liệu này mô tả quy trình xây dựng và triển khai dự án Traffic chạy trên Docker trong môi trường production. Dự án Traffic bao gồm ba dịch vụ chính:
Dịch VụCông NghệRuntimeMục Đích
AdminVue.js (Vite + TypeScript)Nginx (static)Dashboard quản trị traffic
APIGolangGo binary + SupervisorAPI backend xử lý traffic
Tool-v2Bun (TypeScript)Bun + Supervisor + ChromeCông cụ tự động giả lập traffic

🏢 Dịch Vụ Admin#

Tech Stack#

Framework: Vue.js với Vite + TypeScript
Xây dựng: npm install → npm run build:prod
Runtime: Nginx Alpine (phục vụ file tĩnh)
ECR: traffic/admin-prod
Source: Git submodule tại admin/build/admin/

Cấu Trúc Dự Án#

Traffic/admin/
├─ build/
│  ├─ Dockerfile.production                     # Production: Vue.js build → Nginx
│  ├─ admin/                                    # ⚡ Git submodule — Vue.js source
│  └─ conf/nginx/
│     ├─ common/nginx.conf
│     └─ default.conf
├─ .env.production
└─ docker-compose.yml.production

Xây dựng & Đẩy Image#

Triển Khai#


🔌 Dịch Vụ API#

Tech Stack#

Ngôn ngữ: Golang
Xây dựng: go mod download → go build -o tf-api cmd/main.go
Runtime: Go binary + Supervisor
ECR: traffic/api-prod
Source: Git submodule tại api/build/api/

Cấu Trúc Dự Án#

Traffic/api/
├─ build/
│  ├─ Dockerfile-base                           # Base image: Supervisor
│  ├─ Dockerfile                                # Production: Go build → binary
│  ├─ api/                                      # ⚡ Git submodule — Go source
│  │  ├─ go.mod / go.sum
│  │  ├─ cmd/main.go
│  │  └─ ...
│  └─ conf/supervisor/traffic-api.conf
├─ database/
└─ docker-compose.yml.production

Xây dựng Pipeline#

┌─────────────────────────────────────────────────────────────┐
│                    PIPELINE BUILD GO                        │
│                                                             │
│  ┌─────────────┐            ┌─────────────┐                 │
│  │ GIAI ĐOẠN 1 │            │ GIAI ĐOẠN 2 │                 │
│  │    build    │───────────▶│ production  │                 │
│  │             │            │             │                 │
│  │ • go mod    │            │ • Base      │                 │
│  │   download  │            │   image     │                 │
│  │ • go build  │            │ • Supervisor│                 │
│  │ • tf-api    │            │ • tf-api    │                 │
│  │   binary    │            │   binary    │                 │
│  └─────────────┘            └─────────────┘                 │
└─────────────────────────────────────────────────────────────┘

Xây dựng & Đẩy Image#

Triển Khai#


🛠️ Dịch Vụ Tool-v2#

Tech Stack#

Framework: Bun (TypeScript)
Xây dựng: bun install → bun compile
Runtime: Bun + Supervisor + Google Chrome Stable
ECR: traffic/tool-prod
Source: Git submodule tại tool-v2/build/tools/

Cấu Trúc Dự Án#

Traffic/tool-v2/
├─ build/
│  ├─ Dockerfile-base                           # Base image: Supervisor + Chrome
│  ├─ Dockerfile                                # Production image
│  ├─ tools/                                    # ⚡ Git submodule — Bun source
│  │  ├─ package.json / bun.lock
│  │  └─ src/
│  └─ conf/supervisor/traffic-tool.conf
├─ .env.production
└─ docker-compose.yml.production

Yêu Cầu Tiên Quyết#

Công CụPhiên Bản Tối ThiểuMục Đích
Docker≥ 24.0.0Quản lý container
Google Chrome Stable≥ 130.0.0Chrome headless cho tự động hoá

Xây dựng & Đẩy Image#

Triển Khai#


🚀 Triển Khai Chung#

Tạo Docker Networks#

🛡️ Các Thực Hành Bảo Mật#

1.
.env không bao giờ nhúng vào image — mount dưới dạng read-only volume khi runtime
2.
Container non-root — tất cả dịch vụ chạy dưới user không đặc quyền (UID: 1200)
3.
Supervisor quản lý — các dịch vụ được Supervisor quản lý với auto-restart

📚 Tài Liệu Liên Quan#

Tài liệu Docker
Tài liệu Golang
Tài liệu Bun
Tài liệu Vue.js
Hướng dẫn AWS ECR
Cài đặt Swap Memory
Modified at 2026-03-21 09:03:06
Previous
Tài liệu triển khai dịch vụ Proxy cho dự án Check
Next
Tài liệu triển khai dự án OnePush
Built with