An open API service indexing awesome lists of open source software.

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

Awesome Lists containing this project

README

          

# zorua [![GitHub license](https://img.shields.io/github/license/zuh0/zorua.svg)](https://github.com/zuh0/zorua/blob/master/LICENSE.md) [![Go Report Card](https://goreportcard.com/badge/github.com/zuh0/zorua)](https://goreportcard.com/report/github.com/zuh0/zorua) [![Docker image size](https://img.shields.io/docker/image-size/zuh0/zorua/latest)](https://hub.docker.com/r/zuh0/zorua) [![Docker pulls](https://img.shields.io/docker/pulls/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).