1. Deployment
Social Tool Documentation
  • Tổng quan
  • Bussiness | Logic
    • Bussiness | Logic
  • Project
    • ADMIN
      • Tổng quan ADMIN
      • Architecture
        • System architecture
        • Code structure
      • Deployment
        • Local
        • Staging
        • Product
      • Hướng dẫn sử dụng
        • Đăng nhập
        • FAQ
        • Mạng xã hội
          • Tài khoản mạng xã hội
          • Nội dung bài viết & bình luận
          • Quản lý liên kết
          • Thư viện hình ảnh
          • Thu thập dữ liệu
        • Hệ thống
          • Quản lý proxy
        • Chiến dịch
          • Tạo & quản lý chiến dịch
          • Đăng nhập tài khoản
          • Check Proxy
          • Join Group
    • API
      • Tổng quan API
      • Architecture
        • System architecture
        • Database schema
        • Code structure
      • Deployment
        • Local
        • Staging
        • Product
      • API Interface
        • 🔑 Identity & Session
          • List users
          • Create user
          • Update info user
          • Update info user
          • List user departments
          • Delete user
          • List user's AI keys
          • Create AI key
          • Get user's active API key
          • Get supported services
          • Get supported AI models
          • Update AI key
          • Delete AI key
          • Get AI key by ID
          • List departments
          • Create department
          • Update department
          • Create department
          • Update department
          • Update department roles
          • Get department roles
          • Update department status
          • Delete department
          • List user sessions
          • Create user session
          • Delete user session
          • Get user sessions by user ID
          • Delete all user sessions
          • Update user session status
          • List user activity logs
          • Create user activity log
          • Get user activity logs
          • Delete user activity logs
          • User login
          • User registration
          • User logout
          • Logout from all devices
          • Refresh access token
          • Create api key
          • Reset password
          • Get current user
          • Get user roles
          • Create role
          • Update role
          • Update role
          • Update role
          • List user permission groups
          • Get user permission group by ID
          • Delete user permission group
          • Create user permission group
          • Update user permission group
          • Get all user permission groups with permissions
        • 🛰️ Proxy & Connectivity
          • List proxies
          • Create proxy
          • Create many proxies
          • Update proxy
          • Delete proxy
          • Get proxy by ID
          • Import proxies from CSV/Excel
          • Check expired proxies
          • Kiểm tra proxy (qua Campaign)
          • Xóa proxy
          • Cập nhật proxy
          • Proxy Group list
          • Create a Proxy Group
          • Get a Proxy Group by ID
          • Update a Proxy Group
          • Delete a Proxy Group
          • Delete a Proxy Group
          • List proxy providers
          • Create proxy provider
          • Update proxy provider
          • Delete proxy provider
          • Get proxy provider by ID
          • Import proxy packages from CSV
          • List proxy packages
          • Create proxy package
          • Update proxy package
          • Delete proxy package
          • Get proxy package by ID
          • Import proxy packages from CSV
        • 📱 Social Management
          • List socials
          • Create social
          • Update social
          • Delete social
          • Get social by ID
          • List social accounts
          • Create social account
          • Create social account
          • Get account tasks
          • Assign proxies to social account
          • Update social account
          • Delete social account
          • Get social account by ID
          • Join social account
          • Cancel social accounts
          • Cancel social accounts
          • Import social accounts from file
          • Get account usage statistics
          • Push cookies manually for specific accounts (via Campaign)
          • Đổi tên nhiều tài khoản (qua Campaign)
          • Đổi mật khẩu nhiều tài khoản (qua Campaign)
          • Đổi ảnh đại diện (qua Campaign)
          • Social Account Group list
          • Create a Social Account Group
          • Get a Social Account Group by ID
          • Create a Social Account Group
          • Delete a Social Account Group
          • List social pages
          • Create social page
          • Update social page
          • Delete social page
          • Get social page by ID
          • Batch update social page status
          • Batch delete social pages
          • Import social pages from file
          • Search social pages
          • Batch delete social pages
          • Social Page Group list
          • Create a Social Page Group
          • Get a Social Page Group by ID
          • Update a Social Page Group
          • Delete a Social Page Group
          • List social actions
          • Create social action
          • Update social type
          • Delete social action
          • Get social type by ID
          • List social pages
          • Create social content
          • Update social content
          • Delete social content
          • Get social content by ID
          • Batch delete social content
          • Import social accounts from file
          • Create a new social content group
          • Get paginated list of social content groups
          • Get social content group by ID
          • Update social content group
          • Soft delete social content group
          • Batch delete social content groups
          • Delete social content group
          • Get groups by social platform ID
          • Social Image list
          • Create a Social Image
          • Get a Social Image by ID
          • Update a Social Image
          • Delete a Social Image
          • Social Collect Data list
          • Create a Social Collect Data
          • Get a Social Collect Data by ID
        • 📁 Campaign Management
          • List campaigns
          • Create campaign
          • Update campaign
          • Delete campaign
          • Get campaign by ID
          • Create campaign platform
          • List campaign platforms
          • Update campaign platform
          • Delete campaign platform
          • Get campaign platform by ID
          • Create campaign platform
          • Create campaign platform
          • Clone campaign platforms
          • Cancel multiple campaign platforms
          • List campaign joins
          • Create campaign platform
          • List campaign joins
          • Update campaign platform
          • Update campaign platform
          • Update campaign platform
          • Update campaign platform
          • List jobs
          • Update job
          • Delete job
          • Get job by ID
          • List campaign platform tasks
          • Create campaign platform task
          • Update campaign platform task
          • Delete campaign platform task
          • Get campaign platform job task by ID
          • List Report Categories
          • Create Report Categories
          • Create Report Categories
          • Create Report Categories
          • List Report Details
          • Create Report Details
          • Create Report Details
          • Create Report Details
    • TOOL
      • Tổng quan TOOL
      • Architecture
        • Database schema
        • System architecture
        • Code structure
      • Deployment
        • Local
        • Staging
        • Product
      • API Interface
        • 🎯 NATS — Task
          • [NATS RPC] Tạo batch Task mới
          • [NATS RPC] Lấy danh sách tất cả Tasks
          • [NATS RPC] Đếm số Task đang chờ xử lý
          • [NATS RPC] Xóa tất cả Tasks
        • 🍪 NATS — Cookie
          • [NATS RPC] Thêm batch Cookie (Auto Login)
          • [NATS RPC] Lấy danh sách tất cả Cookies
          • [NATS RPC] Xóa tất cả Cookies
        • 🌐 NATS — Proxy
          • [NATS RPC] Gửi batch Proxy để kiểm tra
        • 🔗 NATS — TaskJoin
          • [NATS RPC] Tạo lệnh tham gia Group
          • [NATS RPC] Kiểm tra trạng thái tham gia Group
        • 📤 NATS — Callbacks
          • [NATS PUB] Kết quả thực thi Task
          • [NATS PUB] Kết quả Crawl dữ liệu
          • [NATS PUB] Kết quả Auto Login
          • [NATS PUB] Kết quả kiểm tra Proxy
          • [NATS PUB] Kết quả tham gia Group
          • [NATS PUB] Kết quả kiểm tra trạng thái tham gia
        • 📊 HTTP — Logs & Info
          • Service Root — Thông tin Worker
          • Health Check
          • Đọc file log
          • Log hôm nay
          • Log theo ngày cụ thể
          • Danh sách ngày có log
          • Test kết nối ChatGPT
        • 📋 HTTP — Data Query
          • Danh sách Tasks (phân trang + lọc)
          • Xóa tất cả Tasks
          • Danh sách tất cả Cookies
          • Xóa tất cả Cookies
          • Xóa Cookie theo _id
          • Danh sách Proxies (lọc theo task_id)
          • Xóa tất cả Proxies
          • Proxy Checks đang chờ xử lý
          • Proxy Checks đã hoàn thành
          • Xóa Proxy theo _id
          • Danh sách Task Join (phân trang + lọc)
          • Tạo Task Join (HTTP mode)
          • Xóa tất cả Task Join
  • Schemas
    • AIInfo
    • CommentInfo
    • ReplyInfo
    • ShareInfo
    • CaptchaInfo
    • PageInfo
    • SocialAccountInfo
    • ProxyInfo
    • SocialInfo
    • ActionInfo
    • CreateTaskPayload
    • CreateCookiePayload
    • CreateProxyPayload
    • CreateTaskJoinPayload
    • NatsAcceptedResponse
    • NatsRejectedResponse
    • NatsErrorResponse
    • TaskCompletedPayload
    • CookieUpdatePayload
    • ProxyCheckResultPayload
    • TaskJoinResultPayload
    • TaskJoinCheckResultPayload
    • PagingInfo
    • AppError
  1. Deployment

Product

content# Tài Liệu Xây Dựng & Triển Khai Social API — Docker
Docker  Bun

Triển Khai Social API ở môi trường production với Docker
Website · Cấu Hình · Xây Dựng & Triển Khai
English   Tiếng Việt

🔥 Tổng Quan#

Tài liệu này mô tả quy trình xây dựng và triển khai dịch vụ Social API chạy trên Docker trong môi trường production.

Tech Stack#

Framework: Bun (TypeScript) với Drizzle ORM
Xây dựng: bun install → bun run build → bun run compile
Runtime: Bun + Supervisor + Nginx
ECR: social/api-prod (production) / social/api-base-prod (base)
Cơ sở dữ liệu: MongoDB (qua Drizzle ORM, migrations tại drizzle/)
Hàng đợi tin nhắn: NATS (Alpine)
Source: Git submodule tại build/api/

📖 Tài Liệu Tham Khảo#

Xem thêm tài liệu tại docs.docker.com và FAQ tại đây.

🚧 Cấu Trúc Dự Án#

Social/api/
├─ build/
│  ├─ Dockerfile-base                           # Base image: Supervisor + Nginx
│  ├─ Dockerfile                                # Production: Bun build → binary
│  ├─ api/                                      # ⚡ Git submodule — Bun source
│  │  ├─ .env
│  │  ├─ package.json
│  │  ├─ bun.lock
│  │  ├─ drizzle/                               # Drizzle ORM migrations
│  │  └─ src/
│  └─ conf/
│     ├─ nginx/
│     │  ├─ common/nginx.conf                   # Cấu hình Nginx chung
│     │  └─ template/default.conf.template      # Template server block
│     └─ supervisor/
│        ├─ common/supervisord.conf             # Cấu hình Supervisor chung
│        ├─ common/entry_point.sh               # Script khởi chạy
│        ├─ nginx.conf                          # Cấu hình Nginx Supervisor
│        ├─ social-api.conf                     # Cấu hình API Supervisor
│        └─ *.sh                                # Các script khởi chạy
├─ .env.production                              # Biến môi trường Docker Compose
└─ docker-compose.yml.production                # Compose file

🏗️ Pipeline Xây dựng#

┌──────────────────────────────────────────────────────────────┐
│                    BUN BUILD PIPELINE                         │
│                                                               │
│  ┌─────────────┐            ┌──────────────┐                  │
│  │ GIAI ĐOẠN 1 │            │ GIAI ĐOẠN 2  │                  │
│  │    build    │───────────▶│  production  │                  │
│  │             │            │              │                  │
│  │ • bun       │            │ • Base image │                  │
│  │   install   │            │ • Supervisor │                  │
│  │ • bun run   │            │ • Nginx      │                  │
│  │   build     │            │ • Bun binary │                  │
│  │ • bun run   │            │ • Drizzle    │                  │
│  │   compile   │            │   migrations │                  │
│  └─────────────┘            └──────────────┘                  │
└──────────────────────────────────────────────────────────────┘

📦 Dịch Vụ Phụ Thuộc#

Dịch VụImagePortMục Đích
NATSnats:alpine4222Hàng đợi tin nhắn cho giao tiếp bất đồng bộ

Yêu Cầu Công Cụ#

Công CụPhiên Bản Tối ThiểuMục Đích
Docker≥ 24.0.0Quản lý container
MongoDB≥ 7Máy chủ cơ sở dữ liệu
MySQL≥ 8Máy chủ cơ sở dữ liệu

❄️ Cấu Hình#

Biến Môi Trường Docker Compose (.env.production)#

Biến Môi Trường Ứng Dụng (build/api/.env)#

Thiết Lập Cơ Sở Dữ Liệu (MongoDB)#

🚀 Xây dựng & Triển Khai#

Bước 1: Xây dựng Image#

Bước 2: Đẩy lên ECR#

Bước 3: Triển Khai#

Lưu ý: Dịch vụ API triển khai cùng container NATS cho hàng đợi tin nhắn. File .env của ứng dụng Bun được mount read-only tại /app/.env.

🛡️ 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 — chạy dưới user không đặc quyền (UID: 1200)
3.
Supervisor quản lý — auto-restart khi có lỗi

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

Tài liệu Docker
Tài liệu Bun
Drizzle ORM
Tài liệu NATS
Hướng dẫn AWS ECR
Hướng dẫn Swap Memory
Modified at 2026-03-25 12:03:20
Previous
Staging
Next
List users
Built with