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 details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

Details for the file giu-0.3.5.tar.gz.

File metadata

  • Download URL: giu-0.3.5.tar.gz
  • Upload date:
  • Size: 7.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.2.2 CPython/3.10.8 Darwin/22.1.0

File hashes

Hashes for giu-0.3.5.tar.gz
Algorithm Hash digest
SHA256 990eae8d9ec67e0d657b1eece82ceb447014b3cfa938d3be422aca9ea0e3f246
MD5 5e8cca39a7cd9408fb46e1564d77a958
BLAKE2b-256 be58e93bab517bfa105a6f8e69df915040a711ef8ef06f689be74f85015374cb

See more details on using hashes here.

File details

Details for the file giu-0.3.5-py3-none-any.whl.

File metadata

  • Download URL: giu-0.3.5-py3-none-any.whl
  • Upload date:
  • Size: 8.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.2.2 CPython/3.10.8 Darwin/22.1.0

File hashes

Hashes for giu-0.3.5-py3-none-any.whl
Algorithm Hash digest
SHA256 54b003b89b8fcc03d8af703e148adf60696361473de04ac90569adf0b2473f3c
MD5 94540627a8fc150b21e27e1f8f2749cb
BLAKE2b-256 bfa3440702f41a8ade374b760b5f61d41879c9ef40f91d3c4674ce08750b21e3

See more details on using hashes here.

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