I recently shared my small frontend for managing two Pi-hole installations from one interface. The first version was only available in Danish, but version 1.1.004 now includes both Danish and English.
A clarification, because this was misunderstood in my previous post:
This is **not a failover or high-availability solution**. It does not create a virtual IP, designate a primary and secondary Pi-hole, monitor availability or automatically replicate the complete configuration.
The purpose is simpler: I run two independent Pi-hole installations and want an easy way to view, compare and maintain the relevant configuration on both, without opening two separate administration interfaces and repeating every change manually.
The dashboard provides:
- Combined statistics and graphs from both Pi-hole installations
- A combined query log with filtering by client and query type
- Management of allowed and blocked domains
- Local DNS records with clear warnings when the two installations differ
- Named clients used throughout the interface instead of only IP addresses
- Management of adlists
- Gravity updates on either installation
- Actions that can be applied to one or both installations
The two Pi-holes remain independent DNS servers. How they are presented to clients, whether through DHCP, separate networks or another redundancy setup, is outside the scope of this project.
It is a frontend for keeping the configuration it manages consistent and making two installations easier to administer, not a replacement for keepalived, VRRP, Nebula Sync or another failover or replication solution.
The project consists primarily of a single HTML file and uses the Pi-hole v6 REST API through a simple nginx reverse proxy.
English support has just been added. A few minor interface labels are still shown in Danish, but these will be translated in a future update.
GitHub:
https://github.com/tursoe/Dobbelt-Pi-hole
Feedback and suggestions are welcome.