Lewati ke konten utama

Cloudflare Tunnels

Ekspos situs lokal ke internet menggunakan Cloudflare Tunnels (cloudflared).

Kasus Penggunaan

  • Bagikan progress pekerjaan dengan klien
  • Uji webhook dari layanan eksternal (Midtrans, Stripe, dll.)
  • Uji di perangkat mobile di luar jaringanmu
  • Gunakan domain kustom sendiri dengan konfigurasi DNS otomatis

Pengaturan

Opsi 1: Quick Tunnel (Tanpa Akun)

  1. Unduh cloudflared dari halaman Software
  2. Buka pengaturan situs
  3. Klik Share via Tunnel

FluxPanel memulai tunnel Cloudflare dan memberimu URL publik sementara seperti:

https://random-name.trycloudflare.com

Catatan: Quick tunnel bekerja tanpa akun Cloudflare. URL bersifat sementara dan berubah setiap kali kamu memulai tunnel.

Opsi 2: Named Tunnel dengan Domain Kustom (Direkomendasikan)

Untuk penggunaan production atau URL persisten, konfigurasikan named tunnel dengan akun Cloudflare-mu:

1. Buat Cloudflare API Token

  1. Kunjungi Cloudflare Dashboard
  2. Klik Create Token
  3. Pilih Create Custom Token

Konfigurasi permission berikut:

Account Permissions:
PermissionLevelRequiredTujuan
Account → Cloudflare TunnelEdit✅ YaMembuat, memodifikasi, dan menghapus tunnel
Zone Permissions:
PermissionLevelRequiredTujuan
Zone → DNSEdit✅ YaMembuat CNAME record otomatis untuk subdomain
Zone → ZoneRead✅ YaMelihat daftar domain di akun kamu

Langkah-langkah konfigurasi:

  1. Account Permissions section:

    • Klik Add di bawah "Account Permissions"
    • Pilih Cloudflare TunnelEdit
  2. Zone Permissions section:

    • Klik Add di bawah "Zone Permissions"
    • Pilih DNSEdit
    • Klik Add lagi
    • Pilih ZoneRead
  3. Account Resources:

    • Pilih IncludeAll accounts
    • Atau pilih akun spesifik jika kamu punya beberapa akun
  4. Zone Resources:

    • Pilih IncludeAll zones
    • Atau pilih domain spesifik jika hanya ingin menggunakan domain tertentu
  5. Klik Continue to summary

  6. Masukkan nama token (contoh: "FluxPanel Tunnels")

  7. Klik Create Token

  8. Salin token kamu (tidak akan ditampilkan lagi!)

Alternatif: Gunakan Template

Kamu juga bisa menggunakan template Edit Cloudflare Zero Trust yang sudah include semua permission yang diperlukan secara otomatis.

Simpan Token dengan Aman
  • Jangan bagikan API token ke publik
  • Simpan hanya di FluxPanel dengan aman
  • Generate ulang token jika terkompromi

2. Konfigurasi Token di FluxPanel

  1. Di FluxPanel, buka SettingsCloudflare
  2. Paste API token kamu di kolom token

Opsi format:

  • User Token (default): Cukup paste token-nya

    your-token-here
  • Account-Owned Token (diawali cfat_): Sertakan Account ID

    cfat_your-token-here|your-account-id

    Untuk menemukan Account ID kamu:

    • Buka Cloudflare Dashboard
    • Lihat URL: dash.cloudflare.com/{account-id}/
    • Atau cek Account HomeAccount ID di sidebar kanan
  1. Klik Verify Token

Jika berhasil, kamu akan melihat nama akun dan ID-nya. Jika gagal, cek pesan error untuk permission yang kurang.

3. Buat Named Tunnel

  1. Buka halaman Cloudflare di FluxPanel
  2. Klik Create Tunnel
  3. Masukkan nama tunnel (contoh: my-dev-server)
  4. Tunnel akan dibuat di akun Cloudflare-mu

4. Konfigurasi Routes

  1. Pilih tunnel-mu
  2. Klik Add Route
  3. Masukkan:
    • Public Hostname: myapp.domainmu.com (harus menggunakan domain yang ada di akun Cloudflare-mu)
    • Service: Pilih situs lokal-mu
  4. Klik Save

FluxPanel secara otomatis:

  • Membuat DNS CNAME record yang mengarah ke tunnel-mu
  • Mengupdate nginx untuk menerima request ke hostname publik-mu
  • Mengkonfigurasi SSL/TLS melalui Cloudflare

5. Jalankan Tunnel

Klik Run Tunnel untuk memulai koneksi. Situs-mu sekarang dapat diakses di domain kustom-mu.

Mengelola Tunnels

Lihat Tunnel Aktif

Semua named tunnel di akun Cloudflare-mu muncul di halaman Cloudflare.

Hentikan Tunnel

Klik Stop Tunnel untuk menutup koneksi. URL publik langsung tidak dapat diakses (DNS record tetap ada).

Hapus Tunnel

Untuk menghapus tunnel secara permanen:

  1. Hentikan tunnel terlebih dahulu
  2. Klik Delete Tunnel
  3. DNS record dan konfigurasi nginx tetap ada (hapus manual jika diperlukan)

Referensi Permission API Token

Permission yang Diperlukan

API token Cloudflare kamu harus memiliki permission berikut:

KategoriPath PermissionLevel AksesAlasan Dibutuhkan
AccountCloudflare TunnelEditMembuat, menjalankan, menghentikan, dan menghapus tunnel di akun kamu
ZoneDNSEditMembuat dan mengupdate CNAME record secara otomatis untuk subdomain kamu
ZoneZoneReadMelihat domain yang tersedia untuk konfigurasi tunnel routes

Perbandingan Tipe Token

FiturUser TokenAccount-Owned Token (cfat_)
PembuatanUser Profile → API TokensAccount Settings → API Tokens
ScopeAkses level userKhusus account tertentu
Account IDOpsional (auto-detect)Wajib (harus disebutkan)
PenggunaanPaste token langsungFormat: `token
Terbaik UntukPenggunaan personal, banyak akunPenggunaan tim, satu akun

Error Permission Umum

Error: "Invalid token"

  • Token mungkin expired atau revoked
  • Cek apakah token masih aktif di dashboard Cloudflare
  • Generate ulang token jika perlu

Error: "Cannot determine Account ID"

  • Untuk account-owned token: Sertakan Account ID dalam format token|account-id
  • Untuk user token: Pastikan token punya akses ke minimal satu akun

Error: "Token does not have Zone:Read permission"

  • Tambahkan permission Zone → Zone → Read ke token kamu
  • Atau gunakan template Edit Cloudflare Zero Trust

Error: "Failed to create DNS record"

  • Tambahkan permission Zone → DNS → Edit ke token kamu
  • Verifikasi domain ada di akun Cloudflare kamu
  • Cek Zone Resources sudah include domain kamu

Troubleshooting

Error "Account ID required"

Token milik akun (awalan cfat_) mengharuskan kamu memberikan Cloudflare Account ID. Temukan di URL dashboard Cloudflare: dash.cloudflare.com/{account-id}/

Error "No zone found for hostname"

Pastikan:

  1. Domain sudah ditambahkan ke akun Cloudflare-mu
  2. API token-mu memiliki permission Zone:Read
  3. Kamu menggunakan domain milik sendiri (bukan .trycloudflare.com)

DNS record tidak dibuat

Cek bahwa API token-mu memiliki permission Zone → DNS → Edit. Kamu dapat membuat CNAME record secara manual di dashboard Cloudflare:

  • Type: CNAME
  • Name: subdomain-mu
  • Target: {tunnel-id}.cfargotunnel.com
  • Proxied: Yes