gitwtfhub

wtf is pihole-ha-cluster?

ramset/pihole-ha-cluster — explained in plain English

Analysis updated 2026-05-18

56ShellAudience · ops devopsComplexity · 3/5Setup · moderate

TL;DR

Adds automatic failover, config syncing, and an optional floating IP across a cluster of Pi-hole DNS ad-blocking servers.

Mindmap

mindmap
  root((Pi-hole HA))
    What it does
      Automatic DHCP failover
      Config sync across nodes
      Optional floating IP
    Tech stack
      Shell scripts
      systemd or Docker
      Pi-hole admin API
    Use cases
      Keep DHCP alive on failure
      Sync blocklists and settings
      Manual failover override
    Audience
      Homelab admins
      Small network operators

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Why would anyone build with this?

REASON 1

Keep DHCP running automatically if the primary Pi-hole server goes down.

REASON 2

Sync blocklists, custom DNS records, and settings across multiple Pi-hole instances without SSH keys.

REASON 3

Give clients a single floating IP that always points to whichever Pi-hole node is currently healthy.

REASON 4

Force a manual failover to a specific node, or disable all HA behavior with one kill switch.

What's in the stack?

ShellsystemdDockerPi-hole

How it stacks up

ramset/pihole-ha-clusternelsonwerd/idea-to-ship-skillstotvs/engpro-advpl-tlpp-skills
Stars565454
LanguageShellShellShell
Setup difficultymoderatemoderateeasy
Complexity3/53/53/5
Audienceops devopsvibe coderdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

Difficulty · moderate Time to first run · 30min

Requires at least two Pi-hole v6+ instances, root access, and Debian or Ubuntu for the bare metal install path.

No license information was found in the README excerpt.

Wtf does this do

Pi-hole HA adds high availability to a cluster of Pi-hole servers, the network ad-blocking DNS tool many people run at home. On its own, Pi-hole is a single point of failure: if the machine running it goes down, DHCP and DNS for the whole network stop working. This project keeps multiple Pi-hole instances in sync and automatically fails over between them, all over plain HTTP with no SSH keys or outside dependencies, running either directly on the machine or as a sidecar container next to Docker. It supports two setups depending on how your network already works. If Pi-hole is your DHCP server, it provides full failover, meaning a standby node takes over within about 40 to 80 seconds if the primary goes down, and hands control back once the primary recovers. If your router or another device already handles DHCP, it leaves DHCP alone entirely and instead keeps each Pi-hole's blocklists, custom DNS records, and settings synchronized, while monitoring which node is healthy. An optional floating virtual IP address can also be used so clients always reach whichever node is currently active, giving real health based failover rather than just listing two static DNS servers that stall when one dies. Other features include a manual override to force a specific node to take over, a single kill switch to disable all failover behavior across the cluster, optional push notifications when a failover happens, and a web panel built directly into Pi-hole's own admin interface. Joining or leaving the cluster is done with a button click rather than manual configuration editing, and mixed setups with some nodes on bare metal and others in Docker are supported. This is aimed at people running more than one Pi-hole at home or in a small network who want it to keep working automatically if one server fails. It requires at least two Pi-hole version 6 or newer instances, a Debian or Ubuntu based system for the bare metal path, and root access to install. It is an independent, unofficial project not affiliated with the official Pi-hole project. The full README is longer than what was shown.

Yoink these prompts

Prompt 1
Explain the difference between DHCP-HA mode and DNS-only mode in pihole-ha-cluster.
Prompt 2
Walk me through installing pihole-ha-cluster on two Pi-hole servers with setup.sh.
Prompt 3
How does the virtual IP failover work when a Pi-hole node goes down?
Prompt 4
Show me how to set up pihole-ha-cluster as a Docker sidecar container.
Prompt 5
What happens to my network if I enable the HA kill switch?

Frequently asked questions

wtf is pihole-ha-cluster?

Adds automatic failover, config syncing, and an optional floating IP across a cluster of Pi-hole DNS ad-blocking servers.

What language is pihole-ha-cluster written in?

Mainly Shell. The stack also includes Shell, systemd, Docker.

What license does pihole-ha-cluster use?

No license information was found in the README excerpt.

How hard is pihole-ha-cluster to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is pihole-ha-cluster for?

Mainly ops devops.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.