Skip to main content

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.

Metadata

Release files for giu 0.3.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for giu 0.3.5
File Size Uploaded
giu-0.3.5.tar.gz 7.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for giu 0.3.5
File Interpreter ABI Platform
giu-0.3.5-py3-none-any.whl Python 3 none any Details

Total release size: 15.8 kB

Release files / giu-0.3.5.tar.gz

Download URL giu-0.3.5.tar.gz
Size 7.7 kB
Tags Source
SHA-256 checksum
How to use checksums
990eae8d9ec67e0d657b1eece82ceb447014b3cfa938d3be422aca9ea0e3f246
BLAKE2b-256 checksum
How to use checksums
be58e93bab517bfa105a6f8e69df915040a711ef8ef06f689be74f85015374cb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.2.2 CPython/3.10.8 Darwin/22.1.0

Release files / giu-0.3.5-py3-none-any.whl

Download URL giu-0.3.5-py3-none-any.whl
Size 8.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
54b003b89b8fcc03d8af703e148adf60696361473de04ac90569adf0b2473f3c
BLAKE2b-256 checksum
How to use checksums
bfa3440702f41a8ade374b760b5f61d41879c9ef40f91d3c4674ce08750b21e3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.2.2 CPython/3.10.8 Darwin/22.1.0

Release history Release notifications | RSS feed

This release

0.3.5 This release

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page