| Dịch Vụ | Công Nghệ | Runtime | Mục Đích |
|---|---|---|---|
| Admin | Vue.js (Vite) | Nginx (static) | Dashboard quản trị tạo landing page |
| API | Laravel (PHP) | PHP-FPM + Nginx | API backend quản lý landing page |
| Dịch Vụ | Công Nghệ | Runtime | Mục Đích |
|---|---|---|---|
| Admin | WordPress (PHP) | PHP-FPM + Nginx | Hệ thống landing page WordPress |
| API | Laravel (PHP) | PHP-FPM + Nginx | API backend quản lý hệ thống |
| Thành Phần | Dịch Vụ AWS | Mục Đích |
|---|---|---|
| Container Images | AWS ECR | Registry Docker image riêng tư |
| Cơ sở dữ liệu | AWS RDS | MySQL cho Laravel và WordPress |
| Cache | ElastiCache | Redis cho session, queue, cache driver |
npm install → npm run build:prodtools/landing-page-builder-admin-prodLanding-Page/Builder/admin/
├─ build/
│ ├─ Dockerfile.production # Production: Vue.js build → Nginx
│ ├─ source/ # ⚡ Git submodule — Vue.js source
│ └─ conf/nginx/
├─ .env.production
└─ docker-compose.yml.productiontools/landing-page-builder-api-prodLanding-Page/Builder/api/
├─ build/
│ ├─ Dockerfile-base.production
│ ├─ Dockerfile.production
│ ├─ source/ # ⚡ Git submodule — Laravel source
│ └─ conf/
│ ├─ nginx/template/default.conf.template
│ └─ supervisor/landing-page.conf
├─ database/
└─ docker-compose.yml.productiontools/landing-page-system-admin-prodLanding-Page/System/admin/
├─ build/
│ ├─ Dockerfile-base.production
│ ├─ Dockerfile.production
│ ├─ source/ # ⚡ Git submodule — WordPress source
│ │ ├─ wp-config.php
│ │ └─ wp-content/
│ └─ conf/nginx/template/default.conf.template
├─ database/
└─ docker-compose.yml.productionLưu ý: WordPress source được mount d ưới dạng Docker volume tại /opt/apps/wordpressđể cho phép lưu trữ file persistent.
tools/landing-page-system-api-prodLanding-Page/System/api/
├─ build/
│ ├─ Dockerfile-base.production
│ ├─ Dockerfile.production
│ ├─ source/ # ⚡ Git submodule — Laravel source
│ └─ conf/
│ ├─ nginx/template/default.conf.template
│ └─ supervisor/
└─ docker-compose.yml.production.env không bao giờ nhúng vào image — mount read-only khi runtime