Pi-Hole v6.0 Released

This is a major version release, and they’ve changed a lot (see below). The web pages show some additional information in the left shortcuts, and they’ve changed to their own web server, so you’re asked to disable lighttpd if you don’t use it for anything else. If you’re not running Pi-Hole DNS/Unbound servers on your home network, you should investigate it as it is a tremendous project and extends ad blocking to all devices on your home network, not to mention blocking telemetry and malware sites as well (you can really blocking by list or manually). And shout out to ham radio operator DL6ER, Dominik, who is listed below on a lot of the updates.

https://github.com/pi-hole/pi-hole/releases/tag/v6.0


What’s Changed

  • Remove option to set static IP address if DHCPCD is installed by @yubiuser in #5111
  • Do not remove -all|exact when not surrounded by space in query.sh by @yubiuser in #5300
  • Add code to remove old lighttpd config files left over from v5. by @PromoFaux in #5314
  • Switch to new branch name for FTL v6 development by @PromoFaux in #5319
  • Set new gravity database version to 16 by @PromoFaux in #5328
  • Add /var/log/pihole/webserver.log to the logrotate scripts by @DL6ER in #5329
  • If ${USER} variable is blank, then populate it with whoami by @PromoFaux in #5341
  • Remove webpage.sh by @yubiuser in #5357
  • Remove fake user agent when downloading adlist by @yubiuser in #5367
  • Ignore ABP style entries in debug log dig test by @yubiuser in #5382
  • Ensure pihole-FTL can write to all files in /etc/pihole, /run/pihole and /var/log/pihole by @yubiuser in #5356
  • Add antigravity support to gravity by @DL6ER in #5330
  • Some verbiage change to outputs (plus a couple of comments) by @PromoFaux in #5406
  • Disable checkout function for (official) docker containers by @PromoFaux in #5416
  • Allow pihole to access subdirs in /etc/pihole by @yubiuser in #5427
  • Remove Chronometer by @yubiuser in #5423
  • Set owner of gravity output files to pihole by @yubiuser in #5419
  • Update query.sh to use FTL’s API instead of directly interacting with the database by @yubiuser in #5361
  • Add a final message to gravity by @rdwebdesign in #5441
  • Avoid printing getFTLConfigValue return in statusFunc() by @rdwebdesign in #5442
  • Logrotate config file needs to be owned by root by @yubiuser in #5444
  • Remove temp dir created when downloading FTL by @yubiuser in #5429
  • BREAKING Drop support for ancient ARMv4 and ARMv5 by @DL6ER in #5445
  • Fix gravity swapping by @DL6ER in #5455
  • Fix and simplify binary download by @DL6ER in #5451
  • Use suffixed temp file by @yubiuser in #5457
  • Tweak Pi-hole’s debug facility for v6 by @DL6ER in #5461
  • Remove idn2 as punycode conversion is handled by FTL by @yubiuser in #5468
  • Start counting at postion 1 by @yubiuser in #5470
  • Check for valid OS via IPv4 and IPv6 by @yubiuser in #5305
  • When setting a blank password, use webserver.api.password instead of webserver.api.pwhash by @PromoFaux in #5465
  • Tweak help text of pihole setpassword by @yubiuser in #5476
  • pihole -d: Include pihole.toml only once by @DL6ER in #5478
  • Move custom.list to /hosts/custom.list by @yubiuser in #5488
  • Improve v6 debug log and remove leftovers by @yubiuser in #5481
  • Support special webserver.port ports ending in “s” (secure) and “r” (redirect) by @DL6ER in #5499
  • Use files.gravity_tmp as temporary directory for the intermediate lists by @DL6ER in #5504
  • Treat FTL return data as strings by @yubiuser in #5509
  • Bash completion by @yubiuser in #5516
  • Remove obsolete sudo file by @yubiuser in #5514
  • Simplify pihole -v by @yubiuser in #5517
  • Add “-ni” to all sqlite3 invocations by @DL6ER in #5518
  • pihole -d: Fix gateway ping if it is a LL address by @DL6ER in #5527
  • Fix failing tests in development-v6 branch by @PromoFaux in #5542
  • Do not store remote version in versions file if on custom branch by @DL6ER in #5549
  • Use 204 return code for deleted sessions by @yubiuser in #5541
  • Drop Fedora 36 and add Fedora 39 to the test suite by @yubiuser in #5482
  • Test ftl.pi-hole.net availability by @DL6ER in #5563
  • Make IDs of anti-/gravity lists available in vw_(anti)gravity by @DL6ER in #5526
  • Remove local.list and openVPN traces by @yubiuser in #5480
  • Fix gravity by @DL6ER in #5573
  • Allow adlist duplicates by @DL6ER in #5572
  • Highlight “### CHANGED” strings in the debug log of pihole.toml by @DL6ER in #5601
  • Verify remote FTL checksum by @DL6ER in #5603
  • Fix edge-case where an adlist domain is blocked by @DL6ER in #5571
  • Improve changed binary message during update process by @DL6ER in #5621
  • Only use local files (file://) when they have explicit permissions a+r by @DL6ER in #5622
  • Add Ubuntu 24.04 and Fedora 40, remove Fedora 38 by @yubiuser in #5657
  • Also check for IPv6 address for configured DNS servers by @DL6ER in #5560
  • Migrate dnsmasq config files by @DL6ER in #5479
  • Fix version check for release Docker images by @jacklul in #5667
  • Add CAP_SYS_TIME to FTL’s ambient capabilities by @DL6ER in #5676
  • Remove CentOS8 from test suite by @yubiuser in #5682
  • Add pytest-clarity to test environment to improve error log output by @yubiuser in #5692
  • Add protocol validation when downloading blocklist from URL by @DL6ER in #5698
  • Fix minor spelling mistake by @eltociear in #5704
  • Finish core v6 implementation by @DL6ER in #5689
  • Remove obsolet getFTLPIDFile() by @yubiuser in #5710
  • Remove obsolet files and log file symlink code by @yubiuser in #5711
  • Merge development > development-v6 by @yubiuser in #5725
  • [fix] [v6] typo in bash-completion allow-regex option by @allendema in #5729
  • Fix setting query logging and privacy level by @yubiuser in #5724
  • Add missing creation of table antigravity in migration script 16 to 17 by @PromoFaux in #5737
  • Add pihole api [endpoint] callback suitable for local API requests by @DL6ER in #5736
  • Make the help text of “pihole checkout [what] [branch]” more colorful by @DL6ER in #5734
  • Update existing logrotate files to inlcude webserver.log by @yubiuser in #5738
  • Disable SELINUX on CentOS 9 test dockerfile by @yubiuser in #5743
  • Fix pihole status on not-ready states by @DL6ER in #5747
  • Disable SELINUX on CentOS 9 test dockerfile v5 by @yubiuser in #5744
  • Resolve merge conflicts (again) by @yubiuser in #5745
  • Remove obsolet Debian 10 by @yubiuser in #5707
  • Wait after restarting FTL before trying to check version by @DL6ER in #5613
  • Tweak/gravity dns by @yubiuser in #5752
  • Fix risk of popd without a pushd by @SkyLined in #5701
  • Account for renaming of devel branch on web repo by @yubiuser in #5753
  • Fix wrong message being displayed while waiting for the DNS by @jacklul in #5757
  • Add /etc/pihole/dnsmasq.conf to debug log (stripped-down version) by @DL6ER in #5740
  • Return early during v6 migration if migration dir exists by @yubiuser in #5766
  • Revert “Return early during v6 migration if migration dir exists” by @yubiuser in #5768
  • Add fallback option for OS check without hard-coded nameserver by @yubiuser in #5751
  • Remove lines containing Adguard JavaScript rules from adlists by @yubiuser in #5754
  • Add database optimization and gravity timing by @DL6ER in #5773
  • Grouped common dependencies of distros by @WouterServaes in #5762
  • Fix removing old man page by @yubiuser in #5789
  • Show version information after a web update by @yubiuser in #5788
  • Remove the restartdns functionality and promote the reloaddns functions by @PromoFaux in #5780
  • Remove restartdns: Redux by @PromoFaux in #5791
  • Add color by @yubiuser in #5798
  • Use pihole.toml to decide if installer runs on an update by @yubiuser in #5790
  • Fix gavity version 19 by @yubiuser in #5801
  • Do not print FTL update check details on pihole -up by @yubiuser in #5800
  • Exit 1 on failure by @yubiuser in #5803
  • Improved error message for invalid protocol in adlist download by @Seva41 in #5806
  • Fix errors on fresh installations while setting privacy levels and query logging due to absence of pihole.toml by @yubiuser in #5799
  • Add Fedora 41 and remove Fedora 39 from tests by @rdwebdesign in #5813
  • Remove remaining traces of audit log by @DL6ER in #5817
  • Fix possible gravity permissions issue by @DL6ER in #5819
  • Fix empty adlists by @DL6ER in #5821
  • Remove Ubuntu 23 tests, it is EOL by @DL6ER in #5822
  • Fix ARP flush command by @DL6ER in #5823
  • move the sourcing of utils.sh outside of installPihole by @PromoFaux in #5825
  • Remove no-longer-needed utils by @PromoFaux in #5826
  • Install dependencies by creating a meta package on-the-fly by @yubiuser in #5785
  • Fix rare case when apt and rpm package managers are found by @yubiuser in #5827
  • Improve v6 user output by @yubiuser in #5829
  • Improve dependency package output by @yubiuser in #5828
  • Fix v5 -> v6 update by @yubiuser in #5832
  • Speedup api response handling by @yubiuser in #5833
  • Exit early when neither service nor systemctl commands are available by @DL6ER in #5834
  • Disable lighttpd if found by @DL6ER in #5835
  • Remove now unused function test_dpkg_lock() by @yubiuser in #5848
  • Improve lighttpd disabling by @DL6ER in #5849
  • Explicitly migrate from v5 to v6 by @DL6ER in #5830
  • Remove unused code from debug log and skip some tests inside containers by @rdwebdesign in #5854
  • Gravity database resilience by @DL6ER in #5818
  • Use a different method to identify if a gravity restore succeeded by @DL6ER in #5868
  • Fix counting of domains in the gravity summary by @DL6ER in #5881
  • Gravity: Use ETags by @DL6ER in #5867
  • Move gravity list cache into dedicated directory by @DL6ER in #5869
  • Show only enabled domains/regex in the final gravity message by @DL6ER in #5884
  • Remove outdated dns-servers.conf by @yubiuser in #5883
  • Add call to os_check in the update script by @PromoFaux in #5845
  • Decide if the content was changed before passing over to FTL by @DL6ER in #5872
  • installer: use a drop-in to disable systemd-resolved stub listener by @enr0n in #5885
  • Amend warning on gravity tree build failure by @DL6ER in #5888
  • Fix database integrity check in debug log by @yubiuser in #5889
  • Pi-hole core v6.0.0 by @PromoFaux in #5842

New Contributors

Full Changelog: v5.18.4…v6.0