Cara Pasang Pi-hole di STB Armbian

Siapkan STB dan alamat tetap
Sahabat, Pi-hole bekerja sebagai penyaring DNS: perangkat bertanya ke Pi-hole, lalu Pi-hole meneruskan domain yang tidak diblokir ke DNS upstream. Ia tidak memblokir setiap iklan. IPv6 dapat melewati DNS IPv4 jika router atau klien masih memakai resolver IPv6 sendiri, dan iklan YouTube umumnya tidak hilang hanya dengan pemblokiran DNS.
Gunakan STB Armbian yang terhubung LAN dan beri IP statis, atau buat reservasi DHCP di router. Catat IP itu, misalnya 192.168.1.20. Sebelum memasang, pastikan Docker dan Docker Compose sudah tersedia. Panduan cara pasang CasaOS di STB Armbian dapat membantu menyiapkan lingkungan, tetapi contoh di bawah memakai Compose langsung.
Buat Compose Pi-hole v6
Buat direktori kerja, lalu simpan compose.yaml berikut. Volume ./etc-pihole menjaga konfigurasi dan basis data tetap ada saat kontainer diperbarui. Ganti kata sandi contoh dengan milik sendiri dan jangan membagikan berkasnya.
services:
pihole:
container_name: pihole
image: pihole/pihole:latest
ports:
- "53:53/tcp"
- "53:53/udp"
- "80:80/tcp"
environment:
TZ: Asia/Jakarta
FTLCONF_webserver_api_password: "ganti-dengan-kata-sandi-kuat"
FTLCONF_dns_listeningMode: ALL
volumes:
- ./etc-pihole:/etc/pihole
restart: unless-stopped
Mode ALL diperlukan pada jaringan Docker bridge agar permintaan dari LAN dapat dilayani. Port DNS TCP dan UDP 53 harus dipetakan. Port TCP 80 dipakai untuk halaman admin. Jalankan docker compose up -d, kemudian buka halaman admin dari LAN melalui alamat STB. Masuk ke admin Pi-hole, buka bagian daftar blokir atau Lists, tambahkan adlist tepercaya, lalu jalankan pembaruan Gravity. Mulai dari daftar bawaan sebelum menambah daftar lain.
Atasi bentrok port 53 dengan hati-hati
Sebelum mengubah resolver host, cek siapa yang memakai port 53:
sudo ss -lntup | grep ':53'
Jangan mematikan systemd-resolved secara membabi buta. Jika memang stub DNS-nya yang bentrok, ubah hanya DNSStubListener=no pada konfigurasi yang tepat, lalu pertahankan resolv.conf dengan resolver upstream yang dapat dijangkau host. Jangan mengosongkan DNS tanpa pengganti, karena host bisa gagal memasang paket atau menyalakan ulang kontainer setelah reboot. Restart layanan jaringan secara terencana dan uji resolusi dengan getent hosts example.com sebelum mengandalkan Pi-hole.
Jika port 80 sudah digunakan, ubah port host, misalnya 8080:80, tanpa mengubah port internal. Port 53 harus tetap tersedia untuk klien. Setelah perubahan, uji dari perangkat LAN dengan mengatur DNS sementara ke IP STB. Jangan mengekspos port 53 ke internet; batasi akses di firewall dan router hanya untuk jaringan rumah.
Arahkan router dan verifikasi
Di DHCP LAN router, isi DNS utama dengan IP statis STB. Jangan tambahkan DNS publik sebagai DNS kedua jika ingin mencegah klien melewati penyaringan. Hindari hanya mengganti DNS satu laptop karena perangkat lain tetap memakai resolver lama. Jika router membagikan IPv6 DNS, atur jalur IPv6 dengan sadar atau uji setiap klien. Pantau log Pi-hole dan pastikan klien terlihat. Jika internet putus, kembalikan DNS router ke resolver cadangan sementara, periksa kontainer, lalu pulihkan konfigurasi; jangan membiarkan jaringan tanpa DNS.
Periksa hasil tanpa mengganggu semua perangkat
Uji lebih dulu pada satu ponsel atau laptop. Putuskan sambungan WiFi lalu sambungkan kembali agar perangkat menerima DNS baru, kemudian cek alamat DNS yang diterima. Buka beberapa situs biasa dan satu domain yang masuk daftar blokir. Dashboard Pi-hole juga dapat menunjukkan apakah kueri masuk dari klien tersebut. Jika nama domain gagal diterjemahkan, periksa log kontainer dan konektivitas STB ke upstream, bukan langsung menambah banyak adlist.
Adlist terlalu agresif dapat mematahkan login, pembayaran, atau aplikasi televisi. Hapus daftar yang menyebabkan gangguan dan tambahkan domain penting ke allowlist hanya setelah memahami kebutuhannya. Simpan salinan folder etc-pihole secara berkala. Cadangan sederhana membantu ketika konfigurasi rusak atau STB perlu dipindahkan.
Pi-hole bukan VPN dan bukan firewall penuh. Perangkat dengan DNS terenkripsi sendiri dapat mengabaikan DNS router, sedangkan IPv6 dapat memakai jalur berbeda. Untuk cakupan rumah yang konsisten, atur DHCP router, cek pengaturan privasi DNS pada klien, dan pastikan jaringan tamu tidak sengaja diberi akses ke layanan yang tidak diinginkan.