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ùng và không bị khoá vào nhà cung cấp nào.
Trung thực
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), PostgreSQL và Redis (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 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í và 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
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
Bước tiếp theo
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.
Tick những điều em tự tin làm được. Càng lên cao, em càng hiểu sâu.
Trả lời vài câu để chắc rằng em đã nắm bài.
Vì sao khoá deploy lên VPS riêng thay vì dịch vụ quản lý hộ?
- 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
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
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
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
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
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.