Skip to content

🏗️ Kiến Trúc Hệ Thống

Trang này cung cấp cái nhìn tổng quan về toàn bộ hệ sinh thái LaunchPad — giúp bạn hiểu cách các thành phần kết nối và hoạt động cùng nhau.

Hệ Sinh Thái LaunchPad

LaunchPad gồm 2 stack hoạt động phối hợp:

StackRepositoryVai trò
CMS Stacklaunchpad-cms-fullstackStrapi 5 + Next.js + PostgreSQL + Nginx — ứng dụng web chính
Registry Stacklaunchpad-registry-stackDocker Registry + Nginx UI + Dozzle + Watchtower — hạ tầng DevOps

Mối quan hệ giữa 2 Stack

CMS Stack chứa source code và ứng dụng. Registry Stack là hạ tầng giúp triển khai và vận hành CMS Stack trên VPS. Cả hai đều chạy trên cùng một VPS.


🌐 Tổng Quan Kiến Trúc Production

Giải thích

  • Nginx UI là điểm duy nhất tiếp nhận traffic từ internet (port 80/443)
  • Tất cả dịch vụ khác chỉ expose trong mạng Docker nội bộ
  • Watchtower tự động kiểm tra image mới từ Registry mỗi 2 phút

💻 Kiến Trúc Development (Máy Local)

Khi phát triển trên máy cá nhân, chỉ Database chạy trong Docker:

Hot-Reload

Cả Next.js và Strapi đều chạy trực tiếp trên máy bạn với hot-reload — mỗi khi lưu file, trình duyệt tự động cập nhật.


🚀 Kiến Trúc Production (VPS)

Trên VPS, tất cả dịch vụ chạy trong Docker containers. VPS không build code — chỉ pull image đã build sẵn:


🔄 Luồng CI/CD — Zero-Downtime Deployment

Không cần SSH

Sau khi push image lên Registry, bạn không cần SSH vào VPS. Watchtower tự động phát hiện và cập nhật trong vòng 2 phút.


📊 Bảng Port Mapping

Development (Máy Local)

Dịch vụPortURLMô tả
Next.js3000http://localhost:3000Website Frontend
Strapi1337http://localhost:1337/adminCMS Admin Panel
PostgreSQL54321Database
Nginx8080http://localhost:8080Reverse Proxy
Adminer8080http://localhost:8080Database GUI

Production (VPS)

Dịch vụPortExposeMô tả
Next.js3000Nội bộ DockerWebsite Frontend
Strapi1337Nội bộ DockerCMS API
PostgreSQL5432Nội bộ DockerDatabase
Nginx CMS8000Nội bộ DockerProxy cho Next.js + Strapi
Registry50005000Docker Registry API
Registry UI50015001Registry Web UI
Nginx UI80/443InternetSSL + Reverse Proxy
Dozzle8888127.0.0.1 onlyLog Viewer
Cockpit90909090Server Admin

Chỉ port 80/443 mở ra Internet

Tất cả dịch vụ khác chỉ truy cập được qua mạng Docker nội bộ hoặc localhost. Nginx UI là gateway duy nhất tiếp nhận traffic từ internet.


🌐 Bảng Subdomain (Ví dụ)

Chưa có domain?

Bạn hoàn toàn có thể chạy hệ thống chỉ với IP. Xem hướng dẫn tại Triển khai lên VPS → Chạy Không Có Domain.

SubdomainDịch vụCổng nội bộGhi chú
nhaateliertattoo.comWebsite (Next.js)8000Trang chính
admin.nhaateliertattoo.comStrapi Admin1337Quản trị nội dung
nginx-ui.nhaateliertattoo.comNginx UI9000Quản lý Nginx + SSL
dozzle.nhaateliertattoo.comDozzle Logs8080 (Docker) / 8888 (Host)Xem log (Basic Auth)
registry-ui.nhaateliertattoo.comRegistry UI5001Quản lý Docker images
cockpit.nhaateliertattoo.comCockpit9090Quản lý server

🔒 Mạng Docker (Network Topology)

Bảo mật theo thiết kế

Database, Strapi API, và Registry đều ẩn hoàn toàn trong mạng Docker nội bộ. Không thể truy cập trực tiếp từ internet — mọi request đều phải đi qua Nginx UI.


Bước Tiếp Theo

👉 Tôi muốn bắt đầu phát triểnLocal Development

👉 Tôi muốn triển khai lên VPSTriển khai lên VPS

👉 Tôi muốn hiểu hạ tầng RegistryHạ Tầng Registry Stack

Được xây dựng với ❤️ bởi đội ngũ LaunchPad.