Tài Liệu Triển Khai Dự Án One Push — Production (Docker)#
Triển Khai Dự Án One Push — Backend Admin & Delivery Engine
🔥 Tổng Quan Production#
Tài liệu này mô tả quy trình xây dựng và triển khai dự án One Push Admin trong môi trường production, sử dụng hệ thống Containerization để đảm bảo tính ổn định và khả năng mở rộng.| Dịch Vụ | Công Nghệ | Runtime | Mục Đích |
|---|
| App Server | Laravel 10 (PHP 8.2) | Nginx + PHP-FPM | Xử lý Web UI & API Public |
| Worker Engine | Laravel Horizon | PHP + Redis | Gửi hàng triệu tin nhắn nền (Push) |
| Scheduler | Cronjob | PHP Artisan | Tự động hoá báo cáo & Sync Heartbeat |
🏢 Kiến Trúc Dịch Vụ#
Tech Stack#
Framework: Laravel 10.x với PHP 8.2+
Database: MariaDB 10.11 / MySQL 8.0
Caching: Redis v7.x (Bắt buộc cho Queue & Heartbeat)
Runtime: Nginx Alpine + PHP-FPM Alpine
Cấu Trúc Docker#
OnePush/
├─ .docker/
│ ├─ Dockerfile.production # Multi-stage build (Composer -> FPM)
│ ├─ nginx/
│ │ └─ default.conf
│ └─ supervisor/
│ └─ worker.conf # Cấu hình Horizon & Scheduler
├─ .env.production
├─ artisan
└─ docker-compose.yml.production
📦 Xây dựng & Đẩy Image (CI/CD Pipeline)#
Chúng tôi sử dụng Multi-stage Build để giảm thiểu kích thước image và tăng cường bảo mật.
🚀 Quy trình Triển Khai (Deployment)#
Việc cập nhật code mới diễn ra tự động thông qua Docker Compose mà không làm gián đoạn hệ thống.
🛡️ Các Thực Hành Bảo Mật (Production Hardening)#
1.
Optimize Autoload: Chạy composer install --optimize-autoloader --no-dev trong lúc build.
2.
Read-only Filesystem: Container chạy PHP không được phép ghi vào các thư mục ngoài storage/ và bootstrap/cache.
3.
Horizon Security: Dashboard Horizon được bảo vệ bởi IP Whitelisting hoặc Basic Auth.
4.
Queue Worker: Giới hạn memory-limit=128M để tránh rò rỉ bộ nhớ khi xử lý Job lớn.
📚 Tài Liệu Tham Khảo#
Modified at 2026-03-27 03:49:16