Journey
MilestonedeployCI/CDCloudflare

Rilis situsnya: Git → CI/CD → Pages

Domainnya kini menunjuk ke edge Cloudflare — ke ketiadaan. Langkah ini soal apa yang ada di balik pintu depan itu, dan keputusan di bawahnya.

Sewa server, atau cukup push file?

Langkah yang jelas adalah menyewa komputer — VPS Hostinger — memasang nginx, mengurus sertifikat, dan melayani situs dari sana. Kami punya satu yang siap. Kami tak memakainya untuk situs. Ini alasannya.

Server berguna saat ada kode yang harus dijalankan di tiap permintaan — database yang ditanya, sesi yang dicek, halaman yang dirakit. Situs kami tak punya itu. Ia di-prerender: tiap halaman dibangun sebelumnya jadi file HTML, CSS, dan JavaScript polos. Tak ada yang perlu dijalankan — hanya file untuk dibagikan.

VPS Hostinger + nginx

  • Komputer yang Anda sewa, menyala 24/7
  • Anda yang patch OS, perpanjang sertifikat, jaga uptime
  • Anda yang skala sendiri saat trafik melonjak
  • Pas saat Anda menjalankan kode sisi-server

Cloudflare Pages

  • Push file; ia mendarat di edge global
  • HTTPS, penskalaan, DDoS — diurus untuk Anda
  • Dilayani dari kota terdekat tiap pengunjung
  • Pas untuk situs statis yang di-prerender

Situs satu-halaman yang dirender statis tak butuh SSR — tak ada yang merendernya ulang di tiap permintaan — jadi satu mesin nganggur 24/7 untuk membagikan file statis itu alat yang salah, dan CDN melayani file yang sama lebih cepat. Maka situsnya pindah ke Cloudflare Pages. VPS-nya tak mubazir — ia dicadangkan untuk api.pangaea.id kelak, tempat kode server sungguhan akan tinggal.

Bagaimana sebuah perubahan tayang

Kami tak pernah mengunggah file dengan tangan. Semuanya satu push:

git push→ mainpull requestbuild + typecheck✓ dicek — tak di-deployGitHub Actionsnpm citypecheckbuild → dist/wrangler pages deploy dist/Cloudflare Pagesdisebar ke edge globaltayang di pangaea.iddeploy buruk? roll back ke mana pun sebelumnya — 1 klik
Hanya merge ke main yang menjalankan deploy — pull request menjalankan build + typecheck yang sama sebagai gate, tapi tak pernah merilis.
  • Push ke main — itu pemicunya.
  • GitHub Actions berjalan — memasang dependency, menjalankan typecheck, dan mem-build situs statis ke folder dist/ (sama dengan npm run build yang kami jalankan lokal).
  • wrangler mengunggah dist/ ke Cloudflare Pages, yang menyebarkannya ke tiap edge.
  • Beberapa menit kemudian tayang sedunia. Deploy buruk? Roll back ke mana pun sebelumnya dengan satu klik — Pages menyimpan riwayatnya.

Pull request mendapat gerbang build + typecheck tapi tak pernah men-deploy — hanya merge ke main yang merilis. (Apa lagi yang dilakukan tiap push — menekan bel mesin pencari — dapat entrinya sendiri.)

Rangkaian lengkapnya — token API, dua secret, membuat project Pages, jebakan "project not found" — ada di panduan pendamping CI/CD: GitHub Actions → Cloudflare Pages →.

Tayang

Domain diarahkan, situs dirilis — https://pangaea.id jadi nyata. Apa yang sebenarnya terjadi di setengah detik antara mengetik itu dan melihat halamannya adalah cerita mungil tersendiri: Apa yang terjadi saat Anda mengetik URL →.

Sources

  1. Cloudflare Pages — hosting statis dan full-stack
  2. cloudflare/wrangler-action — deploy dari GitHub Actions