Phần 3 Deploy Không Cần Biết Code | Dành Cho Các Bánh Bèo, Trai Thẳng Và Tất Cả Ai Chưa Từng Gõ Terminal

“Em chỉ muốn viết blog, không phải học DevOps. Vậy thì đọc bài này là đúng kèo!”

· 3 phút đọc
Phần 3  Deploy Không Cần Biết Code | Dành Cho Các Bánh Bèo, Trai Thẳng Và Tất Cả Ai Chưa Từng Gõ Terminal
Photo by Arnel Hasanovic / Unsplash
  1. 🎠 Tạo database MySQL trên Railway
  2. 🎭 Deploy Ghost bằng Render (từ GitHub)
  3. 🌐 Gắn domain Mắt Bão, bật Cloudflare proxy
  4. ✉️ Cài email (Mailgun/SMTP)
  5. 💰 Tích hợp Stripe để thu tiền
  6. 🧙‍♂️ Đưa web lên Google Search

💎 BƯỚC 1: TẠO DATABASE MYSQL TRÊN RAILWAY

Railway = nền tảng "dễ như ăn bánh", tạo DB MySQL chỉ 3 click.

🔌 B1.1 – Đăng ký Railway

Truy cập: https://railway.app
→ Sign in bằng GitHub

🏗 B1.2 – Tạo MySQL mới:

  1. Click “New Project”
  2. Chọn “Provision MySQL”
  3. Railway sẽ tự tạo DB → chờ 10 giây là xong

🔐 B1.3 – Lấy connection string:

  • Vào tab Connect
  • Chọn “MySQL”
  • Copy dòng giống vầy:
mysql://user:password@containers-us-west-110.railway.app:12345/dbname
NOTE: Dán cái này vô file config.production.json sau, siêu quan trọng luôn.

🧑‍🎤 BƯỚC 2: DEPLOY GHOST LÊN RENDER (TỪ GITHUB, KHÔNG GÕ CODE)

💌 B2.1 – Fork repo Ghost trên GitHub

Vào đây:
👉 https://github.com/TryGhost/Ghost
→ Bấm nút Fork → để có bản riêng

🌈 B2.2 – Tạo tài khoản Render

Render là nền tảng kiểu Heroku, cực dễ dùng
👉 https://render.com
→ Đăng ký → Kết nối với GitHub của bạn

🚀 B2.3 – Deploy Ghost

  1. Vào Render dashboard
  2. Click "New Web Service"
  3. Chọn repo Ghost vừa fork
  4. Chọn:
    • Environment: Node
    • Build Command: yarn setup
    • Start Command: yarn start
    • Root directory: .

📁 B2.4 – Tạo biến môi trường (ENV)

Bạn sẽ cần add các biến sau trong tab Environment:

KEY VALUE
database__client mysql
database__connection__host containers-us-west-110.railway.app
database__connection__user user
database__connection__password password
database__connection__database dbname
url https://yourdomain.com

→ Các giá trị lấy từ Railway (Bước 1)


👑 BƯỚC 3: MUA DOMAIN MẮT BÃO + GẮN CLOUDFLARE

🌟 B3.1 – Mua domain tại Mắt Bão

Vào: https://matbao.net
Tìm 1 domain kiểu emyeuanh.com hoặc blogcuciu.vn
→ Mua, thanh toán xong vào Quản lý DNS

☁️ B3.2 – Đăng ký Cloudflare

Vào: https://cloudflare.com
→ Thêm website mới → Nhập domain của bạn
→ Cloudflare cho bạn 2 DNS như:

lisa.ns.cloudflare.com  
jin.ns.cloudflare.com

→ Quay lại Mắt Bão, thay name server bằng 2 cái trên

🧭 B3.3 – Trỏ domain về Render

Vào Cloudflare → DNS → Add A record:

Type Name Value
A @ IP của Render App (lấy trong tab Settings > Public IP)
A www Giống trên

→ Proxy bật ON (biểu tượng đám mây vàng)


✨ BƯỚC 4: SETUP EMAIL – GỬI MAIL XÁC NHẬN VÀO HỘP THƯ KHÁCH

Ghost dùng Mail để:

  • Gửi link xác minh khi user đăng ký
  • Gửi newsletter cho subscriber
  • Gửi hoá đơn (nếu tích hợp Stripe)

💌 Option 1 – Dễ: Dùng Gmail SMTP

Add vào Environment:

KEY VALUE
mail__transport SMTP
mail__options__service Gmail
mail__options__auth__user youremail@gmail.com
mail__options__auth__pass app_password (không phải pass Gmail!)
App Password: vào Google → My Account → Security → App Password → tạo pass riêng

🥷 Option 2 – Xịn: Mailgun

  • Vào: https://mailgun.com
  • Tạo tài khoản free → Thêm domain → Xác thực DNS
  • Dùng API key để cấu hình config.production.json hoặc Render ENV.

💰 BƯỚC 5: TÍCH HỢP STRIPE ĐỂ THU TIỀN

  1. Vào: https://dashboard.stripe.com
  2. Tạo account → Add bank info (nếu muốn nhận tiền)
  3. Lấy Publishable key & Secret key
  4. Vào Ghost Admin:
    LabsMembers → Dán key
Khi khách đăng ký premium, Ghost tự kết nối Stripe để charge.

Không có SEO = viết 100 bài blog cũng chỉ mình đọc.

🕵️‍♀️ B6.1 – Tạo Google Search Console

Vào: https://search.google.com/search-console
→ Add domain → Xác minh bằng DNS (Cloudflare)

🔁 B6.2 – Submit Sitemap

Ghost auto tạo sitemap tại:
https://yourdomain.com/sitemap.xml

→ Vào GSC → Add sitemap → Dán link

🌱 B6.3 – Chờ index

Google sẽ quét sau vài tiếng → vài ngày.

Muốn nhanh:
→ Dùng "Inspect URL" → Bấm “Request indexing”


💅 BƯỚC 7: TÙY BIẾN CHO ĐẸP

  • Dùng Ghost Marketplace để tải theme xịn: https://ghost.org/themes
  • Hoặc chỉnh sửa theme trong repo GitHub (Ghost hỗ trợ Handlebars)

🧚 TỔNG KẾT – BẠN VỪA TẠO GÌ?

  • [x] Có Ghost CMS chạy trên Render
  • [x] MySQL được host free trên Railway
  • [x] Domain riêng đẹp như mơ từ Mắt Bão
  • [x] Có email gửi thông báo & Stripe thu tiền
  • [x] Web xuất hiện trên Google Search

🤟 BONUS: MẪU BLOG CHO EM GÁI MỚI VÀO NGHỀ

  • blogfoodie.com → chia sẻ món ăn
  • diarycuabeo.com → nhật ký thả thính
  • sennghichcho.com → blog về thú cưng
  • helloemoi.dev → viết lách tech life cho Gen Z

Ghi nhớ lời tiên tri:

“Không biết code không phải là lý do để không có web xịn.”
– Một người từng code sai port