Đến nội dung hướng dẫn
Mục lục tài liệu · Deploy app đầu tiên

Bắt đầu

Deploy app đầu tiên

Deploy app đầu tiên từ source code đến môi trường chạy thật trong vài bước.

Trong trang này

Chuẩn bị

Mục tiêu: có một URL trả về “Hello DLEZ” mà không tự cài server. Cần tài khoản Console, quyền tạo project, source trên GitHub hoặc ZIP và kiểm tra plan/số dư trước khi tạo tài nguyên.

Nếu đã có app chạy được, dùng README của app để xác định lệnh build/start và port. Nếu chưa có, tạo thư mục chứa hai file sau rồi chạy npm start tại thư mục đó bằng Node.js:

package.json

{
  "name": "hello-dlez",
  "version": "1.0.0",
  "private": true,
  "type": "module",
  "scripts": {
    "build": "node --check server.js",
    "start": "node server.js"
  }
}

server.js

import { createServer } from "node:http";
const port = Number(process.env.PORT || 3000);
createServer((_request, response) => {
  response.writeHead(200, { "Content-Type": "text/plain; charset=utf-8" });
  response.end("Hello DLEZ");
}).listen(port, "0.0.0.0", () => console.log("Listening on port", port));

Mở http://localhost:3000: phải thấy “Hello DLEZ”. Đưa hai file lên repo hoặc ZIP ở thư mục gốc, không kèm .env, mật khẩu hay node_modules. Đây là ví dụ kiểm tra deploy, chưa có chức năng nghiệp vụ hoặc database.

Deploy từng bước

  1. Tạo project: mở Projects, đặt tên dễ nhận biết như hello-dlez và mở luồng Flash Deploy.
  2. Chọn source: kết nối GitHub và chọn repository/branch; hoặc upload ZIP. Kiểm tra đúng source vừa chạy thử.
  3. Chọn runtime: chọn template Node.js phù hợp từ Console. Đối chiếu cấu hình build với npm run build và start với npm start của ví dụ; kiểm tra draft/build config trước khi deploy.
  4. Cấu hình: đặt public port 3000. Ví dụ này dùng PORT=3000 và không cần MySQL/Redis; chọn CPU/RAM và xem chi phí hiển thị.
  5. Deploy: theo dõi build logs; sau đó đọc runtime logs để thấy “Listening on port 3000”. Nếu lỗi, đọc thông báo đầu tiên trước khi thử lại.
  6. Kiểm tra: mở URL được hiển thị trong project. Phải thấy “Hello DLEZ”; mở lại bằng cửa sổ riêng tư để xác nhận truy cập từ ngoài.
  7. Thử cập nhật: đổi nội dung phản hồi, cập nhật source GitHub/ZIP và deploy lại. Xác nhận URL trả nội dung mới và release mới xuất hiện trong lịch sử.

Nếu dùng app của bạn

Chỉ thêm biến mà code đọc. Ví dụ trên chỉ dùng PORT; không thêm DATABASE_URL hay REDIS_URL khi app không cần. App Node.js, Next.js hay frontend tĩnh có cách build/start khác nhau; không dùng dev server làm lệnh chạy production.