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.
Prequisites
- A valid key fro Gandi LiveDNS API. Use https://account.gandi.net/en/users/USER/security
(
USERis your Gandi user account). - Python 3.
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:
putcommand to create entries like CNAMES and so on.deletecommand to delete entriesbackupcommand to do backupsDocker 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
990eae8d9ec67e0d657b1eece82ceb447014b3cfa938d3be422aca9ea0e3f246
|
|
| MD5 |
5e8cca39a7cd9408fb46e1564d77a958
|
|
| BLAKE2b-256 |
be58e93bab517bfa105a6f8e69df915040a711ef8ef06f689be74f85015374cb
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
54b003b89b8fcc03d8af703e148adf60696361473de04ac90569adf0b2473f3c
|
|
| MD5 |
94540627a8fc150b21e27e1f8f2749cb
|
|
| BLAKE2b-256 |
bfa3440702f41a8ade374b760b5f61d41879c9ef40f91d3c4674ce08750b21e3
|