david/synchole
david
/
synchole
Archived
1
0
Fork 0
Shell script to syncronize a secondary pi-hole server with a primary pi-hole server. It downloads blacklist.txt, whitelist.txt and regex.list from the primary, updates local files and runs updateGravity on the secondary.
This repository has been archived on 2023-12-23. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
david 38f2dfb6fa refined the script but it is still an early draft 2019-11-08 23:15:01 +01:00
LICENSE Add LICENSE 2019-10-29 22:23:12 +00:00
README.md refined the script but it is still an early draft 2019-11-08 23:15:01 +01:00
synchole.sh refined the script but it is still an early draft 2019-11-08 23:15:01 +01:00

README.md

synchole

Shell script to syncronize two or more pi-hole servers. It replicates all changes to blacklist.txt, whitelist.txt, regex.list, /etc/hosts and runs updateGravity/restartdns on all members.

Setup

  1. Login via SSH to the MASTER server.

  2. Create symlinks for all files you want to sync within the webroot of the MASTER pihole.

cd /var/www/html
sudo mkdir synchole
cd synchole
sudo ln -s /etc/pihole/whitelist.txt .
sudo ln -s /etc/pihole/blacklist.txt .
sudo ln -s /etc/pihole/regex.list .
  1. Login via SSH to the SLAVE server.

  2. Install synchole on the SLAVE server.

cd /opt
sudo git clone https://socialg.it/david/synchole.git
  1. Configure the synchole script.
sudo vim /opt/synchole.sh

The config section is at the top of the script.

  1. Create a cron job for synchole on the SLAVE server.
sudo crontab -e

Example cronjob: */5 * * * * /opt/synchole/synchole.sh -q (this runs the synchole every 5 minutes)

  1. Setup postfix to send notifications (from cron) on the SLAVE server.
<placeholder>
  1. Repeat steps 3 through 7 for additional SLAVE servers.

  2. Happy syncholeing!

Resources