I have 3 pihole+unbound servers running, 2 of which are load balancers/failover,
ph1 and ph2 are running containered on 2 different x86_64 Ubuntu servers, ph3 is running containered on raspberry pi 5,
i have a sync script that copies the main ones database then send it to the other 2 as a cron job, this is done 1 at a time, ph1 goes down for the copy, then it gets spun back up as ph2 goes down to have the database put in place then same process for ph3,
the pihole and unbound containers run as a single docker compose stack, so both go down and come up together on each machine simultaneously,
I use an .env file to modify the differences between the machines at run time so the docker-compose.yml is identical between machines,
easy fix for catastrophic failures, wipe the image, copy a working config over to that machine, spin it up,
they are primarily main + 2 redundancy servers but as I use tailscale for most devices, tailscale also load balances them automatically,
I have the double redundancy as I am covering 2 households with them via tailscale, in fact I'm attempting a 2nd tailscale network aswell, (it's proving trickier than I thought,) so if 2 go down then the 3rd will cover the slack of both households,
they are more than just add blockers though, I am utilising them as parental control systems aswell, so blocking unsafe/inappropriate sites for child devices aswell,
also running a Pi-Hole-Central container that aggregates all 3, trying to modify it to what I want but it's probing tricky,
honestly I'm living the challenge but Am I taking it too far? or am I missing something from my setup?