Skip to main content

Gandi LiveDNS Updater - Command line tool to keep your dynamic ip up to date

Project description

GIU

Gandi LiveDNS Updater - Command line tool to keep your dynamic ip up to date.

yriveiro

Downloads/Week Downloadsi/Month Downloads

Prequisites

Installation

The recommended way to install this package is through pip.

pip install --user giu

Usage

To use giu you need to create a config.toml file to hold the minimal set of configurations.

[api]
url = 'https://dns.api.gandi.net/v5/livedns'
key = 'YOUR_KEY'

[dns]
domain = 'example.com'
records = [
    {'type' = 'A', 'name' = '@', 'ttl' = 18000},
    {'type' = 'A', 'name' = '*', 'ttl' = 1800},
]

[resolver]
providers = [
    'http://ipecho.net/plain',
    'https://ifconfig.me/ip',
    'http://www.mon-ip.fr'
]

Docker Compose

In this example the config is in the current folder.

docker-composer up -d

By default the process will check your configuration every hour and update it if the process detects a drift in the desired state.

One shot

In this example the config file was created on $HOME/.giu/example.com.toml.

giu sync --conf $HOME/.giu/example.com.toml

Cronjob

In this example the config file was created on $HOME/.giu/example.com.toml.

$ crontab -e
* */2 * * * giu sync --conf $HOME/.giu/example.com.toml

Docker

In this example a config file in the $PWD folder is mounted in /app/conf and the command runs in dry-run mode.

docker run -it --rm -v $PWD:/app/conf yriveiro/giu:dev giu sync --dry-run --config /app/conf/config.toml

✔ Dynamic IP fetched.
ℹ Current dynamic IP: XXX.XXX.XX.XX.
ℹ Dry run mode on.
ℹ TTL for 'A' record '@' on config: 1800 'A' record '@' for foo.bar from Gandi LiveDNS
ℹ IP for 'A' record '@' on Gandi LiveDNS: XXX.XXX.XXX.XXX
ℹ TTL for 'A' record '@' on Gandi LiveDNS: 18000 Update needed, dry run mode, no update done.
ℹ TTL for 'A' record '*' on config: 1800 'A' record '*' for toranja.tech from Gandi LiveDNS
ℹ IP for 'A' record '*' on Gandi LiveDNS: XXX.XXX.XXX.XXX
ℹ TTL for 'A' record '*' on Gandi LiveDNS: 1800 Update needed, dry run mode, no update done.

/app/conf folder is not configurable once the Docker image has hardening applyed and that is the writable folder.

Improvements

Some improvements that I have ff the top of my head:

  • put command to create entries like CNAMES and so on.
  • delete command to delete entries
  • backup command to do backups
  • Docker Image to run giu with docker compose or as a Cronjob on Kubernetes.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

giu-0.3.5.tar.gz (7.7 kB view hashes)

Uploaded Source

Built Distribution

giu-0.3.5-py3-none-any.whl (8.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page