#!/bin/bash # Filename: piscript2.sh # Updated for Pi-hole v5.0+ and POSIX compatibility # v1.9: Added armbian-config and separate yt-dlp install # Function to pause and wait for user input pause() { echo "" echo -n "Press [Enter] to return to menu..." read discard } while true; do clear echo "====================================================================" echo " PI SCRIPTS - Modernized Management Suite (v1.9) " echo "====================================================================" echo "" echo "--- [ SYSTEM & INSTALLATION ] --------------------------------------" echo " 1) Install Pi-hole 6) Install Production Apps 11) Network Manager" echo " 2) Pi-hole Reconfigure 7) Install yt-dlp (Pip) 12) Armbian Config" echo " 3) Pi-hole Status 8) Check Versions 13) Display Temp" echo " 4) Uninstall Pi-hole 9) System Update (APT) 14) Neofetch" echo " 5) Config VNC/FTP 10) Restart Network" echo "" echo "--- [ PI-HOLE MANAGEMENT & FILTERING ] -----------------------------" echo " 15) Add Whitelist 22) Export Whitelist 29) Enable Blocking" echo " 16) Add Blacklist 23) Export Blacklist 30) Disable 30m" echo " 17) Add Regex Blacklist 24) Remove White Item 31) Disable 180m" echo " 18) Add Whitelist Regex 25) Remove Black Item 32) Update Gravity" echo " 19) Add Wildcard Block 26) List Local DNS 33) Restart DNS" echo " 20) Add Local DNS Rec 27) Edit Local DNS 34) Flush Logs" echo " 21) Blacklist Custom 28) Tail Pi-hole Logs 35) Checkout Dev" echo "" echo "--- [ ADMIN & EXTERNAL TOOLS ] -------------------------------------" echo " 36) Admin Password Set 39) Teleport Backup 42) Export White->SDF" echo " 37) Set Admin Email 40) SCP Script to SDF 43) Export Black->SDF" echo " 38) Interface Options 41) Flush Network Tab" echo " q) QUIT" echo "" echo -n "Select an option: " read Select case $Select in # --- SYSTEM & INSTALLATION --- 1) curl -sSL https://install.pi-hole.net | bash; pause ;; 2) pihole reconfigure; pause ;; 3) pihole status; pause ;; 4) pihole uninstall; pause ;; 5) sudo systemctl enable --now vsftpd; vncserver-virtual -geometry 1920x1080; pause ;; 6) echo "Installing Production Apps (Vokoscreen, OpenShot)..."; sudo apt-get update && sudo apt-get install -y vsftpd ccrypt python3-pip bzip2 bleachbit \ curl vim mosh neofetch vokoscreen openshot; pause ;; 7) echo "Installing/Updating yt-dlp via Pip..."; pip3 install -U yt-dlp; pause ;; 8) pihole -v; pause ;; 9) sudo apt-get update && sudo apt-get upgrade -y; pause ;; 10) sudo systemctl restart NetworkManager; pause ;; 11) sudo nmtui ;; 12) sudo armbian-config ;; 13) CELSIUS=$(($(cat /sys/class/thermal/thermal_zone0/temp) / 1000)) FAHRENHEIT=$(( (CELSIUS * 9/5) + 32 )) echo "------------------------------------" echo "CPU Temperature: ${CELSIUS} C / ${FAHRENHEIT} F" echo "------------------------------------" pause ;; 14) neofetch; pause ;; # --- PI-HOLE MANAGEMENT & FILTERING --- 15) echo -n "Enter domain to whitelist: "; read addr; pihole -w "$addr"; pause ;; 16) echo -n "Enter domain to blacklist: "; read addr; pihole -b "$addr"; pause ;; 17) echo -n "Enter regex pattern: "; read regex; pihole -b --regex "$regex"; pause ;; 18) echo -n "Enter regex for whitelist: "; read reg; pihole -w --regex "$reg"; pause ;; 19) echo -n "Enter domain for Wildcard (regex): "; read dom; pihole --regex "$dom"; pause ;; 20) echo "Format: IP Domain (e.g., 192.168.1.50 mydevice.local)"; read entry; echo "$entry" | sudo tee -a /etc/pihole/custom.list; pihole restartdns reload; pause ;; 21) echo "Processing custom blacklist domains..."; domains="americascardroom.eu best2020-games-web1.com bitingcomposed.com bongacams.com cam4.com championtest.top cloudfront.net doubleclick.net fhyn.vip financesurvey24.top findurlovemate.net fuckaneighbor.com gobigmoney.su gobigmoney.us lifestoryfeed.com lifetimewindowsaz.com mkkq.xyz myemailtracking.com myprotrick.com nutaku.net oneclickfeed.com qualifiedroofingsurvey.com r.rips.icu realtime-bid samqaicongen.com spedhousing.com spedhowusing.com ssionsupre.fun syndication.exdynsrv.com thenewfling.com theonlygames.com track.ecampaignstats.com track.localiqtracking.com track.localliqtracking.com tryxxx.life wmgf.art www.americascardroom.eu www.factsherald.com www.hornekia.com xml.additionalmedia.com xml.realtime-bid.com 239.237.117.34 102.115.120.34 a.xyz b.xyz c.xyz d.xyz e.xyz f.xyz g.xyz h.xyz i.xyz j.xyz k.xyz l.xyz m.xyz n.xyz o.xyz p.xyz r.xyz s.xyz t.xyz u.xyz v.xyz w.xyz x.xyz y.xyz z.xyz 0.xyz 1.xyz 2.xyz 3.xyz 4.xyz 5.xyz 6.xyz 7.xyz 8.xyz 9.xyz granarybroughtfun.com www.casho.la boredhippos.com gossipcapital.com ippsa college-investor thecollege-investor.com incues.com mypoweroffer.com wittystar.com" for d in $domains; do pihole -b "$d"; done; echo "Done."; pause ;; 22) echo "Exporting Whitelist to whitelist_export.txt..."; pihole-FTL sqlite3 /etc/pihole/gravity.db "SELECT domain FROM domainlist WHERE enabled = 1 AND type IN (0, 2);" > whitelist_export.txt; echo "Complete. File: whitelist_export.txt"; pause ;; 23) echo "Exporting Blacklist to blacklist_export.txt..."; pihole-FTL sqlite3 /etc/pihole/gravity.db "SELECT domain FROM domainlist WHERE enabled = 1 AND type IN (1, 3);" > blacklist_export.txt; echo "Complete. File: blacklist_export.txt"; pause ;; 24) echo -n "Enter domain to remove from Whitelist: "; read item; pihole -w -d "$item"; pause ;; 25) echo -n "Enter domain to remove from Blacklist: "; read item; pihole -b -d "$item"; pause ;; 26) cat /etc/pihole/custom.list; pause ;; 27) sudo nano /etc/pihole/custom.list; pihole restartdns reload; pause ;; 28) pihole -t ;; 29) pihole enable; pause ;; 30) pihole disable 30m; pause ;; 31) pihole disable 180m; pause ;; 32) pihole -g; pause ;; 33) pihole restartdns reload; pause ;; 34) pihole flush; pause ;; 35) pihole checkout dev; pause ;; # --- ADMIN & EXTERNAL TOOLS --- 36) echo -n "Enter new web password: "; read pw; pihole -a -p "$pw"; pause ;; 37) echo -n "Enter admin email: "; read email; pihole -a email "$email"; pause ;; 38) pihole -a interface local; pause ;; 39) echo "Creating teleport backup..."; pihole -a -c; pause ;; 40) scp "piscript2.sh" joelz@sdf.org:~/gopher/save/; pause ;; 41) pihole arpflush; pause ;; 42) pihole-FTL sqlite3 /etc/pihole/gravity.db "SELECT domain FROM domainlist WHERE enabled = 1 AND type IN (0, 2);" > whitelist.md; scp whitelist.md joelz@sdf.org:~/gopher/save/; pause ;; 43) pihole-FTL sqlite3 /etc/pihole/gravity.db "SELECT domain FROM domainlist WHERE enabled = 1 AND type IN (1, 3);" > blacklist.md; scp blacklist.md joelz@sdf.org:~/gopher/save/; pause ;; q) clear; exit 0 ;; *) echo "Invalid option: $Select"; sleep 1 ;; esac done