1. Architecture
Search Tool
  • Tổng quan
  • Bussiness | Logic
    • Nghiệp vụ & Luồng Tìm kiếm
    • Task Orchestration
    • Scraping & Execution
    • Exception & Recovery
    • Proxy Orchestration
  • Project
    • Search API
      • Tổng quan Search API
      • Architecture
        • Database Schema
        • System Architecture
        • Code Structure
      • API Interface
        • Go - Auth
          • Đăng nhập
          • Đăng ký (Public)
        • Go - User
          • Danh sách User (Phân trang)
          • Tạo User
          • Lấy tất cả User
          • Profile cá nhân
          • Chi tiết User
          • Cập nhật User
          • Xóa User
          • Đổi mật khẩu
        • Go - System
          • Nhật ký hoạt động (Phân trang)
          • Cập nhật dữ liệu Search
          • Test Webhook receiver
        • Go - Server
          • Danh sách Server (Phân trang)
          • Tạo Server
          • Lấy tất cả Server
          • Chi tiết Server
          • Cập nhật Server
          • Xóa Server
        • Go - Tasks
          • Tạo nhiều task Search
          • Lấy tất cả task Search
          • Reset trạng thái tất cả nhiệm vụ Search
          • Tạo nhiều task Anchor Text
          • Lấy tất cả nhiệm vụ Anchor Text
          • Reset trạng thái tất cả nhiệm vụ Anchor Text
        • Go - Webhook
          • Webhook cập nhật trạng thái (Dùng WEBHOOK_KEY)
          • Lấy Proxy cho Tool
          • Lấy Proxy có thể rotate
          • Cập nhật kết quả Search
          • Kết quả rotate Proxy
          • Cập nhật kết quả Anchor Text
          • Nhận kết quả từ Tool (v2)
      • Deployment
        • Local
        • Staging
        • Product
    • Search tool
      • Tổng quan Search Tool
      • Architecture
        • Database Schema
        • System Architecture
        • Code Structure
      • API Interface
        • Bun - Main
          • Thông tin server Bun
          • Health Check
          • Lấy file Log
        • Bun - Task
          • Danh sách Search Tasks
          • Tạo nhiều Search Tasks
          • Xóa tất cả Search Tasks
          • Xóa Search Task
          • Reset trạng thái Search
          • Reset running process
          • Danh sách Anchor Tasks
          • Tạo nhiều Anchor Tasks
          • Xóa tất cả Anchor Tasks
          • Xóa Anchor Task
          • Reset trạng thái Anchor
          • Reset running process
      • Deployment
        • Local
        • Staging
        • Product
  • Schemas
    • LoginRequest
    • ProxyRequest
    • CreateUserRequest
    • KeywordTaskRequest
    • UpdateUserRequest
    • SearchAutomationRequest
    • ChangePasswordRequest
    • CreateServerRequest
    • AnchorTextTaskRequest
  1. Architecture

Code Structure

CẤU TRÚC MÃ NGUỒN (CODE STRUCTURE)#

Codebase được viết chuẩn Typescript hoàn toàn, strict mode. Tổ chức theo mô hình Layered Architecture: Controller -> Service -> Model và nhóm theo Domain-Driven thư mục để module hóa dễ scale.

1. Sơ đồ thư mục#

/src
├── index.ts                -> Boot loader/Entrypoint, load config, swagger, setup main Elysia HTTP app
├── config/                 -> Config chung của framework, Database mongodb connection options.
├── api/                    -> Logic module / Domain chính (các domains sẽ import vào /api/index.ts)
│   ├── index.ts            -> Tích hợp các route để mount vào root app
│   ├── search/             -> Scope xử lý Search engine tool
│   │   ├── search.controller.ts  -> Routes (GET/POST/DELETE) đón request 
│   │   ├── search.service.ts     -> Tầng logic update, query Data tới MongoDB (lọc data, locking mutex)
│   │   ├── search.cron.ts        -> Background Worker logic: run puppeteer flow, check limits, run browser automation
│   │   ├── search.dto.ts         -> Type schema validate các fields body/params Input & Output
│   │   └── search.model.ts       -> Schema Collection DB mongo (Typegoose Entity)
│   │
│   ├── search-anchor-text/ -> Scope quét verify anchor element
│   │   ├── (các file controller, service, model và cron tương tự như search)
│   │
│   └── (Lưu ý: /proxy folder hiện không xài nữa, đang dùng Proxy Tool để lấy proxy, setup trong .env
├── utils/                  -> Tools tiện ích dùng xuyên suốt app
│   ├── browser_manager/    -> Lớp Wrapper thiết lập Chromium flags, manage instance Puppeteer, human-mouse/ghost cursor tránh bot detection
│   ├── logger.ts           -> Cấu hình log của bun cho terminal/file text
│   ├── env.ts              -> Validate Strict các Environment Variables
│   ├── error.middleware.ts -> Catch all app errors (try catch wrapper) map response format
│   └── createElysia.ts     -> Init các Elysia Server Instance
├── services/               -> Các Services layer 3rd-party hoặc gọi ra External Network
│   └── webhook/            -> Logic API client call POST sang target url client report lúc task finished
├── types/                  -> Alias và types globals project

2. Các module quan trọng đối với core workflow#

.dto.ts: Trong môi trường ElysiaJS, DTO đóng 2 vai trò: Vừa validate Input data từ API gọi sang chặt chẽ bằng lib tên TypeBox (t), vừa auto-generate document specs cho Swagger.
.cron.ts: Worker file. Đóng vai trò là executor thực thi script cào dữ liệu chứ không trả thẳng trong HTTP cycle. Quản lý timeout, logic load proxy mới cho process và save state data.
browser_manager: Có áp dụng queue control hạn chế mem leak, chèn extension và override args chrome driver để handle session ổn định, không bypass manual logic.
Ngày cập nhật 2026-03-31 02:21:05
Trước
System Architecture
Tiếp theo
Thông tin server Bun
Built with