googledomains_dyndns_update/README.md

100 lines
5.3 KiB
Markdown

Google Domains Dynamic DNS Updater
==
`googledomains_dyndns_update` is a simple tool written in Ruby to update
Dynamic DNS entries on Google Domains. More information on Dynamic DNS
pertaining to Google Domains can be found in the following support answer:
> https://support.google.com/domains/answer/6147083
Installation
--
The tool can be run by executing `googledomains_dyndns_update.rb` script from a
clone of this repository.
Configuration
--
This tool uses a configuration file, located by default in `~/.gddyndns.yaml`,
to get information on hosts to update. An alternate configuration file can be
specified with the `-f|--config_file` option. Configuration is specified in
YAML format with a template as follows:
```YAML
hosts:
- host: hostone.com
username: <google domain hostone username>
password: <google domain hostone password>
- host: hosttwo.com
username: <google domain hosttwo username>
password: <google domain hosttwo password>
- ...
```
Username and password for this file can be obtained from the Google Domains
dashboard as mentioned in the URL above.
Caching
--
To avoid frequent queries to Google Domains, store the status of latest update
to a cache file, located by default in `~/.gddyndns.cache`. Alternate location
may be provided with `-c|--cache_file` option.
Google Domains is updated only if public IP of the host has changed. An update
can, however, be forced with the `-u|--force_update` option.
Usage
--
Following usage help is available with the `--help` option:
```
$ googledomains_dyndns_update.rb --help
Usage: googledomains_dyndns_update.rb [options]
-d, --debug Enable debug messages
-u, --force_update Force DNS update
-f, --config_file FILE Location of configuration file
-c, --cache_file FILE Location of cache file
-h, --help Display this help
```
Sample log
--
``````
I, [2021-09-02T08:00:01.367731 #137228] INFO -- /home/mahesh/tools/googledomains_dyndns_update/googledomains_dyndns_update.rb: Done.
I, [2021-09-02T09:00:01.663947 #137511] INFO -- /home/mahesh/tools/googledomains_dyndns_update/googledomains_dyndns_update.rb: Starting...
I, [2021-09-02T09:00:01.752664 #137511] INFO -- : Public IP: o1.o2.o2.o4
I, [2021-09-02T09:00:01.752744 #137511] INFO -- : Skipping heshapps.com - Already pointing to o1.o2.o2.o4
I, [2021-09-02T09:00:01.752774 #137511] INFO -- : Skipping funding.heshapps.com - Already pointing to o1.o2.o2.o4
I, [2021-09-02T09:00:01.752832 #137511] INFO -- : Skipping hstumblr.heshapps.com - Already pointing to o1.o2.o2.o4
I, [2021-09-02T09:00:01.752851 #137511] INFO -- : Skipping hssoundcloud.heshapps.com - Already pointing to o1.o2.o2.o4
I, [2021-09-02T09:00:01.752931 #137511] INFO -- : Skipping git.heshapps.com - Already pointing to o1.o2.o2.o4
I, [2021-09-02T09:00:01.752970 #137511] INFO -- : Skipping gp.heshapps.com - Already pointing to o1.o2.o2.o4
I, [2021-09-02T09:00:01.753005 #137511] INFO -- /home/mahesh/tools/googledomains_dyndns_update/googledomains_dyndns_update.rb: Done.
I, [2021-09-02T10:00:02.023736 #137796] INFO -- /home/mahesh/tools/googledomains_dyndns_update/googledomains_dyndns_update.rb: Starting...
I, [2021-09-02T10:00:02.233768 #137796] INFO -- : Public IP: n1.n2.n3.n4
I, [2021-09-02T10:00:02.233885 #137796] INFO -- : Updating host [heshapps.com] - https://domains.google.com/nic/update?hostname=heshapps.com&myip=n1.n2.n3.n4
I, [2021-09-02T10:00:03.737974 #137796] INFO -- : Updating host [funding.heshapps.com] - https://domains.google.com/nic/update?hostname=funding.heshapps.com&myip=n1.n2.n3.n4
I, [2021-09-02T10:00:13.611667 #137796] INFO -- : Updating host [hstumblr.heshapps.com] - https://domains.google.com/nic/update?hostname=hstumblr.heshapps.com&myip=n1.n2.n3.n4
I, [2021-09-02T10:00:14.961589 #137796] INFO -- : Updating host [hssoundcloud.heshapps.com] - https://domains.google.com/nic/update?hostname=hssoundcloud.heshapps.com&myip=n1.n2.n3.n4
I, [2021-09-02T10:00:23.773025 #137796] INFO -- : Updating host [git.heshapps.com] - https://domains.google.com/nic/update?hostname=git.heshapps.com&myip=n1.n2.n3.n4
I, [2021-09-02T10:00:28.948759 #137796] INFO -- : Updating host [gp.heshapps.com] - https://domains.google.com/nic/update?hostname=gp.heshapps.com&myip=n1.n2.n3.n4
I, [2021-09-02T10:00:33.816178 #137796] INFO -- /home/mahesh/tools/googledomains_dyndns_update/googledomains_dyndns_update.rb: Done.
I, [2021-09-02T11:00:02.078239 #138078] INFO -- /home/mahesh/tools/googledomains_dyndns_update/googledomains_dyndns_update.rb: Starting...
I, [2021-09-02T11:00:02.277009 #138078] INFO -- : Public IP: n1.n2.n3.n4
I, [2021-09-02T11:00:02.277121 #138078] INFO -- : Skipping heshapps.com - Already pointing to n1.n2.n3.n4
I, [2021-09-02T11:00:02.277165 #138078] INFO -- : Skipping funding.heshapps.com - Already pointing to n1.n2.n3.n4
I, [2021-09-02T11:00:02.277255 #138078] INFO -- : Skipping hstumblr.heshapps.com - Already pointing to n1.n2.n3.n4
I, [2021-09-02T11:00:02.277289 #138078] INFO -- : Skipping hssoundcloud.heshapps.com - Already pointing to n1.n2.n3.n4
I, [2021-09-02T11:00:02.277411 #138078] INFO -- : Skipping git.heshapps.com - Already pointing to n1.n2.n3.n4
I, [2021-09-02T11:00:02.277466 #138078] INFO -- : Skipping gp.heshapps.com - Already pointing to n1.n2.n3.n4
```
License
--
This tool is licensed under the MIT License.