Cloudflare Tunnel (sebelumnya dikenal sebagai Argo Tunnel) memungkinkan kamu mengakses server lokal dari internet secara aman tanpa membuka port di router. Ini solusi ideal buat developer rumahan, self-hosted apps, atau yang ingin mempublikasikan website dari PC pribadi.
Pada artikel ini, kita akan bahas:
- Persiapan awal
- Membuat Tunnel pertama
- Menambahkan domain/subdomain ke Tunnel
- Menambahkan website tambahan (multi-site)
1. ๐ฏ Persiapan Awal
Pastikan kamu sudah:
- Punya domain yang aktif di Cloudflare (gunakan DNS Cloudflare).
- Menginstal cloudflared di server lokal (Ubuntu/Linux).
- Server kamu sudah ada web server seperti NGINX/Apache.
- Login akun Cloudflare lewat terminal.
Cara install cloudflared:
wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
sudo dpkg -i cloudflared-linux-amd64.deb
2. ๐ Login ke Akun Cloudflare
cloudflared tunnel login
Ini akan membuka browser, kamu tinggal konfirmasi akun Cloudflare kamu. Sertifikat akan tersimpan di:
~/.cloudflared/cert.pem
3. ๐ ๏ธ Membuat Tunnel Pertama
cloudflared tunnel create namatunnel
Contoh:
cloudflared tunnel create rumahserver
Setelah itu kamu akan mendapatkan Tunnel ID dan file credentials.
4. ๐งพ Menyusun File Konfigurasi
Buat file config.yml di folder ~/.cloudflared/.
nano ~/.cloudflared/config.yml
Isi contoh untuk satu domain:
tunnel: rumahserver
credentials-file: /home/namapengguna/.cloudflared/xxxxxxxxx.json
ingress:
- hostname: www.domainkamu.com
service: http://localhost:80
- service: http_status:404
Ganti
namapengguna,domainkamu.com, dan port sesuai dengan setup kamu.
5. ๐งฉ Menambahkan Domain/Subdomain ke Tunnel
Untuk mengarahkan subdomain ke tunnel:
cloudflared tunnel route dns rumahserver www.domainkamu.com
Cloudflare akan membuat CNAME yang menunjuk ke tunnel kamu.
6. ๐ Menambahkan Website Tambahan ke Tunnel (Multi-Site)
Misal kamu punya dua site:
www.domainkamu.comโlocalhost:80assets.domainkamu.comโlocalhost:81
Update file config.yml seperti ini:
yamlCopyEdittunnel: rumahserver
credentials-file: /home/namapengguna/.cloudflared/xxxxxxxxx.json
ingress:
- hostname: www.domainkamu.com
service: http://localhost:80
- hostname: assets.domainkamu.com
service: http://localhost:81
- service: http_status:404
Kemudian tambahkan DNS routing lagi:
cloudflared tunnel route dns rumahserver assets.domainkamu.com
7. ๐ Menjalankan Tunnel
cloudflared tunnel run rumahserver
Atau jalankan di background dengan systemd:
sudo cloudflared service install
8. โ Verifikasi
Kunjungi:
https://www.domainkamu.comโ harus mengarah ke server lokal kamu.https://assets.domainkamu.comโ juga mengarah ke server lokal.
Cek log cloudflared untuk debugging kalau perlu:
journalctl -u cloudflared -f
Penutup
Dengan Cloudflare Tunnel, kamu bisa menjalankan banyak website dari satu PC rumah atau server lokal tanpa repot buka port di router, cukup dengan satu tunnel! Hemat, aman, dan cepat.
Kalau kamu mau menambahkan lebih banyak site lagi, cukup:
- Tambah
hostnamediconfig.yml. - Buat route DNS via
cloudflared tunnel route dns.
CATATAN TAMBAHAN
Kalau kelihatannya cloudflared rewel setelah melakukan perubahan tapi tidak ada yang berubah, coba perintah ini:
pkill cloudflared
cloudflared tunnel run namatunnel &
sudo systemctl restart cloudflared
Kalau kamu pakai nginx jangan lupa apply konfigurasinya broh:
sudo ln -s /etc/nginx/sites-available/apps.blablah.com /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx kemudian sudo systemctl restart nginx