Deploy ứng dụng (Render, Railway, VPS)
Để đưa ứng dụng Node.js của bạn từ máy tính cá nhân (Localhost) lên Internet cho mọi người cùng truy cập, bạn cần thực hiện quá trình Deploy (Triển khai). Hiện nay, có 3 hình thức deploy phổ biến nhất từ dễ đến khó, phù hợp với từng nhu cầu và ngân sách khác nhau. […]
Để đưa ứng dụng Node.js của bạn từ máy tính cá nhân (Localhost) lên Internet cho mọi người cùng truy cập, bạn cần thực hiện quá trình Deploy (Triển khai). Hiện nay, có 3 hình thức deploy phổ biến nhất từ dễ đến khó, phù hợp với từng nhu cầu và ngân sách khác nhau.
Trước khi chọn nền tảng, bạn bắt buộc phải chuẩn bị mã nguồn theo đúng chuẩn Cloud-ready dưới đây.
Bước chuẩn bị bắt buộc (Dành cho mọi nền tảng)
Để ứng dụng không bị lỗi “Crash” khi đưa lên máy chủ, hãy kiểm tra 3 yếu tố sau trong mã nguồn:
Cấu hình biến Cổng (PORT) linh hoạt: Các đám mây sẽ tự cấp một cổng ngẫu nhiên, bạn không được viết cứng số 3000.
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => console.log(`Server running on port ${PORT}`));
Cấu hình Scripts trong file package.json: Máy chủ cần biết lệnh nào để khởi chạy ứng dụng của bạn.
"scripts": {
"start": "node app.js"
}
Tạo file .gitignore: Tuyệt đối không đẩy thư mục node_modules/ và file chứa mật khẩu .env lên GitHub. Máy chủ sẽ tự chạy lệnh npm install để tải lại các thư viện sau.
3 Phương thức Deploy phổ biến nhất
1. Render (Dễ nhất – Miễn phí/Giá rẻ)
Render là nền tảng PaaS (Platform as a Service) thay thế hoàn hảo cho Heroku trước đây. Bạn chỉ cần đẩy code lên GitHub, Render sẽ tự động kéo code về và chạy.
Cách triển khai:
- Đẩy mã nguồn hoàn chỉnh của bạn lên một Kho lưu trữ (Repository) ở chế độ Riêng tư (Private) hoặc Công khai trên GitHub.
- Đăng nhập vào trang render.com bằng tài khoản GitHub của bạn.
- Nhấp vào nút New + → Chọn Web Service.
- Kết nối với Repository GitHub chứa dự án Node.js của bạn.
- Cấu hình các thông số cơ bản:
- Runtime: Node
- Build Command: npm install
- Start Command: npm start
- Nhấp vào mục Advanced → Thêm các biến môi trường (Environment Variables) từ file .env của bạn vào đây (ví dụ: MONGO_URI, JWT_SECRET).
- Nhấn Deploy Web Service. Hệ thống sẽ cấp cho bạn một đường dẫn dạng https://onrender.com.
2. Railway (Nhanh, Hiệu năng cao – Trả phí theo lưu lượng)
Railway có tốc độ biên dịch và triển khai cực kỳ nhanh, giao diện trực quan và hỗ trợ tạo sẵn các database đi kèm (MongoDB, MySQL) chỉ bằng 1 cú click chuột.
Cách triển khai:
- Truy cập railway.app và liên kết tài khoản GitHub của bạn.
- Chọn New Project → Deploy from GitHub repository.
- Chọn kho chứa mã nguồn Node.js của bạn.
- Nhấp vào mục Variables để nhập toàn bộ nội dung file .env của bạn lên hệ thống đám mây.
- Vào phần Settings → Cuộn xuống mục Networking → Chọn Generate Domain để nhận đường dẫn API công khai miễn phí.
- Mỗi khi bạn gõ lệnh git push ở máy tính, Railway sẽ tự động cập nhật phiên bản code mới nhất lên internet trong vòng chưa đầy 1 phút.
3. VPS – Virtual Private Server (Khó nhất – Kiểm soát 100%)
Mua một máy chủ ảo riêng (từ các nhà cung cấp như DigitalOcean, Linode, Vultr hoặc đơn vị trong nước như Viettel IDC, CMC). Bạn sẽ sở hữu một hệ điều hành Linux Ubuntu trắng và phải tự tay cài đặt mọi thứ từ đầu bằng giao diện dòng lệnh (Terminal).
Trọn bộ lệnh cấu hình cơ bản trên VPS Linux Ubuntu:
# 1. Cập nhật hệ thống máy chủ sudo apt update && sudo apt upgrade -y # 2. Cài đặt NodeJS (Sử dụng NVM để quản lý phiên bản) curl -o- https://githubusercontent.com | bash source ~/.bashrc nvm install --lts # 3. Kéo code từ GitHub về máy chủ git clone https://github.com cd ten-du-an npm install # 4. Cài đặt PM2 (Công cụ giữ cho Server Nodejs luôn chạy ngầm, tự khởi động lại nếu bị crash) sudo npm install pm2 -g pm2 start app.js --name "my-api" pm2 startup pm2 save # 5. Cài đặt Nginx làm Reverse Proxy để mở cổng 80/443 ra ngoài internet sudo apt install nginx -y
Bảng so sánh lựa chọn giải pháp phù hợp
| Tiêu chí | Render | Railway | VPS (DigitalOcean/Vultr) |
| Độ khó | Dễ (Chỉ cần click chuột) | Dễ (Giao diện hiện đại) | Khó (Đòi hỏi lệnh Linux) |
| Chi phí | Có gói Free (Bị ngủ sau 15p không có request) | Trả phí theo mức độ dùng | Cố định từ $4 -> $5 / tháng |
| Tốc độ | Khởi động chậm ở gói Free | Rất nhanh và mượt mà | Tối ưu tuyệt đối (Do bạn toàn quyền) |
| Phù hợp với | Học tập, làm đồ án tốt nghiệp, chạy thử nghiệm | Dự án vừa và nhỏ, sản phẩm MVP thương mại | Hệ thống thực tế lớn, cần bảo mật dữ liệu |