curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
nvm install 24
4. Clone kho lưu trữ (repository) ứng dụng bằng cách chạy lệnh sau trong terminal của bạn:
git clone https://github.com/thienluhoan/000006-EC2.git
cd 000006-EC2
npm init
Bạn nên nhấn Enter liên tục để tạo các giá trị mặc định

Cài đặt pm2 global (toàn cục); PM2 được sử dụng để quản lý và giám sát các ứng dụng Node.js đang chạy. Nó cho phép các ứng dụng chạy ngầm (in the background).
npm install pm2 -g && npm install

pm2 start app.js

touch .env && nano .env để điền các biến môi trường (environmental variables)DB_HOST='YOUR-RDS-ENDPOINT'
DB_NAME='fcaj'
DB_USER='admin'
DB_PASS='Aa12345#'

npm start
Lệnh pm2 status trong PM2 được sử dụng để hiển thị trạng thái hiện tại của tất cả các ứng dụng đang được PM2 quản lý. Khi bạn chạy lệnh này, bạn sẽ nhận được một cái nhìn tổng quan về mỗi ứng dụng, bao gồm các chi tiết như state (đang chạy, đã dừng, v.v.), mức sử dụng RAM, mức sử dụng CPU và số lần khởi động lại. Điều này giúp theo dõi hiệu suất và tình trạng của các ứng dụng Node.js một cách hiệu quả.

Tiếp theo, chúng ta cần lấy public DNS của instance để có thể truy cập ứng dụng từ trình duyệt.

Ứng dụng của chúng ta đang chạy ổn định: YOUR-PUBLIC-DNS:5000

Tiếp theo, chúng ta sử dụng lệnh pm2 startup để cấu hình PM2 tự động khởi động lại các ứng dụng khi máy chủ (server) khởi động lại.
Chúng ta tiếp tục thực thi lệnh sau:
sudo env PATH=$PATH:/home/ec2-user/.nvm/versions/node/v24.13.1/bin /home/ec2-user/.nvm/versions/node/v24.13.1/lib/node_modules/pm2/bin/pm2 startup systemd -u ec2-user --hp /home/ec2-user

pm2 save để lưu các cấu hình của bạn
