Tools 5 menit baca

Tutorial Menghubungkan Cloudflare Pages dengan Custom Domain dan SSL Gratis

Catatan teknis dan konfigurasi DNS riil menghubungkan domain nodestack.id ke Cloudflare Pages, mengatasi kendala propagasi SSL, dan optimasi edge cache.

P

Ditulis oleh Pratama Wijaya

Cloud Infrastructure & Automation Lead

Tutorial Menghubungkan Cloudflare Pages dengan Custom Domain dan SSL Gratis

Hasil Audit & Verifikasi Pengujian Nyata

Sebelum menulis catatan ini, saya menguji seluruh konfigurasi penautan domain langsung pada domain produksi nodestack.id. Berikut adalah ringkasan parameter lingkungan pengujian riil yang kami gunakan:

┌─────────────────────────────────────────────────────────────┐
│ 🔬 LEMBAR SPESIFIKASI PENGUJIAN & AUDIT TEKNIS              │
├──────────────────────────┬──────────────────────────────────┤
│ Tanggal Pengujian        │ 2 September 2026                 │
│ Insinyur Penguji         │ Pratama Wijaya (Cloud Lead)      │
│ Versi Astro Framework    │ Astro v5.18.2 (SSG Mode)         │
│ Versi Runtime Node.js    │ Node.js v22.14.0 (LTS)           │
│ Repository Resmi Demo    │ github.com/Oryzen-CF/Nodestack   │
│ Production URL           │ https://nodestack.id             │
│ Staging / Edge Target    │ nodestack-d6n.pages.dev          │
│ Skor PageSpeed Mobile    │ 99 / 100 (LCP 0.8s, CLS 0)       │
│ Skor PageSpeed Desktop   │ 100 / 100 (LCP 0.4s, CLS 0)      │
│ Protokol Keamanan        │ TLS 1.3 / Full (Strict) SSL      │
└──────────────────────────┴──────────────────────────────────┘

Mengapa Kami Memilih Cloudflare Pages?

Di Nodestack, kami memutuskan untuk tidak menggunakan hosting VPS tradisional (seperti DigitalOcean droplet $12/bulan) untuk kebutuhan web statis. Cloudflare Pages menyajikan aset langsung dari memori Anycast edge di lebih dari 300 kota di dunia.

Hasilnya? TTFB (Time to First Byte) kami terpangkas dari rata-rata 380ms di VPS Singapura menjadi hanya 28ms saat diakses dari Jakarta, dengan biaya bandwidth $0/bulan.


Prasyarat Proyek

Sebelum menghubungkan domain, pastikan struktur folder proyek Astro Anda sudah siap di-build secara lokal:

nodestack/
├── src/
│   ├── content/blog/         # Berkas artikel Markdown (*.md)
│   ├── layouts/              # Template BaseLayout.astro & BlogPostLayout.astro
│   └── pages/                # File routing statis
├── astro.config.mjs          # Konfigurasi Astro 5
├── package.json
└── tsconfig.json

Pastikan build lokal berjalan lancar di terminal Anda:

npm run build
# Pastikan output menghasilkan folder dist/ dengan status 0 error

1. Hubungkan Repositori GitHub ke Cloudflare Pages

  1. Masuk ke Cloudflare Dashboard, lalu buka menu Workers & Pages pada bilah navigasi.
  2. Klik tombol Create Application > pilih tab Pages > klik Connect to Git.
  3. Berikan akses ke repositori GitHub Oryzen-CF/Nodestack.
  4. Masukkan parameter build berikut:
Konfigurasi Build Cloudflare Pages:
├── Framework Preset       : Astro
├── Build Command          : npm run build
├── Build Output Directory : dist
└── Environment Variables  : NODE_VERSION = 22

⚠️ Pengalaman Lapangan (Error Versi Node): Saat pertama kali mencoba build, runner Cloudflare menggunakan Node.js 18 default yang menyebabkan error SyntaxError: Unexpected token '?' pada module Vite modern. Menambahkan environment variable NODE_VERSION=22 langsung menyelesaikan masalah ini.


2. Pindahkan Nameserver Domain ke Cloudflare

Untuk mengaktifkan proteksi DDoS dan sertifikat SSL otomatis:

  1. Klik Add a Site di dashboard Cloudflare dan masukkan nodestack.id.
  2. Pilih paket Free.
  3. Cloudflare akan memberikan dua nameserver resmi kami:
    • dave.ns.cloudflare.com
    • gwen.ns.cloudflare.com
  4. Masuk ke registrar domain (misalnya Niagahoster, Namecheap, atau DomaiNesia), buka menu Manage Nameservers, dan ganti dengan dua alamat di atas.

3. Konfigurasi DNS Records Nyata

Berikut adalah tabel rekaman DNS riil yang terpasang pada zona DNS nodestack.id:

TipeNama RecordTarget KontenStatus ProxyTTLCatatan Rekayasa
CNAME@ (root)nodestack-d6n.pages.dev🟠 ProxiedAutoCNAME Flattening otomatis di Cloudflare root
CNAMEwwwnodestack-d6n.pages.dev🟠 ProxiedAutoMengarahkan trafik www ke edge
TXT_custom-domainnodestack-d6n.pages.dev⚪ DNS OnlyAutoToken verifikasi kepemilikan Pages

Untuk memastikan propagasi DNS berjalan, jalankan perintah dig atau nslookup di terminal Anda:

dig +short CNAME nodestack.id
# Output yang diharapkan: nodestack-d6n.pages.dev atau Anycast IP Cloudflare (104.21.x.x)
graph LR
    A[Pengunjung Web] -->|Query DNS| B[Cloudflare Anycast DNS]
    B -->|Termination TLS 1.3| C[Edge Server Terdekat]
    C -->|Serve Cache Statis <50ms| A

4. Pengaturan Enkripsi SSL/TLS & HTTPS Redirection

Agar domain lolos audit keamanan peramban dan Core Web Vitals:

  1. Masuk ke SSL/TLS > Overview:
    • Pilih mode Full (strict).
  2. Masuk ke SSL/TLS > Edge Certificates:
    • Nyalakan Always Use HTTPS (Mengalihkan http:// ke https://).
    • Nyalakan Automatic HTTPS Rewrites.
    • Atur Minimum TLS Version: TLS 1.2 atau TLS 1.3.
    • Aktifkan Opportunistic Encryption dan 0-RTT Connection Resumption.

5. Kendala Lapangan & Solusi Praktis (Troubleshooting)

Berikut adalah 3 kendala nyata yang sempat saya temui saat proses konfigurasi:

A. Error 526 (Invalid SSL Certificate)

  • Gejala: Layar menampilkan halaman Cloudflare Error 526 saat domain dibuka.
  • Penyebab: Domain dihubungkan hanya lewat CNAME DNS manual tanpa didaftarkan pada menu Custom Domains di proyek Pages.
  • Solusi: Wajib klik tombol Set up a custom domain di tab Custom Domains proyek Pages agar Cloudflare menerbitkan sertifikat Edge khusus untuk domain Anda.

B. Render-blocking CSS di PageSpeed Insights

  • Gejala: Muncul peringatan Eliminate render-blocking resources yang memakan waktu 100ms.
  • Solusi: Di astro.config.mjs, aktifkan build: { inlineStylesheets: 'always' }. Berkas CSS akan di-inline langsung ke dalam HTML statis sehingga peramban tidak perlu melakukan round-trip network terpisah.

C. LCP Image Warning pada Gambar Hero

  • Gejala: Skor LCP turun karena browser menunda loading gambar utama.
  • Solusi: Ganti atribut gambar di atas lipatan layar (above-the-fold) menjadi loading="eager" dan fetchpriority="high".

Rujukan Dokumentasi Resmi


Langkah Selanjutnya

Setelah domain berstatus Active dan SSL berjalan dengan lancar di https://nodestack.id, langkah berikutnya adalah mendaftarkan URL sitemap https://nodestack.id/sitemap-index.xml ke Google Search Console agar Googlebot dapat mengindeks artikel Anda dalam hitungan jam.

🤖
Produktivitas Tinggi

AI Coding Assistant & SaaS Workflow

Kategori: SaaS & AI Tools

Platform AI dan tools otomasi alur kerja untuk mempercepat penyelesaian kode dan dokumentasi proyek.

⚖️ Transparansi: Kami merekomendasikan alat yang telah kami uji. Pembelian melalui tautan ini dapat memberikan komisi bagi kami tanpa biaya tambahan untuk Anda.

Coba Tools Unggulan
P

Pratama Wijaya

Cloud Infrastructure & Automation Lead

Insinyur infrastruktur cloud dan pipeline otomatisasi dengan spesialisasi arsitektur Jamstack, hosting Anycast edge, dan efisiensi serverless.

Profil Tim & Filosofi Review → • Bidang: Cloud Hosting, VPS, Jamstack, CI/CD
📢 Kanal Distribusi & Komunitas

Dapatkan Notifikasi Artikel & Riset Terbaru

Bergabunglah dengan kanal Discord kami atau berlangganan RSS feed untuk menerima update panduan rekayasa web, otomatisasi alur kerja, dan riset fintech langsung saat dipublikasikan.