Dari GitHub Pages ke VPS Ubuntu: Memilih Hosting Situs Statis
Perbandingan berbasis kebutuhan NgodingSantai: kemudahan GitHub Pages versus kendali Nginx, sertifikat, log, dan multi-domain pada VPS.
NgodingSantai adalah situs statis sehingga GitHub Pages sebenarnya mampu menyajikan HTML, CSS, JavaScript, dan custom domain. Proyek akhirnya memakai Ubuntu VPS karena server tersebut sudah tersedia dan kebutuhan mencakup virtual host Nginx, kontrol header, log, serta hidup berdampingan dengan aplikasi lain. Artikel ini membandingkan konsekuensi nyata, bukan menentukan satu layanan selalu lebih baik.
Kapan GitHub Pages cukup
Pages cocok ketika output benar-benar statis, proses deployment ingin sesederhana push, dan kontrol server khusus tidak dibutuhkan. HTTPS serta custom domain didukung. Pengelola tidak perlu menambal OS, mengatur firewall, atau memantau Nginx.
Konsekuensinya: aturan server khusus terbatas, tidak ada proses backend bebas, dan struktur path harus diuji sesuai publishing source. Untuk portofolio, dokumentasi, atau blog statis sederhana, batas tersebut sering justru mengurangi pekerjaan operasional.
Kapan VPS masuk akal
VPS memberi kendali terhadap virtual host, redirect, header, cache, log, TLS, permission, dan aplikasi lain. Kendali itu datang bersama tanggung jawab update keamanan, backup konfigurasi, firewall, monitoring, sertifikat, serta recovery. VPS bukan otomatis lebih cepat atau lebih profesional.
| Kebutuhan | GitHub Pages | Ubuntu VPS |
|---|---|---|
| Deploy statis | Push atau Actions | Clone/pull dan konfigurasi server |
| HTTPS | Dikelola layanan | Certbot dan renewal dikelola |
| Header/cache khusus | Terbatas | Dapat diatur di Nginx |
| Log origin | Tidak seperti server sendiri | Access dan error log tersedia |
| Maintenance OS | Tidak dikelola pengguna | Tanggung jawab administrator |
| Multi-aplikasi | Bukan fungsi utama | Virtual host dan reverse proxy tersedia |
Masalah path pada hosting berbasis repository
GitHub Pages project site dapat berada di subpath repository. URL absolut seperti /assets/style.css dapat menunjuk root host, bukan project path. Relative URL atau konfigurasi base yang benar dibutuhkan. Pada VPS dengan domain root, /assets/ menunjuk root domain sehingga modelnya berbeda.
Custom domain dan file CNAME
Pada Pages, custom domain diatur melalui repository dan DNS. File CNAME dapat dipakai sesuai metode publishing. Pada VPS, DNS mengarah ke IP sendiri, sementara Nginx mencocokkan server_name. Mencampur record Pages dan A VPS dapat membuat hasil berubah-ubah.
Alasan proyek memilih VPS
Pipeline VPS yang dipakai
git push origin master
ssh ubuntu@VPS_IP
cd /var/www/ozancicak.biz.id
git status --short
git pull --ff-only origin master
sudo nginx -t
curl -I https://ozancicak.biz.id/
Reload Nginx hanya dilakukan jika konfigurasi berubah. Artikel dan aset statis tidak membutuhkan restart service.
Migrasi tidak berarti menghapus opsi lama
GitHub Pages tetap berguna sebagai pilihan disaster recovery atau staging jika direncanakan dengan domain berbeda dan canonical yang tepat. Namun menerbitkan salinan identik pada dua domain tanpa aturan canonical atau akses yang jelas dapat membingungkan pengguna dan crawler. Produksi NgodingSantai memilih satu canonical.
Checklist memilih
- Pilih Pages bila tujuan utama adalah statis sederhana dengan beban operasi minimum.
- Pilih VPS bila kontrol server memang diperlukan dan ada kemampuan merawatnya.
- Jangan memilih VPS hanya karena menganggap IP sendiri meningkatkan SEO atau AdSense.
- Hitung backup, patch, monitoring, dan waktu pemulihan sebagai biaya.
- Simpan source serta riwayat di Git pada kedua model.
Referensi primer
Bandingkan risiko kegagalan
Pada Pages, kegagalan utama biasanya build, branch publishing, DNS, atau custom domain. Pada VPS, ruang masalah bertambah: permission, service, firewall, sertifikat, disk, konfigurasi virtual host, serta update OS. Log tambahan membantu diagnosis, tetapi administrator juga harus mengerti cara membacanya.
Biaya bukan hanya harga bulanan
VPS yang sudah dibayar dapat terlihat gratis untuk situs tambahan, namun waktu maintenance dan risiko mengganggu aplikasi lama tetap biaya. Pages dapat mengurangi operasi, tetapi batas fitur mungkin mendorong layanan eksternal. Keputusan ditinjau kembali bila traffic, kebutuhan backend, atau kemampuan pemeliharaan berubah.
Rencana keluar mencegah lock-in operasional
Karena output berupa file statis dan domain dikelola terpisah, situs dapat dipindahkan lagi. Repository menyimpan source, DNS didokumentasikan, URL canonical stabil, serta Nginx tidak menyimpan konten unik di luar Git. Portabilitas ini sengaja dipertahankan.