MEAN (MongoDB, Express, Angular, Node.js) là một bộ phần mềm web mã nguồn mở dùng để xây dựng các ứng dụng web hiện đại:
- MongoDB: cơ sở dữ liệu dạng tài liệu để lưu trữ dữ liệu ứng dụng.
- Express: web application framework cho backend.
- Angular: xây dựng giao diện người dùng với JavaScript; hỗ trợ Web Workers và server-side rendering giúp tối ưu tốc độ.
- Node.js: môi trường chạy (runtime) cho ứng dụng.
MEAN là một full-stack JavaScript dựa trên MongoDB, ExpressJS, AngularJS, NodeJS. Bạn có thể xây dựng toàn bộ ứng dụng web chỉ với JavaScript, từ client → server → database. Việc dùng một ngôn ngữ duy nhất giúp phát triển nhanh hơn mà vẫn đảm bảo tính năng.
Triển khai Marketplace App
- Đăng nhập Cloud Manager và chọn liên kết Marketplace ở menu trái (tab Marketplace sẽ được mở sẵn trên trang Create Linode).
- Trong phần Select App, chọn ứng dụng bạn muốn triển khai (MEAN).
- Điền biểu mẫu theo hướng dẫn trong Creating a Compute Instance. Một số ứng dụng có thêm tùy chọn cấu hình — xem Tùy chọn cấu hình bên dưới.
- Nhấp Create Linode. Sau khi Compute Instance được cấp phát và bật hoàn tất, hãy chờ phần mềm cài xong. Nếu tắt/khởi động lại trước thời điểm này, cài đặt có thể thất bại.
- Xác minh cài đặt trong Get Started with Marketplace Apps > Verify Installation. Sau đó xem Getting Started After Deployment để sử dụng ứng dụng.
Lưu ý: Thời gian ước tính: MEAN thường hoàn tất cài đặt trong 2–5 phút sau khi Compute Instance đã provisioning xong.
Tùy chọn cấu hình
- Hệ điều hành hỗ trợ: Ubuntu 24.04 LTS
- Gói tối thiểu khuyến nghị: 1GB Shared Compute Instance hoặc cao hơn (tùy số lượng/quy mô site).
MEAN Options
- Email address (bắt buộc): Email dùng để tạo chứng chỉ SSL.
Limited Sudo User
Điền các trường sau để tự động tạo một tài khoản limited sudo user (mật khẩu mạnh sinh ngẫu nhiên). Tài khoản sẽ thuộc nhóm sudo
để chạy lệnh có tiền tố sudo
.
- Limited sudo user: Nhập username mong muốn (không viết hoa, không khoảng trắng, không ký tự đặc biệt).
Vị trí mật khẩu sudo đã sinh
Một mật khẩu sẽ được sinh cho limited user và lưu tại tệp .credentials
trong thư mục home của họ (kèm các mật khẩu ứng dụng khác). Xem bằng:
cat /home/$USERNAME/.credentials
Khuyến nghị thêm account SSH key cho người dùng Cloud Manager thực hiện triển khai và chọn người dùng đó làm authorized_user
(qua API hoặc trong Cloud Manager). SSH pubkey sẽ được gán cho cả root
và limited user.
Disable root access over SSH: Chọn Yes để chặn root
đăng nhập qua SSH. Bạn vẫn có thể chuyển sang root sau khi đăng nhập, hoặc đăng nhập root qua Lish.
Truy cập Instance khi không dùng SSH
Nếu bạn tắt SSH cho root và không cung cấp Account SSH Key hợp lệ gán cho authorized_user
, hãy đăng nhập với root qua Lish console và chạy:
cat /home/$USERNAME/.credentials
…để xem mật khẩu đã sinh cho limited user.
Tên miền tùy chọn (Custom Domain)
Nếu muốn tự động cấu hình domain, trước hết hãy trỏ domain dùng Linode’s name servers (thực hiện tại registrar). Sau đó điền các trường sau trong Marketplace App:
- Linode API Token: Nếu muốn dùng DNS Manager để quản lý bản ghi DNS cho domain tùy chỉnh, hãy tạo Personal Access Token có quyền Read/Write với Domains. Khi cung cấp kèm subdomain và domain, cài đặt sẽ cố gắng tạo DNS record qua Linode API. Nếu không cung cấp, bạn tự cấu hình DNS trỏ về IP của instance.
- Subdomain: ví dụ
www
chowww.example.com
. - Domain: ví dụ
example.com
.
Cảnh báo: Không dùng ký tự ngoặc kép "
trong bất kỳ trường cấu hình nào của App (bao gồm các trường mật khẩu). Ký tự này có thể gây lỗi triển khai.
Getting Started After Deployment
Sau khi ứng dụng được triển khai, bạn cần lấy các thông tin đăng nhập (credentials) từ máy chủ.
Cách lấy credentials
- Đăng nhập vào Compute Instance theo một trong các cách:
- Lish Console: Trong Cloud Manager → Linodes → chọn instance → Launch LISH Console → đăng nhập user
root
. (Xem Using the Lish Console.) - SSH: Đăng nhập qua SSH bằng user
root
. (Xem Connecting to a Remote Server Over SSH.)
- Lish Console: Trong Cloud Manager → Linodes → chọn instance → Launch LISH Console → đăng nhập user
- Chạy lệnh để xem tệp credentials:
Lệnh trả về các mật khẩu đã sinh tự động khi triển khai. Hãy lưu lại. Sau khi lưu, bạn có thể xóa tệp này để an toàn.cat /home/$USERNAME/.credentials
Khi triển khai xong, một ứng dụng mẫu Hello World sẽ chạy sẵn. Backend Express chạy trên cổng 5000
, và Nginx phục vụ frontend Angular qua domain tùy chỉnh hoặc rDNS trên cổng 80
và 443
. Thực hiện theo hướng dẫn dưới đây để xem/ truy cập.
Truy cập MEAN App qua dòng lệnh
Các thành phần MEAN được bố trí như sau:
- Frontend (Angular):
/var/www/[domain]
- Backend (Express):
/var/www/[domain]/backend
- SSH hoặc Lish vào máy.
- Đi tới thư mục backend:
cd /var/www/[domain]/backend
- Xem file server của Express:
cat server.js
- Xem các tệp frontend Angular:
cd /var/www/[domain] ls
Xem MEAN App bằng trình duyệt
Mở trình duyệt và truy cập https://[domain]
, trong đó [domain]
là domain tùy chỉnh bạn nhập khi triển khai hoặc rDNS của instance (ví dụ 192-0-2-1.ip.linodeusercontent.com
). Xem hướng dẫn Managing IP Addresses để biết cách xem rDNS.
Phần mềm được cài
Software | Mô tả |
---|---|
MongoDB 8.0 | Document-based database |
Express | Web application framework |
Angular | JavaScript frontend framework with CLI |
Node.js 22.x | Runtime environment |
NGINX | Web server |
UFW (Uncomplicated Firewall) | Tường lửa. Mở cổng 22, 80, 443 cho IPv4 & IPv6. Các cổng khác: deny (incoming) , allow (outgoing) . |
Lưu ý bảo trì: Hiện Akamai không quản lý cập nhật phần mềm/hệ thống cho Marketplace Apps. Người dùng cần tự chủ động bảo trì định kỳ.