| Dịch Vụ | Công Nghệ | Runtime | Mục Đích |
|---|---|---|---|
| API | Golang | Go binary + Supervisor | API backend cho tìm kiếm |
| Tool | Bun (TypeScript) | Bun + Supervisor + Chrome | Công cụ tự động đánh chỉ mục tìm kiếm |
go mod download → go build -o se-api cmd/main.gosearch/api-prodSearch/api/
├─ build/
│ ├─ Dockerfile-base # Base image: Supervisor
│ ├─ Dockerfile # Production: Go build
│ ├─ api/ # ⚡ Git submodule — Go source
│ └─ conf/supervisor/search-api.conf
├─ database/
└─ docker-compose.yml.production┌─────────────────────────────────────────────────────────────┐
│ GO BUILD PIPELINE │
│ │
│ ┌─────────────┐ ┌─────────────┐ │
│ │ GIAI ĐOẠN 1 │ │ GIAI ĐOẠN 2 │ │
│ │ build │───────────▶│ production │ │
│ │ │ │ │ │
│ │ • go mod │ │ • Base │ │
│ │ download │ │ image │ │
│ │ • go build │ │ • Supervisor│ │
│ │ • se-api │ │ • se-api │ │
│ │ binary │ │ binary │ │
│ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────────┘bun install → bun compilesearch/tool-prodSearch/tool-v2/
├─ build/
│ ├─ Dockerfile-base # Base image: Supervisor + Chrome
│ ├─ Dockerfile # Production image
│ ├─ tools/ # ⚡ Git submodule — Bun source
│ └─ conf/supervisor/search-tool.conf
├─ docs/
│ ├─ swap-memory/README.md
│ └─ vi-VN/README.md
├─ media/
└─ docker-compose.yml.production.env không bao giờ nhúng vào image — mount dưới dạng read-only volume khi runtime