---
title: "Cara Setup Custom Domain di Helipod: dari DNS sampai SSL Otomatis"
url: "https://helipod.io/blog/custom-domain-di-helipod"
date: "2026-05-10"
updated: "2026-05-10"
author: "Tim Helipod"
tags: ["custom domain", "dns", "ssl", "helipod", "networking"]
excerpt: "Panduan lengkap menghubungkan domain kamu ke aplikasi di Helipod, konfigurasi DNS, SSL otomatis, multiple domain, dan troubleshooting propagasi DNS."
---

# Cara Setup Custom Domain di Helipod: dari DNS sampai SSL Otomatis

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 domain
- `app.yourdomain.com`: subdomain
- `api.yourdomain.com`: untuk API
- `www.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:**
1. Login → pilih domain
2. DNS → Add record
3. Type: CNAME, Name: `app`, Target: `cname.helipod.app`
4. **Proxy status: DNS only** (abu-abu, bukan oranye): penting agar SSL Helipod bisa bekerja

**Niagahoster / Domainesia:**
1. cPanel → Zone Editor atau DNS Zone
2. Tambah CNAME record sesuai instruksi

**Google Domains / Squarespace Domains:**
1. DNS → Custom records
2. Tambah CNAME record

**Namecheap:**
1. Domain List → Manage → Advanced DNS
2. 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:

```bash
# 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:
1. Mendeteksi bahwa domain sudah pointing ke Helipod
2. Request SSL certificate dari Let's Encrypt
3. Mengaktifkan HTTPS untuk domain tersebut
4. 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.com` dan `yourdomain.com` keduanya 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:**
```env
APP_URL=https://yourdomain.com
```

**Next.js dengan NextAuth:**
```env
NEXTAUTH_URL=https://yourdomain.com
```

**Django:**
```env
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.com` harus 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=false` di 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](/blog/monitoring-metrics-helipod).

Punya pertanyaan? Hubungi kami di [support@helipod.io](mailto:support@helipod.io) atau bergabung ke komunitas di [hangar.helipod.io](https://hangar.helipod.io).
