Introducing Pi-hole v6

Originally published at: Introducing Pi-hole v6 – Pi-hole

 

We’re excited to announce the general release of Pi-hole v6!

At a glance: What’s New in Pi-hole v6?

1. Embedded Web Server and REST API

We’ve integrated a new REST API and embedded web server directly into the pihole-FTL binary. This eliminates the need for lighttpd and PHP, reducing the installation footprint and boosting performance. The new API also offers server-side pagination for the query log, ensuring a faster and more responsive interface.

As lua has been embedded into the pihole-FTL binary for some time now, we have been able to leverage this to rewrite the web interface.

2. Advanced Filtering and Allowlists

Pi-hole v6 introduces support for subscribed allowlists (Otherwise known as “Antigravity”). These lists work in much the same way as blocklists, but they allow domains instead of denying them

3. Consolidated Configuration Files

We’ve streamlined configuration management by consolidating multiple settings files into a single, richly commented toml file, making it easier to manage and understand your settings. If you are migrating from v5, your existing configurations will be migrated automatically into this file. It can be found at /etc/pihole/pihole.toml

Configuration can be set in multiple ways:

  • Directly editing the toml file
  • Via the command line, e.g pihole-FTL --config dns.upstreams 8.8.8.8
  • Using the API
  • Via the web interface (which uses the API 😉)
  • Via environment variables named, e.g FTLCONF_dns_upstreams=8.8.8.8

If setting via environment variables, it should be noted that this effectively makes the setting read-only, as the environment variable will always force the value to match itself. This is the preferred way to configure FTL in the docker container.

4. Redesigned User Interface

The web interface has been completely overhauled with settings split into Basic and Expert modes. This allows users to customize their experience based on their comfort level and needs.

5. HTTPS Support

Pi-hole v6 includes native HTTPS support, with options to provide your own certificates or use auto-generated ones.

6. Docker

Additionally, the Docker image is now based on Alpine, significantly reducing the image size and opening up possibilities for future system support.

Upgrading and Getting Started

Bare Metal

Upgrading to Pi-hole v6 should be straightforward. For existing users, we recommend backing up your current configuration before proceeding, as the upgrade is strictly a one-way operation.

During the upgrade operation, you will be presented with a dialog box asking if you wish to disable lighttpd. Doing so is probably appropriate for most users – unless you are using it to host web pages other than Pi-hole’s, in which case you may choose to keep it enabled. With lighttpd disabled, pihole-FTL will attempt to bind to ports 80 for HTTP and 443 for HTTPS. If there is any conflict on these ports, then it will revert to port 8080 for HTTP.

Docker

The docker image has undergone a complete rewrite from the ground up, and is now based on Alpine rather than Debian. The same migration scripts that run on bare metal will also run on Docker – your configurations will be migrated to the new format.

The exception to this is environment variables. You can start the container with the old variables in place but don’t expect them to work! It is recommended to read the docker section of our docs page before upgrading.

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!

24 Likes
Rollback to v5
No Web access - Unsupported OS detected: Raspbian 10 - after running update
Admin page access - certificate for https needed
Pi-hole V6 Custom Ports
Where is BLOCK_ICLOUD_PR in Pi-hole v6?
Cant reach the web interface after updating to 6.0
Small questions before upgrading to v6
DNS Issues After Updating to V6
Nach Update Probleme
404 and no DNS after recent update
ERROR: SQL query CREATE TABLE aliasclient
HTTP port used by Pi-hole v6?
After update Pi-hole gone and Ubuntu damaged
V5 to v6 2024.07 to 2025.02.1
[RPi, Apache2] Problems after v6 upgrade, UI no longer reachable, FTL not starting up
403 Forbidden when trying to access web interface on v6
Need port 8443 for Unifi controller
V6 broke reverse proxy
Binding of services to a specific IP with pihole-v6
Setting up a TLS (SSL) in V6
[New Install] 403, Permission issue? (PORT ISSUE WITH NGINX)
Greater API capabilities in cli
Hilfe, komme nicht mehr in PiHole rein
PiHole v6 Admin Panel Issues
Pihole V6 fresh instances are deleting the logs every 2 days
404 and no DNS after recent update
Where is the API Key in Pi-hole v6?
Another 403 after 6.0+ upgrade
How to configure Pi-Hole with Wireguard?
update failed please contact support
Pi-hole DNS not resolving after reboot – FTL service fails to start
The mystery of /etc/custom.list - can we have its functionality back please?
How to disable caching on Pi-hole v6 container
After upgrade to 6.0 I get "403 forbidden" on webinterface
Cant reach the web interface after updating to 6.0
How can I revert back from v6?
DNS Issues After Updating to V6
How can I revert back from v6?
Updated pihole, rebooted, pihole not providing dns service, no web UI
Confusion about where CNAME records are stored?
No admin page on update Pihole v6.0.5 on RP Zero W
What about enabling HTTPS in Pi-hole v6?
Web Interface Hangs When Blocking is Enabled
Installationsscript erstellt *.lp Dateien im Admin Verzeichnis anstatt *.php Dateien