pihole-opnsense-sync/README.md

1.2 KiB

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:
    pip install -r requirements.txt
    
  2. Create your secrets file at /etc/secrets/pihole-opnsense-sync with your API details:
    OPNSENSE_API_KEY='...'
    OPNSENSE_API_SECRET='...'
    
  3. Set the permissions on this file:
    sudo chown root:root /etc/secrets/pihole-opnsense-sync
    sudo chmod 600 /etc/secrets/pihole-opnsense-sync
    
  4. Copy the systemd service file:
    sudo cp pihole-opnsense-sync.service /etc/systemd/system/pihole-opnsense-sync.service
    
    The service is configured to run as the pihole:pihole user.
  5. Edit the service file. You might need to modify --opnsense and add --insecure.
  6. Enable and start the service:
    sudo systemctl enable --now pihole-opnsense-sync
    sleep 2
    sudo systemctl status pihole-opnsense-sync