Avatar
Cover

Akses Home Assistant dari Internet Tanpa Port Forwarding dengan Cloudflare Tunnel

Kamu sudah berhasil mengatur Home Assistant dan menghubungkannya dengan berbagai perangkat smart home di rumah — lampu, sensor, kamera, dan lainnya. Semuanya berjalan lancar selama kamu berada di rumah dan terhubung ke jaringan lokal (LAN). Namun begitu kamu keluar rumah, koneksi terputus. Kamu tidak bisa memantau kamera, menyalakan AC sebelum pulang, atau mengecek status perangkat dari luar.

Inilah masalah klasik yang dihadapi banyak pengguna Home Assistant: bagaimana cara mengakses Home Assistant dari internet secara remote?

Artikel ini membahas semua opsi yang tersedia, kelebihan dan kekurangan masing-masing, lalu memberikan panduan langkah demi langkah cara setup Cloudflare Tunnel sebagai solusi terbaik — terutama jika ISP kamu tidak mengizinkan modifikasi pengaturan router.


Mengapa Remote Access ke Home Assistant Itu Penting?

Tanpa akses internet ke Home Assistant, manfaat smart home menjadi sangat terbatas. Beberapa skenario nyata yang membutuhkan remote access:

  • Kamu meninggalkan hewan peliharaan di rumah dan ingin memantau kamera CCTV dari kantor.
  • Kamu sedang liburan dan ingin menyalakan pemanas ruangan sebelum tiba di rumah.
  • Kamu berada di dalam rumah, tapi ponsel terhubung ke jaringan 4G, bukan WiFi — dan kamu tetap ingin mengontrol perangkat.
  • Kamu ingin menerima notifikasi dari sensor pintu atau gerak kapan pun dan di mana pun.

Singkatnya, remote access mengubah smart home dari sekadar otomasi lokal menjadi sistem yang benar-benar "smart" dan responsif.


Opsi Akses Home Assistant dari Internet

Ada beberapa metode untuk mengakses Home Assistant secara remote dari internet. Masing-masing punya karakteristik berbeda tergantung kebutuhan, kemampuan teknis, dan kondisi infrastruktur jaringan kamu.

1. Home Assistant Cloud (Nabu Casa)

Tim Home Assistant menyediakan layanan cloud resmi bernama Nabu Casa. Dengan menghubungkan instance Home Assistant ke cloud mereka, kamu bisa langsung mendapatkan akses internet melalui fitur Remote UI.

Setup-nya sangat mudah — cukup beberapa klik dari antarmuka web Home Assistant. Namun ada dua kekurangan utama:

  • Berbayar: Biayanya sekitar $6,50/bulan atau $65/tahun.
  • Ketergantungan pada pihak ketiga: Semua traffic melewati server Nabu Casa. Jika layanan mereka down, akses remote kamu pun ikut terputus.

Kelebihan: Setup termudah, integrasi native.

Kekurangan: Berbayar, bergantung pada third-party service.


2. Port Forwarding

Metode ini paling umum digunakan oleh pengguna yang ingin self-hosted tanpa biaya tambahan. Caranya adalah membuka port 8123 pada router dan mengarahkan traffic tersebut ke IP lokal Raspberry Pi atau server Home Assistant kamu.

Prosedur pengaturannya bervariasi tergantung merek router, tapi secara umum cukup mudah dilakukan.

Kelebihan: Mudah di-setup, self-hosted, gratis.

Kekurangan: Kurang aman karena membuka port ke seluruh internet, membutuhkan akses ke pengaturan router.


3. VPN

VPN menawarkan keamanan yang lebih baik dibanding port forwarding biasa. Solusi seperti OpenVPN atau WireGuard memungkinkan kamu membuat koneksi terenkripsi antara perangkat mobile dan jaringan rumah.

Namun kamu tetap perlu melakukan port forwarding untuk VPN-nya sendiri, dan setup-nya lebih kompleks.

Kelebihan: Aman, self-hosted.

Kekurangan: Setup lebih rumit, tetap membutuhkan akses ke pengaturan router.


4. Tunneling (Solusi yang Dibahas di Artikel Ini)

Inilah solusi terbaik jika ISP kamu tidak mengizinkan modifikasi router sama sekali — kondisi yang cukup umum terjadi di banyak daerah di Indonesia, di mana router dikunci oleh penyedia layanan.

Tunneling bekerja dengan cara menginstal software connector di jaringan lokal kamu (misalnya di Raspberry Pi), lalu menghubungkannya ke layanan cloud tunnel. Traffic dari internet akan "ditunnel" ke connector tersebut, yang kemudian meneruskan request ke Home Assistant di jaringan lokal.

Tidak perlu membuka port, tidak perlu menyentuh pengaturan router.

Kelebihan: Aman (jika dikonfigurasi dengan benar), tidak memerlukan akses ke pengaturan router.

Kekurangan: Setup sedikit lebih kompleks, menggunakan layanan third-party.


Memilih Layanan Tunneling: Mengapa Cloudflare?

Ada banyak layanan tunneling yang tersedia, seperti ngrok, Tailscale, ZeroTier, dan lainnya. Namun Cloudflare Tunnel menjadi pilihan utama karena beberapa alasan kuat:

  • Gratis untuk kebutuhan personal (tanpa biaya langganan).
  • Keamanan tingkat enterprise — Cloudflare adalah salah satu perusahaan keamanan internet terbesar di dunia.
  • Manajemen SSL otomatis — sertifikat HTTPS diurus secara otomatis.
  • Zero Trust Access — lapisan autentikasi tambahan sebelum traffic mencapai Home Assistant kamu.
  • Dashboard monitoring yang komprehensif untuk memantau siapa yang mengakses tunnel.
Catatan penting: Meskipun Cloudflare menyediakan free plan, kamu tetap perlu menambahkan kartu kredit/debit ke akun Cloudflare untuk mengaktifkan layanan cloud mereka. Kartu tidak akan ditagih untuk penggunaan dalam batas free tier.

Cara Setup Cloudflare Tunnel untuk Home Assistant

Prasyarat

Sebelum memulai, pastikan kamu sudah memiliki:

  • Domain name yang aktif (bisa dibeli dari registrar manapun seperti Niagahoster, Namecheap, dll.)
  • Home Assistant yang sudah berjalan di Docker (misalnya di Raspberry Pi)
  • Docker terinstal di server/Raspberry Pi kamu

Langkah 1: Tambahkan Domain ke Cloudflare

Login ke akun Cloudflare kamu, lalu pergi ke menu WebsitesAdd a site. Masukkan nama domain kamu, klik Continue, dan pilih paket Free.


Langkah 2: Arahkan Nameserver Domain ke Cloudflare

Jika domain kamu tidak terdaftar di Cloudflare, kamu perlu mengubah Name Server (NS) domain ke nameserver milik Cloudflare. Caranya:

  1. Login ke tempat kamu membeli domain.
  1. Cari pengaturan Nameserver atau DNS Management.
  1. Ganti nameserver lama dengan nameserver Cloudflare yang ditampilkan di dashboard.

Proses propagasi nameserver bisa memakan waktu hingga 24 jam. Cloudflare akan mengirimkan email konfirmasi setelah proses selesai.


Langkah 3: Verifikasi Status Domain

Setelah nameserver berhasil diubah, klik Check nameservers di dashboard Cloudflare. Jika berhasil, domain kamu akan muncul dengan status Active di bawah menu Websites.


Langkah 4: Buat Tunnel Baru

Di menu kiri Cloudflare, pilih AccessTunnelsCreate a tunnel. Beri nama tunnel sesuka kamu, lalu klik Next.


Langkah 5: Install Cloudflare Tunnel Connector via Docker

Di bagian Choose your environment, pilih Docker. Cloudflare akan memberikan perintah docker run yang siap digunakan.

Buka terminal di komputermu, lalu SSH ke Raspberry Pi:

ssh pi@<IP_RASPBERRY_PI>

Buat direktori baru untuk Cloudflare:

cd ~/
mkdir cloudflare && cd cloudflare

Jalankan perintah docker run yang disediakan oleh Cloudflare:

docker run --name cloudflare cloudflare/cloudflared:latest tunnel --no-autoupdate run --token <YOUR_TOKEN>

Setelah container berjalan, perhatikan output log-nya. Cari baris yang mengandung teks seperti:

INF ICMP proxy will use 172.17.0.2 as a source for IPv4

Catat IP address tersebut (contoh: 172.17.0.2) — kamu akan membutuhkannya nanti.


Langkah 6: Jalankan Container dalam Mode Detached

Tekan Ctrl+C untuk menghentikan container sementara. Kemudian jalankan kembali dalam mode background (detached):

docker start cloudflare

Kamu bisa mengecek nama container dengan perintah:

docker ps -a

Langkah 7: Verifikasi Status Connector

Kembali ke dashboard Cloudflare. Di bagian Connectors, kamu seharusnya melihat connector baru dengan status Connected. Klik Next.


Langkah 8: Tambahkan Public Hostname

Di bagian ini, kamu akan mendefinisikan URL publik untuk mengakses Home Assistant:

  • Subdomain: Isi sesuai keinginan, misalnya hass (artinya kamu akan akses via hass.namadomain.com)
  • Domain: Pilih domain kamu dari dropdown
  • Service Type: Pilih HTTP
  • URL: Masukkan URL lokal Home Assistant kamu (contoh: http://192.168.1.100:8123)

Klik Save untuk menyimpan konfigurasi tunnel.


Langkah 9: Uji Tunnel dari Jaringan Lain

Ambil ponsel kamu, matikan WiFi, dan gunakan koneksi data seluler (4G/5G). Buka browser dan akses subdomain yang baru saja kamu buat, misalnya hass.namadomain.com.

Jika muncul error "400: Bad Request" — jangan panik! Ini justru kabar baik. Pesan error ini berasal dari Home Assistant itu sendiri, yang artinya tunnel sudah bekerja dan berhasil meneruskan request ke Home Assistant di Raspberry Pi. Masalahnya hanya pada konfigurasi Home Assistant yang belum mengizinkan koneksi dari proxy.


Langkah 10: Izinkan Koneksi dari Cloudflare Tunnel di Home Assistant

Home Assistant secara default memblokir request yang datang melalui proxy atau reverse proxy. Kamu perlu mengeditnya secara manual.

SSH ke Raspberry Pi dan masuk ke direktori Home Assistant:

cd ~/homeassistant

Edit file configuration.yaml dan tambahkan konfigurasi berikut di bagian paling atas:

http:
  use_x_forwarded_for: true
  trusted_proxies:
    - 172.17.0.0/24
Ganti IP address di atas dengan IP Cloudflare Tunnel Connector yang kamu catat sebelumnya. Ubah digit terakhir menjadi 0. Contoh: jika IP connector adalah 172.17.0.2, maka masukkan 172.17.0.0/24.

Langkah 11: Restart Home Assistant

Buka antarmuka web Home Assistant di browser, pergi ke SettingsSystem, lalu klik ikon Power di pojok kanan atas dan pilih Restart.

Tunggu beberapa menit hingga Home Assistant aktif kembali.


Langkah 12: Uji Ulang Tunnel

Kembali ke ponsel kamu (pastikan masih menggunakan data seluler, bukan WiFi rumah), buka browser, dan akses kembali URL tunnel kamu. Kali ini, halaman login Home Assistant seharusnya muncul dengan sempurna.

Selamat! Home Assistant kamu sekarang bisa diakses dari mana saja di seluruh internet!


Mengamankan Cloudflare Tunnel (Wajib Dilakukan!)

Membuka akses Home Assistant ke internet tanpa lapisan keamanan tambahan adalah tindakan yang sangat berisiko. Bot dan scanner berbahaya terus-menerus menyisir internet untuk mencari target. Berikut langkah-langkah pengamanan yang wajib kamu lakukan.

Aktifkan HTTPS dan Full Encryption

Karena nameserver domain sudah diarahkan ke Cloudflare, SSL certificate akan dikelola secara otomatis oleh mereka. Namun kamu perlu memastikan enkripsi berjalan dengan benar:

  1. Di Cloudflare Dashboard, pergi ke Websites → pilih domain kamu → SSL/TLSOverview.
  1. Set Encryption mode ke Full (strict).

Selanjutnya, pergi ke SSL/TLSEdge Certificates dan aktifkan:

  • Always Use HTTPS — semua request HTTP akan otomatis diredirect ke HTTPS.
  • Opportunistic Encryption — sudah aktif by default, pastikan tetap aktif.
  • TLS 1.3 — protokol enkripsi terbaru dan paling aman.
  • Automatic HTTPS Rewrites — mengubah link HTTP di halaman menjadi HTTPS secara otomatis.

Tambahkan Lapisan Autentikasi dengan Cloudflare Zero Trust

Ini adalah langkah terpenting untuk memastikan hanya kamu yang bisa mengakses Home Assistant dari internet.

Langkah 1: Tambahkan Login Method

Di Cloudflare, masuk ke menu Zero TrustSettingsAuthenticationLogin methodsAdd new.

Pilih identity provider yang ingin kamu gunakan. Dalam contoh ini, kita menggunakan GitHub. Ikuti instruksi yang diberikan untuk membuat OAuth application di akun GitHub kamu.

Langkah 2: Buat Zero Trust Application

Pergi ke AccessApplicationsAdd an application → pilih Self-hosted.

  • Masukkan nama aplikasi sesuka kamu.
  • Isi Application Domain dengan URL tunnel Home Assistant kamu (contoh: hass.namadomain.com).
  • Di bagian Identity providers, hilangkan centang "Accept all available identity providers" dan pilih hanya GitHub.

Langkah 3: Konfigurasi Security Policy

Buat dua aturan keamanan:

  1. Allow rule: Selector → Login Methods → Value → GitHub
  1. Require rule: Selector → Emails → Value → alamat email akun GitHub kamu

Dengan konfigurasi ini, hanya akun GitHub dengan email spesifik milikmu yang bisa melewati lapisan autentikasi Cloudflare.


Uji Keamanan

Buka browser dalam mode incognito/private. Akses URL Home Assistant kamu. Kamu akan melihat halaman Cloudflare Access dengan opsi login GitHub — bukan halaman login Home Assistant. Coba login dengan akun GitHub yang berbeda (bukan akun utama kamu). Hasilnya: Access Denied.

Ini berarti lapisan keamanan Zero Trust berjalan dengan sempurna.


Monitoring Akses dengan Cloudflare Analytics

Setelah semua dikonfigurasi, penting untuk memantau siapa saja yang mencoba mengakses tunnel kamu.

Domain Access Logs

Pergi ke Analytics & LogsAccount Analytics. Di sini kamu bisa melihat:

  • Total request yang masuk ke domain kamu
  • Negara asal request
  • Tren traffic dari waktu ke waktu

Jangan kaget jika ada request dari berbagai negara yang tidak kamu kenal — itu adalah aktivitas normal dari scanner dan bot yang terus berjalan di internet. Lapisan Zero Trust yang sudah kamu buat akan memblokir mereka sebelum bisa menyentuh Home Assistant.

Zero Trust Access Logs

Pergi ke Zero TrustLogsAccess. Di sini kamu bisa melihat riwayat autentikasi: kapan kamu login, dari perangkat apa, dan percobaan login yang gagal dari akun tidak sah.


Kesimpulan

Mengakses Home Assistant dari internet tanpa port forwarding sepenuhnya bisa dilakukan menggunakan Cloudflare Tunnel. Solusi ini sangat ideal untuk pengguna di Indonesia yang ISP-nya sering mengunci pengaturan router dan tidak mengizinkan modifikasi port forwarding.

Dengan mengikuti panduan ini, kamu telah berhasil:

  • Membuat tunnel terenkripsi dari internet ke Home Assistant di jaringan lokal.
  • Mengaktifkan HTTPS secara otomatis melalui Cloudflare SSL.
  • Menambahkan lapisan autentikasi Zero Trust dengan SSO via GitHub.
  • Memblokir semua akses tidak sah sebelum mencapai Home Assistant.
  • Memantau aktivitas akses melalui Cloudflare Analytics.

Smart home kamu sekarang bukan hanya nyaman digunakan di dalam rumah, tapi juga bisa diakses dengan aman dari mana saja di seluruh dunia.


Artikel ini merupakan adaptasi dan pengembangan dari panduan teknis seputar remote access Home Assistant menggunakan Cloudflare Tunnel. Untuk pengaturan awal Home Assistant di Raspberry Pi menggunakan Docker, pastikan kamu sudah mengikuti panduan instalasi dasar terlebih dahulu.