pihole-opnsense-sync/README.md

37 lines
1.3 KiB
Markdown

# pihole-opnsense-sync
_Sync custom DNS entries in Pi-hole to OPNsense Unbound._
This little service watches Pi-hole's `/etc/pihole/custom.list` file and when a change is made, it syncs it with your
OPNsense router's Unbound host overrides. This is useful because if your Pi-hole goes offline then you will still be
able to resolve your custom domains.
## Install
1. Install pip requirements:
```shell
pip install -r requirements.txt
```
2. Create your secrets file at `/etc/secrets/pihole-opnsense-sync` with your API details:
```bash
OPNSENSE_API_KEY='...'
OPNSENSE_API_SECRET='...'
```
3. Give your user the `Services: Unbound DNS: Edit Host and Domain Override` permision.
4. Set the permissions on this file:
```shell
sudo chown root:root /etc/secrets/pihole-opnsense-sync
sudo chmod 600 /etc/secrets/pihole-opnsense-sync
```
5. Copy the systemd service file:
```shell
sudo cp pihole-opnsense-sync.service /etc/systemd/system/pihole-opnsense-sync.service
```
The service is configured to run as the `pihole:pihole` user.
6. Edit the service file. You might need to modify `--opnsense` and add `--insecure`.
7Enable and start the service:
```shell
sudo systemctl enable --now pihole-opnsense-sync
sleep 2
sudo systemctl status pihole-opnsense-sync
```