https://github.com/gabriel-duque/zorua
a simple Go client to update dynamic DNS records for Google Domains
https://github.com/gabriel-duque/zorua
amd64 arm arm64 docker docker-image dynamic-dns dynamic-dns-client dynamic-dns-updater golang google-domains google-domains-ip-updater helm-chart i386
Last synced: about 2 months ago
JSON representation
a simple Go client to update dynamic DNS records for Google Domains
- Host: GitHub
- URL: https://github.com/gabriel-duque/zorua
- Owner: gabriel-duque
- License: mit
- Created: 2020-06-10T12:48:16.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2020-11-03T13:41:08.000Z (over 5 years ago)
- Last Synced: 2024-11-15T04:43:03.997Z (over 1 year ago)
- Topics: amd64, arm, arm64, docker, docker-image, dynamic-dns, dynamic-dns-client, dynamic-dns-updater, golang, google-domains, google-domains-ip-updater, helm-chart, i386
- Language: Go
- Homepage:
- Size: 45.9 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# zorua [](https://github.com/zuh0/zorua/blob/master/LICENSE.md) [](https://goreportcard.com/report/github.com/zuh0/zorua) [](https://hub.docker.com/r/zuh0/zorua) [](https://hub.docker.com/r/zuh0/zorua/)
a simple Go client to update dynamic DNS synthetic records for Google Domains.
## Building
In order to build `zorua` you can just:
```
$ cd cmd/zorua
$ go build
```
This will produce an executable file called `zorua` which you can run directly.
## Usage
```
Usage of ./zorua:
-config string
path to the JSON configuration file (default "/etc/zorua/config.json")
```
The configuration file is a simple JSON-serialized file which should look like this:
The Username and Password entries are the ones generated by Google Domains when
you create your [synthetic record for dynamic DNS](https://support.google.com/domains/answer/6147083?hl=en).
```
{
"Domain": "test.example.com",
"Credentials": {
"Username": "TestUsername",
"Password": "TestPassword"
}
}
```
## Docker
In order to ease the installation of `zorua` in cloud native environments, you
can use the provided Docker image.
This tiny image is built nightly to pull in updates to the `golang` Docker
image and is a multi-architecture image working for the following
architectures:
* x86
* x86_64
* armv6
* armv7
* armv8 (aarch64)
```
$ docker run -v /path/to/zorua-config.json:/etc/zorua/config.json:ro zuh0/zorua
```
## Helm
A helm chart for `zorua` is available in [this](https://github.com/zuh0/sadm)
repository.
To install the helm chart you can simply create your own values file
`my-values.yaml` which could look like this:
```
# The cronExpression field is optional and will default to this:
cronExpression: "*/5 * * * *"
domain: example.com
credentials:
username: MyUsername
password: MyPassword
```
Then install it like this from the root of the `sadm` repository:
```
$ helm install zorua zorua -f my-values.yaml
```
This will setup `zorua` as a Kubernetes cron job checking for an IP update
every 5 minutes (you can change this interval by setting the `cronExpression`
field in your values file).