david/synchole
david
/
synchole
Archived
1
0
Fork 0
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.
synchole/README.md

45 lines
1.3 KiB
Markdown
Raw Normal View History

2019-10-29 23:17:56 +01:00
# synchole
Shell script to syncronize two or more [pi-hole](https://pi-hole.net) 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 .
sudo ln -s /etc/hosts .
```
3. Login via SSH to the `SLAVE` server.
4. Install synchole on the `SLAVE` server.
```
cd /opt
sudo git clone https://socialg.it/david/synchole.git
```
5. Configure the synchole script.
```
sudo vim /opt/synchole.sh
```
The config section is at the top of the script.
6. 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)
7. Setup postfix to send notifications (from cron) on the `SLAVE` server.
```
<placeholder>
```
8. Repeat steps 3 through 5 for additional `SLAVE` servers.
9. Happy syncholeing!
## Resources
- https://discourse.pi-hole.net/t/what-files-does-pi-hole-use/1684