# PowerDNS Proxy PowerDNS Proxy is a Python script that acts as a proxy between your PowerDNS server and external DNS providers, such as Hetzner and OVH. It allows you to automatically synchronize DNS records between your PowerDNS server and the supported external DNS providers. Mainly aimed at proxying RDNS/PTR records. ## Features - Synchronize DNS records between PowerDNS and supported external DNS providers. - Automatically track changes in PowerDNS zones and update corresponding records in external DNS providers. - Supports multiple backend providers, including Hetzner and OVH. ## Installation 1. Install the required Python dependencies: ```bash pip3 install -r requirements.txt ``` 3. Configure the PowerDNS Proxy by editing the `config.ini` file: Replace values `x` with the appropriate values for your PowerDNS server and backend providers. You can also change the synchronization frequency (in seconds) by modifying the `frequency` parameter. Backend servers will only get called on zone change. 4. Define the zones and their corresponding backend providers in the `zones.ini` file: ```ini [1.2.3.4.in-addr.arpa.] backend = hetzner [5.6.7.8.in-addr.arpa.] backend = ovh [2.4.6.8.in-addr.arpa.] backend = hetzner ``` Each section in the `zones.ini` file corresponds to a zone in your PowerDNS server. The `backend` parameter specifies the backend provider to use for that zone (currently supporting `hetzner` and `ovh`). ## Usage Run the PowerDNS Proxy script using the following command: ```bash python3 main.py ``` ## Supported Backends ### Hetzner Robot - Supports creating, updating, and deleting DNS records using the Hetzner Robot API. #### Credentials To get credentials, go to this link here: https://robot.hetzner.com/preferences/index, then click the "Webservice and app settings" tab and generate a credential pair. #### OVH - Supports creating, updating, and deleting DNS records using the OVH API. #### Credentials To get credentials, go to this link here: https://github.com/ovh/php-ovh#supported-endpoints, pick the right endpoint and go to the right **/createApp/** application credentials page. The application needs to have the following rights: - GET /ip - GET /ip/* - POST /ip/* - DELETE /ip/* Don't forget to set the right endpoint region in the config file. ## Contributing Contributions to the PowerDNS Proxy project are welcome! If you find any issues or have suggestions for improvements, feel free to open an issue or submit a pull request.