Pi-hole FTL v5.20.1, Web v5.18.1 and Core v5.15 released

Pi-hole FTL v5.20.1, Web v5.18.1 and Core v5.15 released

2023-01-15 Updates 0

As always, please read through the changelog before updating with pihole -up. (A new tag for docker image will arrive in due course.)

Notable Changes in this release

As mentioned in the last release, we have some fairly large changes for the core repository in this release. As a reminder:

Native systemd service

We have added a native systemd service to avoid the systemd-sysv wrapper units and enhance service status tracking. (See #4924)

Lighttpd Config

Automatic redirection to /admin will only happen if you browse via http://pi.hole. If you wish to browse via http://[IP Address], then you will need to ensure that you add /admin manually. In the past, a splash screen has been shown with a link to /admin, however this is now removed along with the now-defunct blockpage. This means that if you browse to your Pi-hole device using just the IP address, you will receive a 403 or 404 error, as there is nothing there to intercept your request.

If you really want any other hostname or IP to redirect automatically to admin, simply create a file named /etc/lighttpd/conf-enabled/15-pihole-custom-admin-redirect.conf (or whatever you want to call it) with the contents similar to:

$HTTP["url"] == "/" {
    $HTTP["host"] == "my.custom.domain" {
         url.redirect = ("" => "/admin/")


There have been some changes to the lighttpd configuration to prevent the default config from being overwritten on new installs (See #5065 and #5075), however existing installs will still use the Pi-hole generated config for the time being. As the line “FILE AUTOMATICALLY OVERWRITTEN BY PI-HOLE” exists in /etc/lighttpd/lighttpd.conf, the file will be overwritten (See here).  All user configuration should be made in external.conf, or make use of the conf.d/conf-available/conf-enabled directories – depending on OS

If you have been using IP blocking, and therefore custom.php or some other mechanism to display a page for blocked queries, you will need to make a one-time configuration change to inform lighttpd of the 404 handler, along the lines of:

echo 'server.error-handler-404 := "/path/to/your/blockpage.php"' > /etc/lighttpd/conf-available/08-pihole-block-ip.conf
lighty-enable-mod pihole-block-ip
service lighttpd restart
echo 'server.error-handler-404 := "/path/to/your/blockpage.php"' > /etc/lighttpd/conf.d/pihole-block-ip.conf
echo 'include "https://wp-cdn.pi-hole.net/etc/lighttpd/conf.d/pihole-block-ip.conf"' >> /etc/lighttpd/lighttpd.conf
service lighttpd restart


Another thing to note is that if you currently have custom configurations in external.conf, then please move that file to /etc/lighttpd/conf-enabled/whatevername.conf. For upgrades, external.conf will still work – but future versions will likely remove the use of this file. Version 6, for example, will remove the use of lighttpd all together.

Pi-hole FTL changes:

What’s Changed

  • Always store time we start saving to the database by @DL6ER in #1514
  • Remove gray color in help output by @yubiuser in #1520

Full Changelogv5.20...v5.20.1

Pi-hole Web changes:

What’s Changed

New Contributors

Full Changelogv5.18...v5.18.1

Pi-hole Core changes:

What’s Changed

New Contributors

Full Changelogv5.14.2...v5.15