Pi-hole FTL v6.0.4, Web v6.0.2 and Core v6.0.5 Released!

Pi-hole FTL v6.0.4, Web v6.0.2 and Core v6.0.5 Released!

As always, please read through the changelogs before updating with pihole -up. (A new tag for docker image will follow shortly!)

Don’t forget, you can use Teleporter to export your configuration. It can be found under the settings menu of the web interface or on the command line with pihole-FTL --teleporter 

Another busy week of ironing out some post-release bug fixes, details of which can be found below! We’ve actually pushed a couple of smaller releases out since the last post, so we’ve included those notes in this post, too.

Notable Changes/Fixes

High RAM / CPU Usage during Gravity runs

During the development of Pi-hole v6.0, we followed a blog post describing that increasing the number of allowed workers as well as changing the default location for temporary objects from always-on-disk to always-in-memory is key to increased performance without doing any real measurements on this – at least it did not make things slower.

Nothing unexpected showed up during the extended v6.0 beta period but now we have #2194 and friends describing a massively increased memory and CPU usage on devices that were always on the edge of being still feasible for Pi-hole: Using millions of lists on devices that merely have 256 MB RAM for the entire system. See #2321 for details on how we have sought to fix these issues.

Webserver / Interface Slowness

A number of users reported a sluggish interface, which we suggested a potential workaround for in the last post. When we first released V6, we set the number of threads the webserver used to a conservative n -1, where n is the number of CPU cores on the device running Pi-hole. What this resulted in, was devices with 2 core CPUs only being allocated 1 thread. The reason for this default was due to a few reports during the beta test of the webserver not only becoming unresponsive, but the entire system becoming locked up to the point of not even being able to SSH into it!

With the help of a wider user base, and people making changes to the webserver.threads setting on their devices, we have revaluated that default. PR #2305 sets the default number of threads to 50, and #2326 aims to prevent the webserver from taking over the system under heavy load.

Crashing on Synology Devices

A number of users running on Synology devices have been unable to set a web interface password without the web server crashing. Thanks to everyone reporting this issue, we were able narrow it down to being due to issues with older kernels being built without support for getRandom()

Fortunately, DL6ER is a wizard. #2300 fixes this by adding two fallback layers in cases where secure (hardware) randomness is not available.

The rest of the changes are below!

FTL Changes

What’s Changed (FTL v6.0.4)

  • Add webhome validator by @DL6ER in #2276
  • Also validate env variables by @DL6ER in #2294
  • Prevent crash on failure to source secure randomness by @DL6ER in #2300
  • Update embedded CivetWeb by @DL6ER in #2312
  • Change default value of webserver.threads to 50 by @DL6ER in #2305
  • Avoid CivetWeb crash if no optional port could be bound by @DL6ER in #2313
  • Empty DHCP range is valid by @DL6ER in #2314
  • Undo optimization attempts for sqlite3 by @DL6ER in #2321
  • Fix first-time IPv6 client name resolution by @DL6ER in #2310
  • Fix API_EXCLUDE_DOMAINS migration by @DL6ER in #2311
  • Update embedded dnsmasq by @DL6ER in #2323
  • Tweak misc.etc_dnsmasq_d help text and scope – only read *.conf files by @DL6ER in #2309
  • Increase niceness of CivetWeb threads by @DL6ER in #2326

Full Changelogv6.0.3...v6.0.4

What’s Changed (FTL v6.0.3)

  • Do not try to migrate setupVars.conf if it does not exist. by @DL6ER in #2238
  • Fix CLI command for non-local API configuration by @DL6ER in #2233
  • Clarify the role of dns.domain outside of the DHCP context by @DL6ER in #2239
  • Reduce log level for web requests by @bennettmsherman in #2244
  • Improve secure randomness generation by @DL6ER in #2240
  • Fix typo in dns.showDNSSEC text description by @DL6ER in #2246
  • Allow tabs in dns.hosts by @DL6ER in #2247
  • Also make optional in the setupVars.conf migration process by @DL6ER in #2248
  • Tweak CHAOS TXT local.api.ftl by @DL6ER in #2254
  • Make additional_headers configurable by @DL6ER in #2236
  • Fix DNS_BOGUS_PRIV and QUERY_LOGGING migration by @MichaIng in #2264
  • Rate-limit internal NTP server by @DL6ER in #2258
  • Prevent duplicated entries on successive v5 Teleporter importing by @DL6ER in #2265
  • Update config/env.c to accept conventional environment variables in a… by @iain-henderson in #2256
  • We should not send any content for HTTP codes 1xx, 204 and 304 by @DL6ER in #2272
  • Fix DHCP_LEASETIME migration by @DL6ER in #2271
  • Print values of env vars if they are invalid by @DL6ER in #2273
  • Fix webserver.api.maxHistory usage in API by @DL6ER in #2275
  • Fix typo in dns option descriptions by @rrobgill in #2280
  • Follow-up on #2275 by @DL6ER in #2285
  • Restart FTL on change of webserver.threads by @DL6ER in #2295
  • Fix off-by-one in wildcard SAN checking by @DL6ER in #2293
  • Fix status codes and response messages for PUT in API docs by @tsutsu3 in #2291
  • Pi-hole FTL v6.0.3 by @DL6ER in #2296

New Contributors

Full Changelogv6.0.2...v6.0.3

What’s Changed (FTL v6.0.2)

  • Fix possible problems with case-encode bigmap array allocation. by @DL6ER in #2230
  • Update embedded dnsmasq to 2.91rc5 by @DL6ER in #2241
  • Improve dnsmasq syntax check edge case by @DL6ER in #2231
  • Increase compatibility with volumes on network shares by @DL6ER in #2218
  • Make in revServer really optional by @DL6ER in #2237

Full Changelogv6.0.1...v6.0.2

Web Changes

What’s Changed (Web v6.0.2)

  • Accept tabs inside dns.hosts and strip possible trailing comments by @DL6ER in #3241
  • Regenerate package-lock.json with npm 10.8.2 by @XhmikosR in #3247
  • Improve image compression by @XhmikosR in #3244
  • Improve info text on Settings > DNS by @yubiuser in #3245
  • Save the state of the query log table infinitely by @yubiuser in #3253
  • Update hammer.min.js and include map by @yubiuser in #3254
  • Remove the hard-coded time range from graphic titles by @rdwebdesign in #3256
  • Softens the insecure warning on the HTTP login page a bit by @yubiuser in #3258
  • Show the interface name in Settings > DNS page by @rdwebdesign in #3265
  • Add a hidden column to the network table to allow filtering by hostnames by @rdwebdesign in #3264
  • Fix total query tooltip on dahboard by @yubiuser in #3266
  • Fix the insertion of multiple domains as wildcard by @rdwebdesign in #3259
  • Use margin-right instead of spaces after dnssec icon in Query Log by @rdwebdesign in #3267
  • Improve memory unit selection for devices with less than 1 GB of RAM by @DL6ER in #3270

Full Changelogv6.0.1...v6.0.2

Core Changes

What’s Changed (Core v6.0.5)

New Contributors

Full Changelogv6.0.4...v6.0.5

What’s Changed (Core v6.0.4)

  • Don’t set a random password on v5 -> v6 updates by @yubiuser in #5960
  • Only run migration code if setupVars.conf exists. by @PromoFaux in #5969
  • Fix dnsmasq v5 to v6 config migration by @MichaIng in #5968
  • Assure that Lighttpd conf-enabled symlink is removed by @MichaIng in #5974
  • Print a more helpful message on pihole checkout in docker containers by @DL6ER in #5963

Full Changelogv6.0.3...v6.0.4

Join the Community

Pi-hole thrives thanks to our vibrant and supportive community. Whether you’re looking to share your experience, get advice, or stay informed about the latest updates, there’s a place for you. Join the conversation on our official forum or connect with fellow users on our subreddit. We look forward to welcoming you!

Thank You for Your Support

We want to express our heartfelt thanks to everyone who has supported Pi-hole throughout the years.

Your community contributions and donations are the lifeblood of this project, allowing us to maintain and continually improve Pi-hole while keeping it free for everyone. If you’d like to contribute to our ongoing efforts, please consider donating through our official donation page. Every contribution, big or small, makes a significant difference in helping us deliver the best project that we can.

Thank you for being part of the Pi-hole community!