Danamir / dyn-gandi

Use Gandi LiveDNS API to update DNS records with a dynamic IP.
GNU General Public License v3.0
70 stars 18 forks source link
dns dynamic gandi ip livedns restful-api

dyn-gandi

Use Gandi LiveDNS API to update DNS records with a dynamic IP.

Prequisites

Note

I recommend creating a repeating alarm in a calendar to be sure to renew the PAT before it is revoked.

Installation

Installation from release :
Installation from sources :
$ curl --location https://github.com/Danamir/dyn-gandi/archive/master.zip --output dyn-gandi-master.zip
$ unzip dyn-gandi-master.zip
$ mv dyn-gandi-master/ dyn-gandi
$ cd dyn-gandi
Setup :

(Optional) Configure Python virtual environment :

$ python -m venv .env
$ . .env/bin/activate (Linux) 
-or-
$ .env\Scripts\activate.bat (Windows)

Install :

$ python setup.py develop
$ copy config.ini-dist config.ini
$ dyn_gandi --help
-or-
$ python dyn_gandi.py --help

Complete the config.ini file, in particular check the lines :

[api]
key =

[dns]
domain = 
records = @,www

Running

_Note: dyn_gandi can be substituted with python dyn_gandi.py if the former doesn't work._

Display help :

$ dyn_gandi --help

Dry run (without modifications) :

$ dyn_gandi --dry-run

Normal launch:

$ dyn_gandi

The log line will end by [OK] if no update was needed, [UPDATE] on successful update, and [ERROR] on error. On success, the automatic backup snapshot is deleted ; on error the snapshot uuid is displayed in the log for you to restore if needed.

Cron

Either create a scheduled task on windows, or add a crontab line. ie:

$ crontab -e
* */2 * * * dyn_gandi --log /var/log/dyn-gandi.log

NB: If you used a Python virtual environment, replace the script by <dyn-gandi-path>/.env/bin/dyn_gandi .

Notes
Common errors