Pasang domain .my.id baru sampai hidup di Cloudflare + Caddy
Domain murah bukan bagian yang sulit. Yang bikin repot justru tiga lapis yang bergerak dengan kecepatan berbeda: panel registrar, registry PANDI, dan Cloudflare.
1. Nameserver: cuma dua yang perlu diisi
Cloudflare memberi tepat dua nameserver. Di panel registrar (Indowebsite) ada empat kolom NS, tapi NS 3 dan NS 4 wajib dikosongkan. Semua NS yang tersimpan ikut dipublikasikan ke registry; kalau NS3/NS4 masih menunjuk ke DNS lama, resolusi jadi naik-turun karena separuh resolver bertanya ke server yang recordnya kosong.
2. Panel sudah "tersimpan" bukan berarti registry sudah tahu
Ini bagian yang paling menipu. Setelah menyimpan NS baru, keadaan yang muncul justru SERVFAIL, bukan NXDOMAIN:
# apa yang MASIH dipublikasikan registry
dig @b.dns.id anmaru.my.id NS +norec # AUTHORITY: dns1-4.indowebsite.net <-- belum berubah
dig +short NS anmaru.my.id @1.1.1.1 # kosong / SERVFAIL
dig anmaru.my.id @dns1.indowebsite.net # REFUSED
Artinya DNS lama sudah melepas zona, tapi registry belum dipindah, dan kondisi ini disebut lame delegation. Tidak ada yang bisa diperbaiki dari sisi kita; ini jeda dorongan dari reseller ke PANDI. Di kasus ini perlu < 1 jam. Kalau lewat 24 jam, hubungi support reseller dan sebutkan persis: "registry masih mendelegasikan ke dns1 sampai dns4.indowebsite.net".
Sinyal yang bisa dipercaya: status zona Cloudflare. Ia baru berubah jadiactivesetelah delegasi terlihat. Zonapendingtetap menjawab di nameserver Cloudflare, jadi "NS Cloudflare jawab" bukan bukti domain sudah hidup.
3. Record + Caddy
# Cloudflare: A apex -> IP VPS, proxied
POST /client/v4/zones/$ZONE/dns_records
{"type":"A","name":"anmaru.my.id","content":"94.237.79.14","proxied":true,"ttl":1}
# Caddyfile (origin hanya :80, auto_https off)
http://anmaru.my.id, http://www.anmaru.my.id {
root * /home/ubuntu/www-anmaru
file_server
}
Pola di server ini: Cloudflare yang menangani TLS, jadi setiap situs ditulis dengan prefiks http:// supaya Caddy mengikat port 80 saja.
4. Jebakan yang bikin 20 menit hilang: HTTP 521
Percobaan pertama balas 521 dari Cloudflare, padahal lokal sudah 200:
curl -H "Host: anmaru.my.id" http://127.0.0.1/ -o /dev/null -w '%{http_code}\n' # 200
curl -s https://anmaru.my.id -o /dev/null -w '%{http_code}\n' # 521
Penyebabnya: zona Cloudflare baru default ke SSL mode full, artinya Cloudflare menghubungi origin di port 443, sedangkan Caddy di sini hanya mendengar di :80. Zona lama tidak kena karena mode-nya flexible. Obatnya satu panggilan API:
PATCH /client/v4/zones/$NEW_ZONE/settings/ssl {"value":"flexible"}
Setelah itu 200 di apex maupun www. Pelajaran yang layak diingat: untuk origin HTTP-only, setiap zona Cloudflare baru harus disamakan SSL mode-nya sebelum mencari-cari masalah firewall atau tunnel.
Ringkasnya
- Dua NS saja, sisanya dikosongkan.
SERVFAILsetelah ganti NS = jeda registry, bukan kesalahan kita.- Status
activedi Cloudflare adalah satu-satunya sinyal delegasi benar-benar masuk. - Set SSL mode
flexibleuntuk origin yang hanya punya port 80.