Pi-hole FTL v6.2, Web v6.2 and Core v6.1 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
FTL Changes
What’s Changed (FTL v6.2)
- Fix minor spelling mistake in API docs by @PromoFaux in #2399
- fix: batch request body spec by @tien in #2389
- fix: make
getAuth
security optional by @tien in #2388 - fix: incorrect session field requirements by @tien in #2387
- Add privacy_level to /padd endpoint by @yubiuser in #2402
- Parameter is called length not n in GET /queries by @DL6ER in #2407
- Fix duplicate web port information output in FTL startup by @PromoFaux in #2410
- Fix logfile warning port length truncation (bug #2408) by @rrobgill in #2409
- Remove dns.watch from upstream DNS server list by @rdwebdesign in #2411
- Prevent home.arpa queries from being upstreamed. RFC 8375 by @rrobgill in #2405
- Fix redirecting when redirecting from /admin/ to /admin/login and back by @DL6ER in #2415
- Move manual filtering to FTLs file parsing by @DL6ER in #2381
- Various small fixes by @DL6ER in #2392
- Update embedded dnsmasq to v2.92test2 by @DL6ER in #2417
- Fix signedness error in the NTP total round-trip delay calculation by @DL6ER in #2420
- Use webhome variable also on the API documentation page by @DL6ER in #2406
- Report RFC6598 shared address space as “Carrier-Grade NAT” by @rrobgill in #2423
- Fix mishanding of CONF_UINT16 config options by @shawnanastasio in #2426
- Feature/fix yocto cross build by @rehsack in #2425
- Update embedded civetweb by @DL6ER in #2428
- Check for existing NTP client when starting FTL by @DL6ER in #2416
- Validate received NTP packets for version and server synchronisation by @rrobgill in #2431
- Use CODEOWNERS instead of deprecated dependbot/reviewers by @yubiuser in #2437
- Modify how we use xxd to compile assets into the FTL binary by @DL6ER in #2446
- Update dnsmasq to v2.91test5 by @DL6ER in #2433
- Update embedded SQLite3 to 3.49.2 by @DL6ER in #2447
- Gravity: support for arbitrary HOSTS-like list formats by @DL6ER in #2439
- Set dns.interface to eth0 by default by @yubiuser in #2448
- Update embedded dnsmasq by @DL6ER in #2457
- Adjust write_to_file function to include the CA certificate by @nathansmeal in #2465
- Update SQLite to 3.50.0 by @DL6ER in #2469
New Contributors
- @tien made their first contribution in #2389
- @shawnanastasio made their first contribution in #2426
- @rehsack made their first contribution in #2425
- @nathansmeal made their first contribution in #2465
Full Changelog: v6.1...v6.2
Web Changes
What’s Changed (Web v6.2)
- Streamline actions, format and switch to Node.js 22 by @XhmikosR in #3357
- Remove remaining hard-coded /admin/ paths in the webinterface by @DL6ER in #3370
- Fix Local CNAME records records mistake by @yubiuser in #3367
- Fix concurrency issue about const apiUrl by @DL6ER in #3371
- groups-lists: remove unneeded HTML escape by @XhmikosR in #3379
- login.js: fix deprecated submit() usage by @XhmikosR in #3380
- Remove
x-dns-prefetch-control
meta tag by @XhmikosR in #3378 - group-domains: fix uncaught TypeError due to invalid URLs by @XhmikosR in #3383
- Replace remaining
i
element cases withem
by @XhmikosR in #3381 - Revert the
defer
addition for now by @XhmikosR in #3382 - header: fix runtime error when query_string is null by @XhmikosR in #3395
- utils: fix typo in showAlert() by @XhmikosR in #3403
- queries: make the Advanced filtering button occupy all space by @XhmikosR in #3402
- Remove icheckbox related-code except for primary by @XhmikosR in #3387
- queries: add missing
display: none
by @XhmikosR in #3405 - Allow free input in upstream filter by @yubiuser in #3408
- Fix console warning when no password set by @PromoFaux in #3410
- Modernize JS and tighten things by @XhmikosR in #3388
- high-contrast.css: fix duplicate selector by @XhmikosR in #3411
- Remove unused CSS by @XhmikosR in #3420
- Add missing
display: none
for collapsed boxes by @XhmikosR in #3417 - Remove unused HTML elements by @XhmikosR in #3418
- Update chart.umd.js.map from npm by @XhmikosR in #3419
- settings-api: add missing end closing
p
tag by @XhmikosR in #3428 - settings-system: fix span end tag typo by @XhmikosR in #3427
- login: fix deprecated
submit()
function by @XhmikosR in #3425 - settings-api: fix deprecated
keyup()
function by @XhmikosR in #3424 - gravity: remove the unused
?go
code by @XhmikosR in #3426 - disabled and checked are boolean attributes by @XhmikosR in #3434
- queries: replace the deprecated
jQuery.parseJSON
withJSON.parse
by @XhmikosR in #3435 - package.json: sort deps by name by @XhmikosR in #3437
- Use CODEOWNERS instead of deprecated dependbot/reviewers by @yubiuser in #3433
- Add ‘Bug: Confirmed’ to stale exempt list by @yubiuser in #3432
- Various minor tweaks to the LCARS theme by @rdwebdesign in #3446
- queries: fix box markup by @XhmikosR in #3445
- Use the same default interface used by FTL if none is set in pihole.toml by @rdwebdesign in #3436
- Use
font-weight: 600
by @XhmikosR in #3449 - Use mg.script_name to retrieve the scriptname by @rdwebdesign in #3447
- .user-header: use
font-weight: 600
by @XhmikosR in #3450 - settings-system.js: remove unused overlay code by @XhmikosR in #3455
- settings-advanced: remove unused code by @XhmikosR in #3454
- index.lp: remove unused classes by @XhmikosR in #3453
- scripts/js/settings-dns-records.js: fix api url base by @onlyJakob in #3456
- Add hint about wildcard search in advanced query filtering by @yubiuser in #3452
- index: make tables stripped by @XhmikosR in #3438
- Replace invalid hostname to prevent XSS by @yubiuser in #3401
- settings-system: fix typo by @XhmikosR in #3460
- sidebar: increase logo size to prevent a reflow by @XhmikosR in #3407
- queries: improve link to search page by @XhmikosR in #3422
- Hide top tables depending on privacy level by @yubiuser in #3362
- settings-dns-records: fix typo by @XhmikosR in #3459
- Fix deprecated
ready
function by @XhmikosR in #3461 - utils: remove the unused
objectToArray
util by @XhmikosR in #3462 - utils: improve readability for
validateIPv*
functions by @XhmikosR in #3423 - settings-api: fix wrong code by @XhmikosR in #3463
- Use
text()
/textContent
when we don’t need HTML by @XhmikosR in #3464 - footer: drop redundant addAdvancedInfo() call by @XhmikosR in #3467
- settings-system: remove unneeded span elements by @XhmikosR in #3468
- settings-dhcp: drop unused lookatme-text attribute by @XhmikosR in #3469
- settings-advanced.js: fix wrong
role
value by @XhmikosR in #3470 - settings-advanced: drop
small
element by @XhmikosR in #3472 - updateFtlInfo: remove unused code by @XhmikosR in #3474
- settings-level-expert: only toggle the expert elements by @XhmikosR in #3473
- Make use of the new format_path function to add the current page in body by @XhmikosR in #3390
- Use proper Object methods by @XhmikosR in #3441
- queries: minor grammar fix by @XhmikosR in #3477
- queries: change box to an info one by @XhmikosR in #3476
- Fix DataTables warning message in Network page by @rdwebdesign in #3475
- Fix broken themes by @rdwebdesign in #3479
- queries: drop non-existent elements code by @XhmikosR in #3478
- Reset
update-hint
text every timeupdateVersionInfo()
function is executed by @rdwebdesign in #3480 - Use the same interface name used by FTL in DNS Settings page by @rdwebdesign in #3481
- messages: fix function call by @XhmikosR in #3482
- footer: rename label by @XhmikosR in #3486
- header_authenticated: change documentation icon to solid by @XhmikosR in #3488
- Remove horizontal line in hamburger menu by @yubiuser in #3491
- sidebar: move active class outside of class attribute conditional by @XhmikosR in #3492
- index: use sentence case for queries for consistency by @XhmikosR in #3493
- Add rel=”noreferrer” to external hyperlinks by @casperklein in #3495
- settings-level-expert: hide them by default by @XhmikosR in #3487
New Contributors
- @onlyJakob made their first contribution in #3456
- @casperklein made their first contribution in #3495
Full Changelog: v6.1...v6.2
Core Changes
What’s Changed (Core v6.1)
- build
gravityDBfile_default
like the other variables by @mwoolweaver in #6133 - Add CentOS 10 to test suite by @yubiuser in #6126
- Ensure gravity_Cleanup() checks the correct directory by @mwoolweaver in #6131
- Add recommended fields to the deb package by @yubiuser in #6054
- Add webserver log to piholeLogFlush.sh by @jacklul in #6049
- Update update.sh, updatecheck.sh and uninstall.sh to honour pihole.to… by @nexusgoblin in #5981
- Move list parsing entirely into FTL by @DL6ER in #6105
- Remove no-longer-needed
pihole
sudoers file by @PromoFaux in #6143 - versions file should readable by others (make pihole -v work for non-root users) by @yubiuser in #6002
- Reduce code duplication in piholeLogFlush by @PromoFaux in #6148
- Add ON DELETE CASCADE to FOREIGN KEY REFERENCES in gravity.db by @DL6ER in #6113
- Install on IPv6-only/DNS64/NAT64 system by @rrobgill in #6144
- Treat FTL return data as strings – part II by @yubiuser in #6184
- Remove duplicated code checking if adlist domain is blocked locally by @yubiuser in #6183
- Fix gravity waiting forever for DNS by @yubiuser in #6196
- Remove check for supported OS by @yubiuser in #6206
- Remove unused $target from gravity by @yubiuser in #6192
- Remove reference to telnet and chronometer in README by @rrobgill in #6188
- Add Fedora 42 to tests by @darkexplosiveqwx in #6177
- Extend .gitignore by @darkexplosiveqwx in #6215
- Use CODEOWNERS instead of deprecated dependbot/reviewers by @yubiuser in #6213
- Set dns.interface during installation by @yubiuser in #6216
- Allow alternative cron daemons on Debian by @z0rc in #6180
- Fix API logic in api.sh by @yubiuser in #6193
- Do not try to upgrade gravity if it does not exist by @yubiuser in #6218
- All gravity related files and dirs should be owned by pihole:pihole by @yubiuser in #6186
- Give FTL 60 seconds for graceful shutdown by @yubiuser in #6187
- Use shell parameter expansion to split http_code and payload for api.sh by @dschaper in #6230
- Change FTLcheckUpdate to use api.github.com and
jq
to retrieve tag_name by @rdwebdesign in #6229 - Update
get_available_interfaces()
to correctly filter loopback device (lo
) by @PiotrTyrakowski in #6236 - Allow simple
pihole api
output, containing only the JSON payload by @rdwebdesign in #6096 - Function
gravity_CheckDNSResolutionAvailable()
should return 0 if DNS resolution is available by @rdwebdesign in #6240 - Use a more general method to determine whether systemd is the init system by @DL6ER in #6043
- Use PID1 to determine which command to use when toggeling services by @yubiuser in #6245
- Allow to get API URL from local.api.ftl even if DNS port has changed by @yubiuser in #6252
New Contributors
- @nexusgoblin made their first contribution in #5981
- @darkexplosiveqwx made their first contribution in #6177
- @z0rc made their first contribution in #6180
Full Changelog: v6.0.6...v6.1
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!