Setiap service yang kamu deploy di Helipod otomatis mendapat subdomain gratis dengan format nama-project.helipod.app — lengkap dengan SSL/HTTPS. Tapi untuk aplikasi production yang serius, kamu tentu ingin pakai domain sendiri: app.yourdomain.com, api.yourdomain.com, atau bahkan yourdomain.com langsung.
Helipod mendukung custom domain dengan SSL otomatis — tidak perlu setup Certbot, tidak perlu renewal manual, tidak perlu konfigurasi nginx untuk SSL termination.
Cara Kerja Custom Domain di Helipod
Di balik layar, traffic ke custom domain-mu diproses seperti ini:
Internet → DNS → Helipod (Traefik) → Container aplikasimu
HTTPS 443 → SSL termination → HTTP ke container
Traefik (reverse proxy yang dipakai Helipod) menangani SSL termination secara otomatis menggunakan Let's Encrypt. Kamu tidak perlu tahu detail teknisnya — cukup arahkan DNS dan Helipod mengurus sisanya.
Seperti yang terlihat di tab Settings:
Internet :443 → Traefik → :3000 (aplikasimu)
Langkah 1: Buka Settings → Networking & Domains
Di dashboard Helipod, klik service yang ingin diberi custom domain. Buka tab Settings, scroll ke bagian Networking & Domains.
Kamu akan melihat:
- Internal cluster DNS — untuk komunikasi antar pod (internal only)
- Magic domain —
nama-project.helipod.app(sudah aktif dari awal) - + Custom domain — tombol untuk menambahkan domain kamu
Langkah 2: Tambahkan Domain
Klik + Custom domain, masukkan domain yang ingin kamu gunakan:
yourdomain.com— root domainapp.yourdomain.com— subdomainapi.yourdomain.com— untuk APIwww.yourdomain.com— WWW subdomain
Setelah menambahkan, Helipod akan menampilkan instruksi DNS yang perlu kamu konfigurasi.
Langkah 3: Konfigurasi DNS
Untuk Subdomain (app.yourdomain.com)
Tambahkan CNAME record di DNS provider kamu:
| Type | Name | Value | TTL |
|---|---|---|---|
| CNAME | app | nama-project.helipod.app |
3600 |
Untuk Root Domain (yourdomain.com)
Root domain tidak bisa menggunakan CNAME (limitasi DNS standard). Gunakan A record yang mengarah ke IP Helipod, atau jika DNS provider kamu mendukung ALIAS/ANAME record, gunakan CNAME-like record untuk root domain.
| Type | Name | Value | TTL |
|---|---|---|---|
| A | @ | [IP yang diberikan Helipod] |
3600 |
Atau jika provider DNS mendukung ALIAS/ANAME:
| Type | Name | Value |
|---|---|---|
| ALIAS | @ | cname.helipod.app |
Tips: Gunakan subdomain (
app.yourdomain.com) bila memungkinkan — lebih mudah dikonfigurasi dan lebih fleksibel untuk future migration.
Cara Konfigurasi di Provider DNS Populer
Cloudflare:
- Login → pilih domain
- DNS → Add record
- Type: CNAME, Name:
app, Target:cname.helipod.app - Proxy status: DNS only (abu-abu, bukan oranye) — penting agar SSL Helipod bisa bekerja
Niagahoster / Domainesia:
- cPanel → Zone Editor atau DNS Zone
- Tambah CNAME record sesuai instruksi
Google Domains / Squarespace Domains:
- DNS → Custom records
- Tambah CNAME record
Namecheap:
- Domain List → Manage → Advanced DNS
- Add New Record → CNAME
Langkah 4: Tunggu Propagasi DNS
DNS propagation bisa memakan waktu 5 menit sampai 48 jam, tergantung TTL record lama dan DNS provider. Umumnya untuk record baru, 5–30 menit sudah cukup.
Cek status propagasi:
# Di terminal lokal
nslookup app.yourdomain.com
dig app.yourdomain.com CNAME
# Atau gunakan website
# dnschecker.org
# whatsmydns.net
Helipod akan otomatis mendeteksi saat DNS sudah propagated dan mulai proses SSL certificate dari Let's Encrypt.
Langkah 5: SSL Otomatis
Setelah DNS propagated, Helipod secara otomatis:
- Mendeteksi bahwa domain sudah pointing ke Helipod
- Request SSL certificate dari Let's Encrypt
- Mengaktifkan HTTPS untuk domain tersebut
- Mengatur auto-renewal sebelum certificate expire
Proses ini biasanya selesai dalam 2–5 menit setelah DNS propagated. Kamu tidak perlu melakukan apapun.
Setelah aktif, aplikasimu bisa diakses di:
https://app.yourdomain.com✅http://app.yourdomain.com→ otomatis redirect ke HTTPS
Multiple Domain untuk Satu Service
Kamu bisa menambahkan lebih dari satu domain ke satu service. Berguna untuk:
www.yourdomain.comdanyourdomain.comkeduanya pointing ke app yang sama- Domain lama dan domain baru selama masa migrasi
- Domain regional (
id.yourdomain.com,sg.yourdomain.com)
Tambahkan satu per satu melalui tombol + Custom domain.
Harga Custom Domain
Custom domain tersedia di semua plan berbayar:
| Plan | Custom Domain |
|---|---|
| Free | ❌ Tidak tersedia |
| Mekanik | ✅ +Rp 300/hari per domain |
| Pilot | ✅ Gratis (sudah termasuk plan) |
| Enterprise | ✅ Gratis, unlimited |
Untuk plan Mekanik dengan satu custom domain, tambahan biaya Rp 300/hari = ~Rp 9.000/bulan — sangat terjangkau.
Update NEXTAUTH_URL / APP_URL Setelah Pasang Domain
Setelah custom domain aktif, jangan lupa update environment variables yang mengandung URL aplikasi:
Laravel:
APP_URL=https://yourdomain.com
Next.js dengan NextAuth:
NEXTAUTH_URL=https://yourdomain.com
Django:
ALLOWED_HOSTS=yourdomain.com,www.yourdomain.com
CSRF_TRUSTED_ORIGINS=https://yourdomain.com,https://www.yourdomain.com
Setelah update, klik Deploy untuk redeploy dengan konfigurasi baru.
Cloudflare sebagai DNS Provider
Jika menggunakan Cloudflare, ada satu hal penting: matikan proxy (set ke DNS only, ikon abu-abu).
Jika proxy Cloudflare aktif (ikon oranye), SSL certificate Let's Encrypt tidak bisa di-issue karena domain akan pointing ke IP Cloudflare, bukan IP Helipod.
Setelah domain aktif di Helipod dengan SSL berjalan, kamu boleh aktifkan kembali proxy Cloudflare jika mau — tapi pastikan SSL mode di Cloudflare diset ke "Full" atau "Full (Strict)".
Troubleshooting
SSL certificate tidak muncul
- Pastikan DNS sudah propagated:
dig app.yourdomain.comharus return CNAME ke*.helipod.app - Pastikan tidak ada proxy di Cloudflare (harus DNS only)
- Tunggu beberapa menit lagi — Let's Encrypt rate limit bisa memperlambat proses
- Cek apakah ada conflicting DNS record (A record yang masih pointing ke IP lama)
"Domain not found" atau "Site can't be reached"
- DNS belum propagated — cek dengan
nslookup app.yourdomain.com - CNAME record salah — pastikan value-nya persis
nama-project.helipod.app
Certificate error di browser ("NET::ERR_CERT_COMMON_NAME_INVALID")
- Certificate belum selesai di-issue — tunggu 5–10 menit lagi
- Domain tidak match dengan certificate — pastikan domain yang didaftarkan di Helipod sama persis dengan yang diakses
HTTP redirect loop
- Terjadi jika app dan Cloudflare sama-sama melakukan redirect HTTP→HTTPS
- Solusi: set
FORCE_HTTPS=falsedi app, biarkan Helipod/Cloudflare yang handle redirect
Kesimpulan
Setup custom domain di Helipod sangat mudah — arahkan DNS ke Helipod, SSL otomatis aktif. Tidak perlu install Certbot, tidak perlu renew certificate manual, tidak perlu konfigurasi nginx untuk SSL.
Ingin monitoring domain dan performa aplikasi? Baca Monitor CPU, Memory, dan Logs di Helipod.
Punya pertanyaan? Hubungi kami di support@helipod.id atau bergabung ke komunitas di hangar.helipod.io.