← Vibe coding với Next.js

Bài 16 · Nâng cao · 30 phút

Deploy tự chủ trên VPS riêng

Biên soạn bởi Nguyễn Anh Tuấn

Trái tim của khoá: đưa sản phẩm lên VPS của RIÊNG bạn - tự chủ trọn hạ tầng, rẻ hơn hẳn khi đông người dùng và không bị khoá vào nền tảng nào. Một lệnh curl duy nhất tải script (tự host trên meohamhoc.vn) rồi tự cài cả máy chủ - Nginx, Node, PostgreSQL, Redis, và SSL/HTTPS miễn phí bằng certbot (Let's Encrypt, tự gia hạn) - cùng một công cụ dòng lệnh thêm/bớt site (cảm hứng từ hostman). Trung thực về đánh đổi: tự chủ và tiết kiệm, đổi lại bạn nhận trách nhiệm vận hành. (Kèm affiliate VPS - công khai minh bạch, bạn không tốn thêm gì.)

Sản phẩm đã đủ tính năng. Giờ tới phần làm nên tinh thần của khoá: đưa nó lên VPS của riêng mèo con thay vì gửi gắm cho một nền tảng quản lý hộ. Tự chủ trọn hạ tầng nghĩa là rẻ hơn hẳn khi đông người dùngkhông bị khoá vào nhà cung cấp nào.

Trung thực

Tự chủ có cái giá của nó: mèo con nhận thêm trách nhiệm vận hành (cập nhật, backup, theo dõi). Bài này cho mèo con công cụ để phần dựng máy chủ nhẹ nhất có thể, nhưng không giấu chuyện đánh đổi.

Một VPS mới là một máy Linux trống. Để chạy web bán hàng Next.js, nó cần vài thứ: Nginx (đón request, reverse proxy), Node (chạy Next.js), PostgreSQLRedis (dữ liệu & cache/hàng đợi), và SSL cho HTTPS. Cài tay từng cái khá mệt.

  • Nginx: đón request từ internet, chuyển vào app (reverse proxy).
  • Node: môi trường chạy Next.js.
  • PostgreSQL + Redis: database và cache/hàng đợi (như các bài trước).
  • SSL/HTTPS: bắt buộc - bảo mật và niềm tin.

Mèo con không phải cài tay. Khoá có sẵn một script: chạy một lệnh curl trên VPS trống, script lo cài hết Nginx, Node, PostgreSQL, Redis:

Trên VPS Ubuntu trống - nên mở đọc script trước khi chạy

# tải & xem script trước
curl -fsSL https://meohamhoc.vn/vps.sh -o vps.sh
less vps.sh

# rồi chạy để cài cả máy chủ
bash vps.sh
🖥️ VPS trốngUbuntu, chưa cài gìcurl … | bashMáy chủ sẵn sàng🌐 Nginxreverse proxy⬢ Nodechạy Next.js🗄️ PostgreSQLdatabase⚡ Rediscache & hàng đợi🔒 SSL (certbot)HTTPS tự gia hạn
Một lệnh curl biến VPS Ubuntu trống thành máy chủ đủ Nginx, Node, PostgreSQL, Redis và SSL - không phải cài tay từng cái.

Trang nhận tiền và đăng nhập bắt buộc phải HTTPS. Script dùng certbot (Let\'s Encrypt) cấp chứng chỉ SSL miễn phítự gia hạn - mèo con không phải nhớ ngày hết hạn hay trả phí.

  • HTTPS bảo vệ dữ liệu khách trên đường truyền, và trình duyệt mới tin tưởng.
  • certbot + Let's Encrypt: SSL miễn phí, tự gia hạn định kỳ.
  • Google ưu tiên trang HTTPS - tốt cho SEO.

Script cài kèm một công cụ dòng lệnh (cảm hứng từ hostman) để quản lý site trên VPS: thêm một site và tự xin SSL, xem log, hay gỡ site - không phải sửa cấu hình Nginx bằng tay:

Công cụ đi kèm script - thêm site + tự cấp SSL cho tên miền

# thêm một site, tự cấu hình Nginx và xin SSL
meo site add meoshop.vn --app http://localhost:3000

# xem log, gỡ site khi cần
meo site logs meoshop.vn
meo site remove meoshop.vn

Nói thẳng để mèo con quyết định tỉnh táo. Được: toàn quyền, rẻ khi đông khách, không bị khoá nền tảng. Mất: phải tự cập nhật bảo mật máy chủ, sao lưu database, và theo dõi khi quá tải. Có nền tảng managed làm thay phần này, đổi lại đắt hơn và phụ thuộc nhà cung cấp.

Trung thực

Đây vẫn là khoá DEMO. Một VPS dựng bằng script chạy được cho sản phẩm nhỏ và để học, nhưng khi lớn lên, phần vận hành (backup, giám sát, chịu tải) là chỗ một kỹ sư chuyên nghiệp rất đáng giá - bài cuối khoá nói kỹ chuyện này.

Mèo con cần một VPS để làm bài này. Chọn gói nhỏ nhất là đủ cho sản phẩm demo; nâng cấp sau khi đông khách.

Ưu đãi & minh bạch

Khoá dùng link affiliate VPS - giúp nuôi Mèo 🐟, và bạn không tốn thêm gì. Xem và thuê VPS ở gian hàng Ưu đãi.

Bước tiếp theo

Sản phẩm đang chạy trên VPS qua địa chỉ IP. Giờ cho nó một địa chỉ riêng chuyên nghiệp: Mua tên miền & trỏ về VPS.

Câu hỏi thường gặp

VPS (Virtual Private Server) là một máy chủ Linux của riêng mèo con, luôn bật và có địa chỉ công khai trên internet. Khác với "quản lý hộ", mèo con toàn quyền: cài gì, chạy gì tuỳ ý - đổi lại tự lo vận hành.

Managed tiện lúc đầu nhưng đắt dần khi đông người dùng, và khoá mèo con vào một nhà cung cấp (khó dời đi). VPS riêng rẻ hơn khi lớn và toàn quyền. Khoá chọn VPS đúng tinh thần tự chủ - nhưng nói thẳng: đổi lại mèo con nhận trách nhiệm vận hành.

Chạy một script lạ từ internet là có rủi ro - nó chạy với quyền của mèo con trên máy. Nguyên tắc: chỉ chạy script từ nguồn tin được, và nên MỞ ĐỌC script trước khi chạy. Script của Mèo công khai để mèo con xem được nó làm gì trước khi bấm.

Không. certbot dùng Let's Encrypt cấp chứng chỉ SSL miễn phí và tự gia hạn. HTTPS giờ là bắt buộc: bảo vệ dữ liệu khách, trình duyệt tin tưởng (không báo "không an toàn"), và Google ưu tiên trang HTTPS.

Cập nhật bảo mật cho máy chủ, sao lưu (backup) database đều đặn, và theo dõi để biết khi nào quá tải hay có sự cố. Đây là phần "trách nhiệm vận hành" - đổi lại của sự tự chủ. Bài cuối khoá nói thêm về khi nào nên thuê người lo phần này.

Tick những điều em tự tin làm được. Càng lên cao, em càng hiểu sâu.

Tick những điều em tự tin làm được sau khi học bài này. 0/6

Trả lời vài câu để chắc rằng em đã nắm bài.

Câu 1/3 Điểm: 0

Vì sao khoá deploy lên VPS riêng thay vì dịch vụ quản lý hộ?

Bài tập về nhà

  1. 1

    Thuê một VPS

    Tạo một VPS Ubuntu nhỏ (xem gian hàng Ưu đãi ở dưới), rồi SSH vào.

    ✅ Hoàn thành khi: SSH vào được VPS và chạy được một lệnh (vd ls) trên đó.

  2. 2

    Chạy script cài máy chủ

    Trên VPS, mở đọc script của Mèo rồi chạy một lệnh curl để cài Nginx, Node, PostgreSQL, Redis.

    ✅ Hoàn thành khi: Bốn dịch vụ đều đang chạy (kiểm bằng lệnh trạng thái Claude chỉ cho).

  3. 3

    Deploy app lên VPS

    Đưa app từ GitHub về VPS (pull) và chạy; nối vào PostgreSQL/Redis trên máy chủ qua biến môi trường.

    ✅ Hoàn thành khi: App chạy trên VPS, truy cập qua địa chỉ IP của máy chủ thấy trang sản phẩm.

  4. 4

    Bật HTTPS bằng certbot

    Dùng certbot xin chứng chỉ SSL cho tên miền (hoặc tên miền thử) trỏ về VPS.

    ✅ Hoàn thành khi: Truy cập https:// thấy ổ khoá, trình duyệt không báo "không an toàn".

  5. 5

    Thêm site bằng công cụ dòng lệnh

    Dùng công cụ đi kèm script để thêm một site mới (cấp Nginx + SSL tự động).

    ✅ Hoàn thành khi: Site mới phục vụ được qua tên miền/đường dẫn của nó.

  6. 6

    Checklist vận hành

    Viết checklist 3 việc mèo con phải tự lo khi tự chủ VPS.

    ✅ Hoàn thành khi: Checklist có ít nhất 3 mục, vd: cập nhật bảo mật, backup database, theo dõi tải.