Sunat TrustPositif Release v3.0 mempertahankan engine validasi dan karakter output dari v2.9, tetapi memperbarui sumber input domain menjadi multi-source melalui array TRUSTPOSITIF_URLS. Dengan perubahan ini, script tidak hanya bergantung pada satu URL KOMINFO_URL, tetapi dapat mengunduh beberapa sumber domain aktif, menggabungkannya, memvalidasi isinya, melakukan deduplikasi, lalu menghasilkan output final dengan proses yang sama.
Sunat TrustPositif v3.0:
KOMINFO_URL untuk kompatibilitas script/cron lama.domain_blacklist.PATH eksplisit agar lebih aman untuk cron/systemd.set -euo pipefail, IFS, LC_ALL=C, dan LANG=C untuk konsistensi runtime.Semua release bisa diunduh di:
https://github.com/alsyundawy/sunat-trustpositif/releases
π Apa Itu Sunat TrustPositif?
Sunat TrustPositif adalah script Bash untuk mengolah database domain TrustPositif/Komdigi menjadi daftar domain bersih dalam format plain text yang siap digunakan sebagai DNS blacklist, RPZ database, resolver blocklist, atau sumber filtering DNS.
Script ini dirancang untuk mengambil daftar domain dari database TrustPositif, membersihkan data mentah yang masih kotor, menyaring domain tidak valid, membuang entri IP, memvalidasi TLD resmi IANA, memangkas prefix/subdomain umum, menghapus duplikat, serta menghasilkan file domain yang lebih ringan, valid, rapi, dan siap dipakai pada sistem DNS filtering.
Database TrustPositif/Komdigi digunakan sebagai rujukan daftar blokir/penapisan domain dan URL dalam ekosistem pemblokiran konten di Indonesia. Sunat TrustPositif tidak menggantikan database tersebut, melainkan mengolahnya agar lebih optimal untuk kebutuhan teknis seperti DNS resolver, DNS blacklist, RPZ, dan wildcard domain blocking.
Sunat TrustPositif berfungsi untuk:
- Mengunduh daftar domain TrustPositif/Komdigi secara otomatis.
- Membersihkan data mentah yang masih kotor, rusak, duplikat, atau tidak konsisten.
- Membuang alamat **IPv4**, **IPv6**, baris kosong, komentar, karakter ilegal, dan format invalid.
- Memvalidasi domain berdasarkan struktur domain yang benar dan daftar **TLD resmi IANA**.
- Melakukan **sunat/pemangkasan prefix umum** seperti `www.`, `mail.`,`rtp.`, `play.`, `1.`, `0.`, dan prefix lain yang tidak diperlukan.
- Menyaring domain yang tidak valid agar output hanya berisi domain yang layak dipakai.
- Menghapus duplikat agar hasil akhir lebih ringan dan efisien.
- Membuang domain tertentu dari daftar manual blacklist/cleanup internal.
- Menghasilkan file **plain text** bersih, satu domain per baris, siap digunakan sebagai database DNS blacklist/RPZ.
Download daftar domain TrustPositif/Komdigi dan sumber tambahan v3.0
β gabungkan semua sumber aktif ke file raw gabungan
β bersihkan data kotor
β buang IPv4, IPv6, komentar, karakter ilegal, dan format invalid
β validasi struktur domain
β validasi TLD resmi IANA
β sunat/pangkas prefix umum seperti www, mail, rtp , play dan lainnya
β hapus duplikat
β buang domain manual blacklist/cleanup
β hasilkan file plain text domain bersih
β siap digunakan sebagai DNS blacklist/RPZ/blocklist
Catatan penting:
KOMINFO_URL tidak dihapus karena masih berguna untuk kompatibilitas lama dan override manual.OPTIONAL SUNAT VERSION dengan mengganti nilai KOMINFO_URL.doh-onlydomains.txt secara manual.Dalam project ini, istilah sunat berarti memangkas bagian domain atau subdomain yang tidak diperlukan agar daftar domain menjadi lebih bersih, ringkas, valid, dan efektif untuk kebutuhan DNS filtering, DNS blacklist, maupun RPZ.
Sunat domain dilakukan untuk mengurangi entri berulang, membuang format yang tidak layak pakai, menyederhanakan subdomain berlebihan, dan menghasilkan daftar domain yang lebih efisien ketika digunakan oleh DNS resolver.
Beberapa domain dari database TrustPositif/Komdigi dapat memiliki prefix umum yang sebenarnya tidak perlu disimpan sebagai entri terpisah.
Contoh:
www.example.com β example.com
mail.example.com β example.com
0.example.com β example.com
1.example.com β example.com
Dengan pemangkasan ini, domain menjadi lebih sederhana dan tidak menyimpan variasi hostname yang berulang.
Selain memangkas prefix umum seperti www, rtp, play dan mail, script juga dapat menyederhanakan domain yang memiliki terlalu banyak variasi subdomain.
Apabila satu domain utama memiliki lebih dari 10 variasi subdomain, maka subdomain tersebut dapat diringkas dengan mengambil domain utama sebagai target blokir.
Contoh daftar subdomain:
a.example.com
b.example.com
login.example.com
cdn.example.com
mail.example.com
track.example.com
api.example.com
static.example.com
img.example.com
video.example.com
promo.example.com
Dapat disederhanakan menjadi:
example.com
Tujuannya adalah agar pemblokiran menjadi lebih efektif, karena satu domain utama dapat mewakili banyak subdomain turunannya.
Sunat domain bertujuan untuk:
Output utama dari Sunat TrustPositif adalah file plain text berisi daftar domain bersih.
Contoh output:
example.com
domainlain.net
situsblokir.id
sample-domain.org
Setiap baris berisi satu domain yang sudah diproses dan siap digunakan untuk kebutuhan DNS filtering.
Output yang dihasilkan memiliki karakteristik berikut:
Penggunaan paling efektif dari hasil Sunat TrustPositif adalah dengan metode wildcard domain blocking pada DNS/RPZ.
Dengan wildcard blocking, satu domain utama dapat digunakan untuk memblokir domain tersebut beserta seluruh subdomain turunannya.
Contoh:
example.com
*.example.com
Artinya:
example.com diblokir
www.example.com diblokir
mail.example.com diblokir
login.example.com diblokir
cdn.login.example.com diblokir
Metode ini lebih efektif dibanding hanya memblokir satu hostname tertentu, karena banyak situs menggunakan banyak subdomain untuk halaman login, CDN, tracking, mirror, redirect, API, media asset, atau domain turunan lainnya.
Sunat TrustPositif mengolah database domain TrustPositif/Komdigi menjadi file plain text DNS blacklist/RPZ dengan cara mengunduh data, membersihkan entri kotor, membuang IP dan format invalid, memvalidasi TLD resmi IANA, memangkas prefix umum seperti www, rtp, play dan mail, menyederhanakan subdomain berlebihan menjadi domain utama apabila jumlah variasinya lebih dari 10 subdomain, menghapus duplikat, lalu menghasilkan daftar domain bersih yang siap digunakan untuk pemblokiran DNS berbasis wildcard domain.
Sunat TrustPositif is a Bash script that processes the TrustPositif/Komdigi domain database into a clean plain-text DNS blacklist/RPZ-ready blocklist by downloading the source list, cleaning dirty records, removing IPv4/IPv6 addresses and invalid formats, validating official IANA TLDs, trimming common prefixes such as www and mail, simplifying excessive subdomain variations into the main domain when a domain has more than 10 subdomain variants, deduplicating entries, and producing a clean domain list ready for wildcard-based DNS blocking.
[INFO] Waktu Mulai: 24 May 2026 - 19:54:13
[INFO] Durasi Total: 50 detik
Anda dapat mengunduh dan mengeksekusi skrip instalasi secara otomatis dengan menggunakan salah satu perintah di bawah ini (silakan pilih salah satu, curl atau wget).
Sebelum eksekusi script pastikan perintah parallel ada atapun terinstall (Wajib!)
Menggunakan curl (Rekomendasi): π₯
curl -fsSL https://github.com/alsyundawy/sunat-trustpositif/raw/refs/heads/main/sunat-trustpositif.sh | bash
Menggunakan wget (Alternative): π₯
wget -qO- https://github.com/alsyundawy/sunat-trustpositif/raw/refs/heads/main/sunat-trustpositif.sh | bash
Script ini telah mengalami perbaikan dan optimasi menyeluruh untuk meningkatkan performa, keamanan, dan maintainability.
20000 + (NUM_CORES * 1000)--insecure untuk keandalan di lingkungan terbatasmawk (validasi RFC & TLD).TRUSTPOSITIF_URLSPATH, locale, dan strict mode dibuat eksplisit untuk server/cronbash sunat-trustpositif.sh
bash sunat-trustpositif.sh --help # Tampilkan bantuan lengkap
bash sunat-trustpositif.sh --version # Tampilkan versi script
bash sunat-trustpositif.sh --status # Cek status script berjalan
bash sunat-trustpositif.sh --force-cleanup # Paksa bersihkan file temporary
bash sunat-trustpositif.sh --debug # Mode debug untuk troubleshooting
Script terjebak/hang
bash sunat-trustpositif.sh --force-cleanup
Kemudian jalankan kembali normal.
Error: βScript sudah berjalanβ
bash sunat-trustpositif.sh --status
bash sunat-trustpositif.sh --force-cleanup
bash sunat-trustpositif.sh
Debugging/Troubleshoot
bash sunat-trustpositif.sh --debug
Memori tidak cukup
chunk size.Download gagal
--insecure (default aktif) untuk bypass sertifikat SSL yang bermasalah.I/O Bottleneck
TEMP_DIR jika memproses >1M domain.Ubuntu/Debian:
sudo apt update && sudo apt install -y curl mawk parallel coreutils procps
RHEL/CentOS/Fedora:
sudo dnf install -y curl gawk parallel coreutils procps-ng
Script otomatis menyesuaikan konfigurasi berdasarkan:
readonly CHUNK_SIZE=15000
readonly NUM_CORES=$(nproc)
readonly OUTPUT_DIR="/path/to/dir"
Untuk v3.0, override yang lebih aman dilakukan dari environment saat menjalankan script:
NUM_CORES=8 CHUNK_SIZE=28000 SORT_BUFFER=50% bash sunat-trustpositif.sh
Mode collapse subdomain agresif tetap opsional:
CUT_SUBDOMAINS=1 bash sunat-trustpositif.sh
Sistem referensi: 8 core, 16GB RAM, SSD
25.000 - 35.000 domain/detik
Selesai dalam 1.5 - 2.5 menit
Stabil di 300-600MB (constant profiling)
95-100% utilization di semua core yang dialokasikan
/var/www/html/trustpositif/sunat-trustpositif.txt
/tmp/sunat-trustpositif.XXXXXX/chunk_*, *.processed, iana_tlds.txt, script.pid[INFO] : Informasi umum[OK] : Operasi berhasil[WARN] : Peringatan non-fatal[ERR] : Error penting[PROC] : Status progresschmod 755 sunat-trustpositif.sh
chmod 755 /var/www/html/trustpositif/
chown user:group /var/www/html/trustpositif/
bash sunat-trustpositif.sh --debug 2>&1 | tee debug.log
${OUTPUT_DIR}.--force-cleanup) untuk reset state.apt upgrade).cp ${OUTPUT}.txt ${BACKUP}/$(date +%Y%m%d).txtQ: Script lambat?
A: Cek koneksi, CPU/memory (htop), run --debug.
Q: Output kosong? A: Periksa log error, source download, permissions.
Q: Script crash?
A: Jalankan --status, gunakan --force-cleanup, cek /var/log/syslog.
Q: Custom domain cleanup list?
A: Edit DOMAINS_TO_CLEAN di script.
Q: Multiple instances? A: Tidak disarankan (single instance protection).
TRUSTPOSITIF_URLS sebagai array sumber domain aktif agar script dapat menggabungkan TrustPositif/Komdigi, StevenBlack, Hagezi, dan daftar tambahan Alsyundawy.KOMINFO_URL tetap dipertahankan sebagai variabel utama agar konfigurasi lama, cron lama, dan override manual tidak rusak.OPTIONAL SUNAT VERSION untuk memakai mirror tlds-valid-domains_v2.txt bila diperlukan.domain_blacklist agar lebih sesuai dengan fungsi multi-source blacklist.clear, PATH eksplisit, strict mode set -euo pipefail, IFS, LC_ALL=C, dan LANG=C pada bagian awal script agar lebih stabil di shell manual, cron, dan lingkungan server minimal.KOMINFO_URL langsung di dalam array TRUSTPOSITIF_URLS, bukan mematikan warning.A && B || true menjadi blok if yang lebih aman dan eksplisit.SELAMAT ULANG TAHUN WAHAI TAURUS MEI !!! π₯³π₯³π₯³π₯³
CUT_SUBDOMAINS=0; script tidak melakukan parent-domain collapse secara agresif. Mode agresif hanya aktif jika user menjalankan CUT_SUBDOMAINS=1 secara eksplisit.www., mail., 1., dan 0..sed + grep -v -f seperti v2.8 supaya domain/subdomain turunan dari daftar manual tetap tersaring mengikuti hasil produksi sebelumnya.NUM_CORES dari nproc dengan batas aman 4β32 core dan CHUNK_SIZE=20000+(NUM_CORES*1000).AWK_CMD dengan prioritas deteksi mawk -> gawk -> awk, serta dapat dioverride manual oleh user.apt/apt-get, dnf, yum, zypper, atau apk.mawk, gawk, dan awk di lingkungan Debian/Ubuntu/RHEL.curl -f/wget fallback, retry, timeout, validasi file kosong, dan deteksi HTML/error page.mv ke target akhir agar file produksi tidak rusak/setengah jadi saat gagal.EXIT/INT/TERM diperbaiki agar cleanup tetap berjalan dan exit code benar dipertahankan, termasuk 130 untuk Ctrl+C dan 143 untuk TERM.--force-cleanup dibuat lebih aman dan tidak lagi bergantung pada pkill brutal yang berisiko membunuh proses lain.--help, docnote, dan changelog diperbarui agar jelas bahwa v2.9 mengoptimalkan mesin proses, bukan mengganti format hasil produksi.NUM_CORES adaptif (4β32 core)CHUNK_SIZE otomatis sesuai kapasitas sistem--help, --force-cleanup, --version)--insecure) untuk keandalan tinggi--helpwww dan mailHak Cipta Β© 2024β2025 HARRY DERTIN SUTISNA ALSYUNDAWY Script ini disediakan βSEBAGAIMANA ADANYAβ. Penggunaan sepenuhnya menjadi risiko pengguna.
Author: Harry Dertin Sutisna Alsyundawy Email: harry@alsyundawy.com GitHub: https://github.com/alsyundawy
--debugJika Anda merasa terbantu dan ingin mendukung proyek ini, pertimbangkan untuk berdonasi melalui https://www.paypal.me/alsyundawy. Terima kasih atas dukungannya! β
Jika Anda merasa terbantu dan ingin mendukung proyek ini, pertimbangkan untuk berdonasi melalui QRIS. Terima kasih atas dukungannya! β
Anda bebas untuk mengubah, mendistribusikan script ini untuk keperluan anda π
Jangan semangat, tetaplah putus asa.
Tetap mengeluh, walau tak ada yang merasa.Ketika yang lain bisa,
kenapa harus saya?
Ketika yang lain tidak bisa,
apalagi saya.Tetaplah hidup, meski kontribusi tak seberapa.
Tetaplah hadir, walau cuma jadi beban suasana.Maju tak gentar, membela yang bayar.
Kalau gratisan, nanti dulu saudara.Yoiβ¦
Ya begitulah hidup: kadang absurd, kadang lapar, kadang pura-pura tegar. π€£
Copyright (c) 2023-2026
Harry Dertin Sutisna Alsyundawy
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files...