Proxy Tool
    • Tổng quan cấu trúc hệ thống
    • Bussiness | Logic
      • Logic nghiệp vụ
    • Project
      • Tool
        • Tổng quan
        • Tài liệu API
        • Architecture
          • User Guide
          • Database Schema
          • System Architecture
          • Code Structure
        • Public API
          • Auth
            • Đăng nhập
            • Đăng ký người dùng
            • Lấy thông tin cá nhân hiện tại
          • Users
            • Danh sách người dùng
            • Tạo người dùng mới (Admin)
          • Proxies
            • Danh sách tất cả Proxy
            • Thêm Proxy hàng loạt
            • Nhập proxy từ file Excel/CSV
          • Get proxy
            • Lấy một Proxy trống (Client Tool)
          • Webhooks
            • Trả lại Proxy sau khi dùng
          • Info
            • Thông tin hệ thống (Root)
            • Kiểm tra tình trạng hệ thống
            • Xem tệp nhật ký (Logs)
        • Deployment
          • Local
          • Staging
          • Product
    • Schemas
      • CreateUser
      • Proxy

    Tổng quan cấu trúc hệ thống

    Tổng quan#

    ProxyTool là một hệ thống quản lý proxy hiệu năng cao được thiết kế để cung cấp, xoay vòng (rotate) và giám sát các proxy phục vụ cho các tác vụ tự động hóa. Hệ thống được xây dựng dưới dạng dịch vụ RESTful sử dụng Bun runtime và framework ElysiaJS, cung cấp API nhanh và đáng tin cậy.

    Tech Stack (Công nghệ sử dụng)#

    Runtime: Bun - Môi trường thực thi JavaScript tất cả-trong-một cực nhanh.
    Framework: ElysiaJS - Framework web hiệu năng cao được thiết kế riêng cho Bun.
    Cơ sở dữ liệu: MongoDB - Cơ sở dữ liệu NoSQL có khả năng mở rộng để quản lý proxy, người dùng và nhật ký.
    O/RM: Typegoose - Cung cấp mô hình hóa dữ liệu an toàn về kiểu (type-safe) cho MongoDB sử dụng TypeScript.
    Cơ sở hạ tầng: Được đóng gói bằng Docker để đảm bảo tính nhất quán khi triển khai.

    Các thành phần hệ thống#

    1. Máy chủ API (ElysiaJS)#

    Giao diện chính cho tất cả các hoạt động quản lý proxy.
    Xác thực: Xác thực dựa trên JWT an toàn cho quyền truy cập quản trị và client.
    Định tuyến (Routing): Cấu trúc theo hướng domain (Proxy, User, Provider, Package, Auth).
    Middleware: Tích hợp các lớp ghi nhật ký (logging), xử lý lỗi và kiểm tra dữ liệu đầu vào.

    2. Cơ sở dữ liệu (MongoDB)#

    Kho lưu trữ trung tâm cho tất cả trạng thái của hệ thống.
    Proxies: Theo dõi host, port, thông tin đăng nhập, trạng thái (active, rotating, error) và thống kê sử dụng.
    Packages & Providers: Quản lý cấu hình cho các nguồn cung cấp proxy khác nhau (ví dụ: KiotProxy).
    Lịch sử sử dụng: Giám sát số lượng client đang sử dụng mỗi proxy và thời gian sử dụng.

    3. Các dịch vụ nền (Background Services)#

    Logic không đồng bộ được xử lý trong ứng dụng chính.
    Giám sát Proxy: Kiểm tra định kỳ để xác định các proxy cần xoay vòng hoặc bị lỗi.
    Kiểm tra hoạt động: Xác minh địa chỉ IP và khu vực địa lý sau khi xoay vòng hoặc chỉnh sửa.
    Lớp tích hợp: Xử lý giao tiếp với các API của nhà cung cấp proxy bên ngoài để kích hoạt xoay vòng IP.

    Sơ đồ tương tác thành phần#

    Hướng dẫn Setup & Cài đặt (Local Development)#

    Hệ thống được thiết kế để chạy tối ưu trong môi trường container hóa. Chúng tôi khuyến khích sử dụng Docker Compose để đảm bảo tính nhất quán giữa App, MongoDB và Redis.

    1. Điều kiện tiên quyết#

    Docker & Docker Compose (khuyến nghị).
    Bun (chỉ cần thiết nếu bạn muốn chạy trực tiếp không qua Docker).

    2. Các bước thiết lập nhanh (Sử dụng Docker)#

    Bước 1: Clone source code#

    Bước 2: Cấu hình biến môi trường#

    Mặc định hệ thống đã có .env.example. Bạn chỉ cần tạo file .env:
    Lưu ý: Các tham số DB_MONGO và REDIS trong .env.example đã được cấu hình sẵn để kết nối mượt mà giữa các container trong Docker Network.

    Bước 3: Khởi chạy toàn bộ hệ thống#

    Lệnh này sẽ build image cho ứng dụng và khởi chạy MongoDB, Redis cùng một lúc:

    3. Phương pháp thay thế (Dành cho việc Debug)#

    Nếu bạn muốn chạy ứng dụng trực tiếp bằng Bun (ví dụ để debug sâu hoặc phát triển UI/API nhanh):
    1.
    Chạy Database trước: docker compose up -d proxy_service_mongodb proxy_service_redis
    2.
    Cài đặt dependencies: bun install
    3.
    Chạy ứng dụng: bun run dev

    4. Kiểm tra vận hành#

    Sau khi stack Docker đã khởi chạy (kiểm tra bằng docker compose ps):
    API Server: http://localhost:33033 (App chạy trong Docker).
    Swagger UI: http://localhost:33033/swagger để thử nghiệm API.
    Health Check: http://localhost:33033/health để xác nhận kết nối giữa App và DB.
    Xem Logs: docker compose logs -f proxy_service_tool

    6. Xử lý sự cố thường gặp (Troubleshooting)#

    Cổng đã bị sử dụng: Nếu port 33033 hoặc 27017 đã bị ứng dụng khác chiếm dụng, bạn hãy thay đổi giá trị PORT hoặc DB_MONGO_PORT trong file .env.
    Lỗi kết nối MongoDB: Đảm bảo container proxy_service_mongodb đang chạy (docker compose ps). Nếu chạy app bằng Bun, hãy dùng localhost thay vì tên container trong connection string.
    Quyền hạn (Permissions): Trên Linux/macOS, nếu gặp lỗi về quyền khi chạy Docker, hãy dùng sudo docker compose up -d.
    Ngày cập nhật 2026-03-26 03:08:37
    Tiếp theo
    Logic nghiệp vụ
    Built with