Jadikan STB Android TV box (X96Mini, X96Air, dll) sebagai caching proxy server. Semua request web dari perangkat di rumah akan melewati Squid — halaman yang sudah dikunjungi akan di-cache, kunjungan berikutnya jadi jauh lebih cepat.
Browser/App → Proxy (X96Mini:3128) → Squid Cache → Internet
│ │
└── Cache Hit? ←─── Cache Storage
- Cache Hit → halaman dikirim langsung dari cache (super cepat)
- Cache Miss → Squid ambil dari internet, simpan, lalu kirim ke client
| File | Fungsi |
|---|---|
install-squid.sh |
Auto-installer Squid dengan konfigurasi optimal |
monitor/squid-monitor.py |
API backend untuk monitoring cache real-time |
monitor/install-monitor.sh |
Install monitor sebagai systemd service |
extension/ |
Browser Extension (Chrome/Edge/Brave) untuk monitoring |
README.md |
Dokumentasi ini |
- STB sudah terinstall Armbian (booting dari SD Card atau eMMC)
- Terhubung ke LAN dengan IP static (disarankan)
- Akses root via SSH
SSH ke STB lalu jalankan:
curl -sL https://raw.githubusercontent.com/budijoi/squid-stb/main/install-squid.sh -o /tmp/install-squid.sh
chmod +x /tmp/install-squid.sh
sudo bash /tmp/install-squid.shapt install git -y
git clone https://github.com/budijoi/squid-stb.git /tmp/squid-stb
sudo bash /tmp/squid-stb/install-squid.sh# Dari Windows (PowerShell)
scp install-squid.sh root@192.168.1.100:/tmp/
# SSH lalu jalankan
ssh root@192.168.1.100
sudo bash /tmp/install-squid.sh- Deteksi IP & subnet LAN otomatis
- Update Squid ke versi terbaru (jika versi lama)
- Konfigurasi caching (256 MB RAM cache, 2 GB disk cache)
- Buka firewall port 3128
- Verifikasi proxy berfungsi
- Settings > Network & Internet > Proxy
- Use a proxy server → ON
- Address:
192.168.101.22(ganti dengan IP X96Mini kamu) - Port:
3128 - Centang "Bypass proxy for local addresses"
- Save
netsh winhttp set proxy 192.168.101.22:3128- Buka
chrome://settings/?search=proxy - Klik "Open your computer's proxy settings"
- Atur seperti setting Windows di atas
Atau gunakan ekstensi Proxy SwitchyOmega:
- Buat profile baru → HTTP Proxy →
192.168.101.22:3128 - Aktifkan profile tersebut
- System Settings > Network > Advanced > Proxies
- Centang "Web Proxy (HTTP)"
- Isi
192.168.101.22dan port3128 - OK > Apply
- Settings > WiFi > Tap jaringan > Advanced > Proxy
- Pilih "Manual"
- Hostname:
192.168.101.22 - Port:
3128 - Save
# GNOME
gsettings set org.gnome.system.proxy mode 'manual'
gsettings set org.gnome.system.proxy.http host '192.168.101.22'
gsettings set org.gnome.system.proxy.http port 3128
# Atau via Settings > Network > ProxyTes dari perangkat lain (PC/HP) apakah proxy berfungsi:
curl.exe -I --proxy http://192.168.101.22:3128 https://google.comcurl -I --proxy http://192.168.101.22:3128 https://google.comResponse HTTP/1.1 200 atau 301 berarti proxy berfungsi.
Atau buka google.com di browser — kunjungan pertama akan sedikit lebih lambat (sedang di-cache), kunjungan berikutnya akan sangat cepat.
sudo systemctl status squid # Cek status
sudo tail -f /var/log/squid/access.log # Cek log real-time
sudo systemctl restart squid # Restart proxy
sudo systemctl stop squid # Stop proxy
sudo squid -k info # Cek isi cacheHapus semua cache:
sudo systemctl stop squid
sudo rm -rf /var/spool/squid/*
sudo squid -z
sudo systemctl start squid| Masalah | Kemungkinan | Solusi |
|---|---|---|
| Browser: "Proxy server refusing connections" | Squid tidak berjalan | sudo systemctl restart squid |
ERR_DNS_FAIL / 503 |
DNS gagal resolve | Pastikan /etc/resolv.conf punya nameserver 8.8.8.8 |
| Proxy timeout terus | Cache corrupt | Hapus cache (lihat perintah di atas) |
WARNING BCP 177 violation |
IPv6 loopback tidak ada | Aman diabaikan |
| Koneksi lambat di awal | Cache masih kosong | Biarkan beberapa saat |
| Squid tidak listen di port | Firewall | sudo ufw allow 3128/tcp |
Pantau kinerja Squid secara real-time melalui browser dengan Squid Monitor API + Browser Extension.
Browser Extension (popup) ←→ Monitor API (:8080) ←→ Squid Access Log
↓
Statistik cache, hit ratio,
request terbaru, top domains
# Dari folder squid-stb hasil clone
sudo bash monitor/install-monitor.shAtau via curl:
curl -sL https://raw.githubusercontent.com/budijoi/squid-stb/main/monitor/install-monitor.sh -o /tmp/install-monitor.sh
sudo bash /tmp/install-monitor.shScript akan:
- Copy
squid-monitor.pyke/usr/local/bin - Buat systemd service
squid-monitor(auto-start) - Buka port
8080untuk API monitoring
| Endpoint | Deskripsi |
|---|---|
GET /api/stats |
Statistik cache (total request, hits, misses, hit ratio, cache size, uptime) |
GET /api/recent |
30 request terbaru (waktu, method, URL, status cache, durasi) |
GET /api/domains |
40 domain paling sering diakses (total request + hits) |
Uji coba dari X96Mini:
curl -s http://127.0.0.1:8080/api/stats | python3 -m json.toolExtension menampilkan dashboard langsung di browser — tanpa perlu SSH.
| Fitur | Detail |
|---|---|
| Hit Ratio | Lingkaran progress real-time |
| Statistik | Total request, cache hits, misses, tunnels |
| Recent Requests | 30 request terbaru dengan status cache |
| Top Domains | 40 domain paling sering diakses |
| Auto-refresh | Update setiap 3 detik |
- Buka Chrome/Edge/Brave →
chrome://extensions - Aktifkan "Developer mode" (pojok kanan atas)
- Klik "Load unpacked"
- Pilih folder
extension/dari repo ini - Extension muncul di toolbar — klik icon untuk membuka
Di pojok kanan popup, masukkan alamat server monitor:
192.168.101.22:8080
Klik Connect. Dashboard akan langsung muncul.
| File | Fungsi |
|---|---|
monitor/squid-monitor.py |
Backend API — baca access.log & sajikan JSON |
monitor/install-monitor.sh |
Installer → systemd service squid-monitor |
extension/manifest.json |
Chrome extension manifest v3 |
extension/popup.html |
UI popup dashboard |
extension/popup.js |
Logic fetch API & render grafik |
extension/icons/ |
Icon 16px, 48px, 128px |
| Sumber Daya | Minimal | Rekomendasi |
|---|---|---|
| RAM | 512 MB | 1-2 GB |
| Storage cache | 500 MB | 2 GB+ |
| Network | 100 Mbps | 100/1000 Mbps |
| OS | Armbian (Debian/Ubuntu based) | Armbian 24+ |
Pull request dan issue selalu welcome. Silakan fork repo ini.
- Fork repo
- Buat branch fitur:
git checkout -b fitur-baru - Commit perubahan:
git commit -m 'Tambah fitur X' - Push:
git push origin fitur-baru - Buat Pull Request
MIT © Budi Joi