Skip to content

alsyundawy/sunat-trustpositif

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

141 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SUNAT TRUSTPOSITIF BY HARRY DS ALSYUNDAWY

Latest Version Maintenance Status License GitHub Issues GitHub Pull Requests Donate with PayPal Donate with Ko-fi Sponsor with GitHub GitHub Stars GitHub Forks GitHub Contributors

🔖 Release Terbaru

Sunat TrustPositif Versi 3.1 — 13 Juli 2026

Sunat TrustPositif Release v3.1 adalah rilis hardening dan perbaikan bug dari v3.0. Versi ini tidak mengubah pipeline validasi domain, format output, atau sumber domain yang digunakan — seluruh perilaku produksi tetap identik dengan v3.0. Fokus utama v3.1 adalah memperkuat keandalan skrip melalui perbaikan ShellCheck dan penyempurnaan kode internal.

Sunat TrustPositif v3.1:

  • [BARU] Wget Primary: Menggunakan wget sebagai engine unduhan utama (fallback ke curl)
  • [BARU] User-Agent: Browser-like header pada wget & curl agar terhindar dari block Cloudflare HTTP 520
  • [BARU] Bypass SSL: Pengaturan default verifikasi SSL dilewati/bypass (CURL_INSECURE=1), dengan dokumentasi manual untuk di-enable
  • [FIX] OUTPUT_DIR: Menggunakan fallback default variable expansion agar foldernya bisa di-override via env variable untuk testing
  • [FIX] set -Eeuo pipefail: flag -E agar ERR trap mewarisi ke fungsi/subshell
  • [FIX] DOWNLOAD_RETRY_DELAY dideklarasikan baris terpisah (quoting bug fix)
  • [FIX] validate_source_url: grep -E diganti regex Bash native [[ =~ ]] (no fork)
  • [FIX] show_system_resources: array split SC2206 diganti read loop aman
  • [FIX] set_awk_command: pola A && B || C (SC2015) diganti if/else eksplisit
  • [FIX] force_cleanup: glob pattern disesuaikan dengan SCRIPT_BASENAME mktemp
  • [FIX] Pattern cleanup manual: sed diganti awk (escape '.' dan '-' benar)
  • [FIX] print_colored: \n pada printf agar output tidak menyatu saat redirect
  • [BARU] APT_UPDATED=0 guard: apt-get update hanya dijalankan sekali per sesi
  • [IMPV] Deklarasi warna: \033[ diganti $'\e[' (ANSI C quoting, lebih bersih)
  • [IMPV] echo -e diganti printf '%s\n' secara konsisten di seluruh fungsi output
  • [COMPAT] Semua perilaku default, output, dan pipeline tetap identik dengan v3.0

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.


🎯 Fungsi Utama

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.

⚙️ Alur Pemrosesan

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.
  • Jika ingin memakai mirror Alsyundawy sebagai input utama, aktifkan baris OPTIONAL SUNAT VERSION dengan mengganti nilai KOMINFO_URL.
  • Jika ingin memblokir DoH/DoT, aktifkan baris doh-onlydomains.txt secara manual.
  • Semua sumber tetap diproses melalui validasi domain, filter IPv4/IPv6, validasi TLD IANA, dan deduplikasi final.

Stargazers over time

Stargazers over time


🧹 Apa Yang Dimaksud “Sunat” Domain?

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.


✂️ Contoh Pemangkasan Prefix Umum

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.


🌐 Penyederhanaan Subdomain Berlebihan

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.


🎯 Tujuan Sunat Domain

Sunat domain bertujuan untuk:

  • Mengurangi entri yang tidak perlu.
  • Memperkecil ukuran file output.
  • Mengurangi duplikasi pola domain dan subdomain.
  • Menyaring domain yang rusak, invalid, atau tidak layak pakai.
  • Menghilangkan variasi hostname yang tidak perlu.
  • Menyederhanakan subdomain berlebihan menjadi domain utama.
  • Membuat hasil akhir lebih ringan untuk diproses DNS resolver.
  • Menyiapkan daftar domain agar lebih efektif digunakan sebagai DNS blacklist atau RPZ database.
  • Mendukung strategi pemblokiran berbasis wildcard domain, sehingga domain utama dan seluruh subdomain turunannya dapat diblokir lebih efektif.

📄 Format Output

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.


✅ Karakteristik Output

Output yang dihasilkan memiliki karakteristik berikut:

  • Satu domain per baris.
  • Tidak berisi alamat IPv4.
  • Tidak berisi alamat IPv6.
  • Tidak berisi komentar atau metadata yang tidak diperlukan.
  • Tidak berisi domain dengan TLD invalid.
  • Tidak berisi format domain rusak.
  • Tidak berisi entri duplikat.
  • Lebih ringkas karena prefix umum dapat dipangkas.
  • Lebih efisien karena subdomain berlebihan dapat disederhanakan menjadi domain utama.
  • Siap digunakan sebagai sumber DNS blacklist, RPZ database, resolver blocklist, atau feed filtering DNS.

🛡️ Penggunaan Paling Efektif: Wildcard Domain Blocking

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.


🚀 Ringkasan Singkat

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.


🇬🇧 Short English Description

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.


Waktu Proses & Eksekusi

[INFO] Waktu Mulai: 24 May 2026 - 19:54:13

[INFO] Durasi Total: 50 detik

image


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

DOKUMENTASI LENGKAP DAN PANDUAN PENGGUNAAN

📌 RINGKASAN PERBAIKAN DAN OPTIMASI SCRIPT

Script ini telah mengalami perbaikan dan optimasi menyeluruh untuk meningkatkan performa, keamanan, dan maintainability.

🚀 OPTIMASI PERFORMA

  • Chunk Size Dinamis: Ukuran chunk dihitung secara adaptif: 20000 + (NUM_CORES * 1000)
  • Pemrosesan AWK Dioptimalkan: Pre-compiled regex dan hash table O(1) untuk pemrosesan hingga 35.000 domain/detik
  • Resource Management: Pemanfaatan optimal semua core CPU (4-32 core) dan penggunaan memori konstan
  • Parallel Processing: GNU parallel dengan manajemen job stabil dan progress monitoring
  • Bypass SSL Aman: Mekanisme unduhan dengan --insecure untuk keandalan di lingkungan terbatas

🏗️ ARSITEKTUR PEMROSESAN

  1. Phase Unduhan: Download TLD IANA & Database Kominfo dengan bypass SSL.
  2. Phase Splitting: Membagi file domain menjadi chunk kecil berdasarkan sumber daya sistem.
  3. Phase Parallel: Memproses setiap chunk secara bersamaan menggunakan mawk (validasi RFC & TLD).
  4. Phase Merging: Menggabungkan hasil, deduplikasi (sort -u), dan pembersihan manual.
  5. Phase Reporting: Menampilkan statistik detail dan penggunaan sumber daya akhir.

🔒 PENINGKATAN KEAMANAN & RELIABILITAS

  • Dependency Checking: Validasi otomatis semua tool yang diperlukan
  • Error Recovery: Sistem retry dengan exponential backoff
  • Input Validation: Validasi ketat untuk semua input dan file
  • Safe File Handling: Penanganan file aman dengan proper locking
  • Process Management: Deteksi dan cleanup process zombie/orphan

🧹 PEMBERSIHAN & MANAJEMEN RESOURCE

  • Auto Cleanup: Pembersihan otomatis semua file temporary
  • Trap Handlers: Signal handling untuk cleanup saat interrupt
  • Memory Monitoring: Monitor penggunaan memori real-time
  • Zero Trace: Tidak meninggalkan jejak file setelah selesai
  • PID Management: Deteksi dan cleanup PID file lama otomatis

📊 PENINGKATAN MONITORING & LOGGING

  • Timestamped Logging: Log dengan timestamp dan level yang jelas
  • System Resource Monitoring: Monitor CPU, memory, dan disk usage
  • Progress Tracking: Progress bar untuk operasi parallel
  • Performance Metrics: Throughput dan statistik performa
  • Debug Mode: Mode troubleshooting dengan logging detail

📝 DOKUMENTASI & MAINTAINABILITY

  • Comprehensive Comments: Dokumentasi lengkap dalam Bahasa Indonesia
  • Modular Functions: Fungsi terorganisir dengan separation of concerns
  • Error Messages: Pesan error jelas dan actionable
  • Usage Examples: Contoh penggunaan dan troubleshooting
  • Version Control: Sistem versioning untuk tracking changes

➕ FITUR TAMBAHAN

  • Command Line Options: Berbagai opsi untuk maintenance dan debug
  • Configuration Management: Konfigurasi terpusat mudah diubah
  • Concurrent Safety: Thread-safe operations untuk parallel processing
  • Resource Optimization: Adaptive resource allocation
  • Status Monitoring: Real-time monitoring status script
  • Multi-Source Input v3.0: Penggabungan beberapa sumber domain melalui TRUSTPOSITIF_URLS
  • Cron-Friendly Environment v3.0: PATH, locale, dan strict mode dibuat eksplisit untuk server/cron

⚡ CARA PENGGUNAAN SCRIPT

🔧 Penggunaan Dasar

bash sunat-trustpositif.sh

📌 Opsi Command Line

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

Troubleshooting Umum

  1. Script terjebak/hang

    bash sunat-trustpositif.sh --force-cleanup

    Kemudian jalankan kembali normal.

  2. Error: "Script sudah berjalan"

    bash sunat-trustpositif.sh --status
    bash sunat-trustpositif.sh --force-cleanup
    bash sunat-trustpositif.sh
  3. Debugging/Troubleshoot

    bash sunat-trustpositif.sh --debug
  4. Memori tidak cukup

    • Script otomatis menyesuaikan chunk size.
    • Tingkatkan swap atau kurangi aplikasi lain.
  5. Download gagal

    • Script retry otomatis 3x dengan delay.
    • Periksa koneksi internet/firewall.
    • Gunakan --insecure (default aktif) untuk bypass sertifikat SSL yang bermasalah.
  6. I/O Bottleneck

    • Gunakan SSD untuk TEMP_DIR jika memproses >1M domain.
    • Pastikan RAM cukup agar sistem tidak melakukan berlebihan swap.

🖥️ INFORMASI SISTEM REQUIREMENTS

Minimum System Requirements

  • OS: Linux (Ubuntu/Debian/CentOS/RHEL)
  • RAM: 512MB (Rekomendasi: 2GB+)
  • Storage: 100MB free space
  • CPU: 1 core (Optimal: 4+ cores)
  • Network: Internet connection

Required Packages

  • bash (4.0+)
  • curl
  • mawk atau gawk
  • parallel (GNU parallel)
  • coreutils (sort, uniq, wc, etc.)
  • procps (ps, kill, etc.)

Install Dependencies

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

⚙️ KONFIGURASI PERFORMA DAN TUNING

Automatic Performance Tuning

Script otomatis menyesuaikan konfigurasi berdasarkan:

  • Jumlah CPU cores
  • Memory yang tersedia
  • Load average sistem
  • Ruang disk

Manual Tuning

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

Performance Benchmarks

Sistem referensi: 8 core, 16GB RAM, SSD

Throughput

25.000 - 35.000 domain/detik

Dataset 1.5M

Selesai dalam 1.5 - 2.5 menit

Memori

Stabil di 300-600MB (constant profiling)

CPU

95-100% utilization di semua core yang dialokasikan


📂 STRUKTUR OUTPUT DAN FILE HASIL

Output Utama

/var/www/html/trustpositif/sunat-trustpositif.txt
  • Satu domain per baris
  • UTF-8 encoding
  • Alphabetical order sorting
  • Valid TLD resmi IANA

File Temporary

  • /tmp/sunat-trustpositif.XXXXXX/
  • chunk_*, *.processed, iana_tlds.txt, script.pid

Log Output

  • [INFO] : Informasi umum
  • [OK] : Operasi berhasil
  • [WARN] : Peringatan non-fatal
  • [ERR] : Error penting
  • [PROC] : Status progress

🔐 KEAMANAN DAN BEST PRACTICES

Security Measures

  • Input sanitization
  • Path traversal protection
  • Resource limits
  • Atomic file operations
  • Process isolation
  • Clean exit

Recommended Practices

  • Jalankan dengan user non-root
  • Set file permissions dengan benar
  • Backup file penting sebelum run
  • Monitor log untuk deteksi anomali

File Permissions

chmod 755 sunat-trustpositif.sh
chmod 755 /var/www/html/trustpositif/
chown user:group /var/www/html/trustpositif/

📡 MONITORING DAN MAINTENANCE

Monitoring Real-time

  • CPU usage & load average
  • Memory consumption
  • Disk space usage
  • Processing throughput
  • Error rate & retry statistics

Log Analysis

bash sunat-trustpositif.sh --debug 2>&1 | tee debug.log

Maintenance Tasks

  • Harian: Pemantauan otomatis hasil output di ${OUTPUT_DIR}.
  • Mingguan: Eksekusi pembersihan paksa (--force-cleanup) untuk reset state.
  • Bulanan: Update script dan dependensi sistem (apt upgrade).
  • Tahunan: Audit komprehensif alur pemrosesan dan keamanan.

Backup Strategy

  • Automated Copy: cp ${OUTPUT}.txt ${BACKUP}/$(date +%Y%m%d).txt
  • Retention: Simpan 3-5 versi historical terakhir.
  • Cleanup: Hapus backup yang lebih tua dari 30 hari secara otomatis.

FAQ DAN TROUBLESHOOTING LANJUTAN

Q: 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).


📌 Catatan Perubahan dan Riwayat Versi


VERSI 3.1 — 13 Juli 2026 — Hardening, Bug Fix, Wget/Curl Opt, Bypass SSL & ShellCheck Pass

  • [BARU] Wget Primary: Menggunakan wget sebagai engine unduhan utama (fallback ke curl)
  • [BARU] User-Agent: Browser-like header pada wget & curl agar terhindar dari block Cloudflare HTTP 520
  • [BARU] Bypass SSL: Pengaturan default verifikasi SSL dilewati/bypass (CURL_INSECURE=1), dengan dokumentasi manual untuk di-enable
  • [FIX] OUTPUT_DIR: Menggunakan fallback default variable expansion agar foldernya bisa di-override via env variable untuk testing
  • [FIX] set -Eeuo pipefail: flag -E agar ERR trap mewarisi ke fungsi/subshell
  • [FIX] DOWNLOAD_RETRY_DELAY dideklarasikan baris terpisah (quoting bug fix)
  • [FIX] validate_source_url: grep -E diganti regex Bash native [[ =~ ]] (no fork)
  • [FIX] show_system_resources: array split SC2206 diganti read loop aman
  • [FIX] set_awk_command: pola A && B || C (SC2015) diganti if/else eksplisit
  • [FIX] force_cleanup: glob pattern disesuaikan dengan SCRIPT_BASENAME mktemp
  • [FIX] Pattern cleanup manual: sed diganti awk (escape '.' dan '-' benar)
  • [FIX] print_colored: \n pada printf agar output tidak menyatu saat redirect
  • [BARU] APT_UPDATED=0 guard: apt-get update hanya dijalankan sekali per sesi
  • [IMPV] Deklarasi warna: \033[ diganti $'\e[' (ANSI C quoting, lebih bersih)
  • [IMPV] echo -e diganti printf '%s\n' secara konsisten di seluruh fungsi output
  • [COMPAT] Semua perilaku default, output, dan pipeline tetap identik dengan v3.0

VERSI 3.0 — 03 Juni 2026 — Multi-Source Domain Input, Cron-Friendly Runtime & ShellCheck Cleanup

  • [BARU] Menambahkan TRUSTPOSITIF_URLS sebagai array sumber domain aktif agar script dapat menggabungkan TrustPositif/Komdigi, StevenBlack, Hagezi, dan daftar tambahan Alsyundawy.
  • [COMPAT] KOMINFO_URL tetap dipertahankan sebagai variabel utama agar konfigurasi lama, cron lama, dan override manual tidak rusak.
  • [BARU] Menambahkan opsi komentar OPTIONAL SUNAT VERSION untuk memakai mirror tlds-valid-domains_v2.txt bila diperlukan.
  • [BARU] Menambahkan opsi komentar untuk mengaktifkan daftar DoH/DoT dari Hagezi bila administrator ingin memblokir hostname DNS over HTTPS/DNS over TLS.
  • [MOD] Mengubah nama file raw input menjadi domain_blacklist agar lebih sesuai dengan fungsi multi-source blacklist.
  • [HARDENING] Menambahkan 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.
  • [FIX] Memperbaiki warning ShellCheck SC2034 dengan memakai KOMINFO_URL langsung di dalam array TRUSTPOSITIF_URLS, bukan mematikan warning.
  • [FIX] Memperbaiki warning ShellCheck SC2015 dengan mengganti pola A && B || true menjadi blok if yang lebih aman dan eksplisit.
  • [HARDENING] Tiap sumber domain diunduh dan divalidasi agar file kosong atau HTML/error page tidak masuk ke pipeline validasi domain.
  • [COMPAT] Engine validasi domain, validasi TLD IANA, filter IPv4/IPv6, deduplikasi, cleanup manual, dan output final tetap mengikuti alur v2.9 agar tidak merusak produksi yang sudah berjalan.
  • [DOC] README, docnote, komentar, tutorial singkat, dan changelog diperbarui khusus untuk release v3.0.

SELAMAT ULANG TAHUN WAHAI TAURUS MEI !!! 🥳🥳🥳🥳

VERSI 2.9 — 24 Mei 2026 — Output-Compatible Optimization, AWK Fallback & Runtime Hardening

  • [PRINSIP] v2.9 adalah optimasi internal dari v2.8; hasil default tetap dijaga kompatibel dengan pola produksi v2.8 agar jumlah baris, ukuran output, dan pola manual cleanup tidak berubah drastis.
  • [COMPAT] Default CUT_SUBDOMAINS=0; script tidak melakukan parent-domain collapse secara agresif. Mode agresif hanya aktif jika user menjalankan CUT_SUBDOMAINS=1 secara eksplisit.
  • [COMPAT] Sanitasi prefix legacy tetap dipertahankan sesuai perilaku v2.8, terutama pemotongan prefix umum seperti www., mail., 1., dan 0..
  • [COMPAT] Manual cleanup legacy tetap memakai pola sed + grep -v -f seperti v2.8 supaya domain/subdomain turunan dari daftar manual tetap tersaring mengikuti hasil produksi sebelumnya.
  • [COMPAT] Formula performa default tetap mengikuti gaya v2.8: NUM_CORES dari nproc dengan batas aman 4–32 core dan CHUNK_SIZE=20000+(NUM_CORES*1000).
  • [OPTIMASI] AWK engine dibuat konsisten melalui AWK_CMD dengan prioritas deteksi mawk -> gawk -> awk, serta dapat dioverride manual oleh user.
  • [OPTIMASI] Jika AWK belum tersedia, script mencoba instalasi otomatis sesuai package manager sistem: apt/apt-get, dnf, yum, zypper, atau apk.
  • [OPTIMASI] Semua proses normalisasi TLD, validasi domain, dan helper AWK memakai satu AWK engine yang sama sehingga tidak lagi bercampur antara mawk, gawk, dan awk di lingkungan Debian/Ubuntu/RHEL.
  • [HARDENING] Proses unduhan diperkuat dengan curl -f/wget fallback, retry, timeout, validasi file kosong, dan deteksi HTML/error page.
  • [HARDENING] Output final dibuat atomik melalui temporary output lalu mv ke target akhir agar file produksi tidak rusak/setengah jadi saat gagal.
  • [HARDENING] Trap EXIT/INT/TERM diperbaiki agar cleanup tetap berjalan dan exit code benar dipertahankan, termasuk 130 untuk Ctrl+C dan 143 untuk TERM.
  • [HARDENING] --force-cleanup dibuat lebih aman dan tidak lagi bergantung pada pkill brutal yang berisiko membunuh proses lain.
  • [FIX] Tampilan status RAM diperbaiki agar Total RAM dan Tersedia tidak kosong pada Debian/Ubuntu tertentu.
  • [FIX] Duplikasi assignment dan inkonsistensi kecil pada blok AWK dibersihkan tanpa mengubah hasil validasi domain default.
  • [DOC] Header, banner, --help, docnote, dan changelog diperbarui agar jelas bahwa v2.9 mengoptimalkan mesin proses, bukan mengganti format hasil produksi.
  • [DITINGKATKAN] Penyaringan 91.000 domain

VERSI 2.8 — 26 Desember 2025 — Optimasi Komprehensif & Perbaikan ShellCheck

  • [FIX] Semua peringatan ShellCheck diselesaikan (SC2155, SC2046, SC2086, SC2034)
  • [OPTIMASI] Konfigurasi performa dinamis dengan NUM_CORES adaptif (4–32 core)
  • [OPTIMASI] Penyesuaian CHUNK_SIZE otomatis sesuai kapasitas sistem
  • [FIX] Mekanisme pembersihan file sementara yang lebih komprehensif dan aman
  • [ENHANCE] Banner ASCII Art dengan alignment presisi dan informasi versi lengkap
  • [FIX] Penanganan error diperketat pada setiap fase kritis proses
  • [OPTIMASI] Penggunaan memori konstan melalui mekanisme smart chunking
  • [SECURITY] Validasi input dan sanitasi data diperketat untuk mencegah data invalid
  • [FIX] Perbaikan sintaks MAWK kritis untuk validasi domain RFC-compliant
  • [DOC] Dokumentasi lengkap dalam Bahasa Indonesia dengan contoh penggunaan praktis

VERSI 2.7 — 23 November 2025 — Optimization & Fixes

  • [BARU] Opsi baris perintah (--help, --force-cleanup, --version)
  • [FIX] Perbaikan sintaks fatal pada MAWK
  • [FIX] Mekanisme unduhan dengan Bypass SSL (--insecure) untuk keandalan tinggi
  • [FIX] Filter IPv6 yang ditingkatkan untuk mencegah kebocoran alamat IP
  • [MOD] Integrasi dokumentasi lengkap ke dalam perintah --help
  • [MOD] Optimasi struktur kode untuk stabilitas eksekusi
  • [DITINGKATKAN] Penyaringan 95.000 domain

VERSI 2.5 ( Agustus 2025 ) Penulisan Ulang Lengkap

  • [DITINGKATKAN] Penyaringan hingga 45.000 domain
  • [DITINGKATKAN] Penyunyatan subdomain www dan mail

VERSI 2.2 ( 22 Agustus 2025 ) Penulisan Ulang Lengkap

  • [BARU] Penanganan error yang ditingkatkan dan mekanisme pemulihan
  • [BARU] Pemantauan performa dan statistik detail
  • [BARU] Pemantauan sumber daya sistem komprehensif
  • [BARU] Validasi TLD berdasarkan IANA & RFC
  • [DITINGKATKAN] Penyaringan 35.000 domain
  • [DITINGKATKAN] Efisiensi pemrosesan paralel dengan GNU parallel
  • [DITINGKATKAN] Optimasi penggunaan memori dengan chunking cerdas
  • [DITINGKATKAN] Penanganan sinyal dan shutdown yang anggun
  • [DITINGKATKAN] Validasi domain canggih dengan optimasi AWK
  • [DOCS] Dokumentasi ekstensif dan panduan pemecahan masalah

VERSI 1.8 ( 05 Juni 2025 ) Rilis Lanjutan

  • Perapihan kode agar mudah di-maintenance
  • Penyaringan 2.000 domain
  • Tampilan konsol berwarna dan informatif
  • Pembaruan kode yang error

VERSI 1.0 — 07 April 2024 — Rilis Awal

  • Fungsionalitas validasi domain dasar
  • Pengecekan TLD terhadap daftar resmi IANA
  • Implementasi pemrosesan paralel sederhana
  • Pembersihan dasar dan manajemen file sementara
  • Penyaringan dan deduplikasi domain inti
  • Output konsol sederhana dengan indikator progres dasar

📜 Kontribusi dan Hak Cipta

Hak Cipta © 2024–2026 HARRY DERTIN SUTISNA ALSYUNDAWY Script ini disediakan "SEBAGAIMANA ADANYA". Penggunaan sepenuhnya menjadi risiko pengguna.

KONTRIBUSI DAN SUPPORT

Author: Harry Dertin Sutisna Alsyundawy Email: harry@alsyundawy.com GitHub: https://github.com/alsyundawy

Kontribusi

  • Bug reports & feature requests welcome
  • Pull requests harus include tests
  • Update dokumentasi untuk perubahan

Support

  • Baca dokumentasi ini
  • Gunakan --debug
  • Review system requirements

Jika Anda merasa terbantu dan ingin mendukung proyek ini, pertimbangkan untuk berdonasi melalui https://www.paypal.me/alsyundawy atau https://ko-fi.com/alsyundawy. Terima kasih atas dukungannya!

Jika Anda merasa terbantu dan ingin mendukung proyek ini, pertimbangkan untuk berdonasi melalui QRIS. Terima kasih atas dukungannya!

image


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. 🤣

✨ANDA MEMANG LUAR BIASA | HARRY DS ALSYUNDAWY | KAUM REBAHAN GARIS KERAS & MILITAN✨


COPYRIGHT DAN LICENSE

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...

Lisensi: MIT License


Perhatian, domain list hanya bisa digunakan untuk wilcard saja

Alt

About

Validates domain lists against official TLDs. Downloads, cleans, and processes domain data trustpositif.

Topics

Resources

License

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages