Server to update GoogleDomains Dynamic DNS entries for a list of domains.
Runs a cron job to make a request to google for each domain entered.
Exposes APIs to manage the domains entered, as well as manually trigger the job when needed.
Also exposes a WebUI (unprotected) that utilizes the APIs to provide easy management.
{
"hostnames": [
{
"domain": "google.com",
"username": "google",
"password": "elgoog"
}
]
}
visit http://localhost:8000 in your browser
[GET]
/api/hostnames
[GET]
/api/hostnames/domain.com
[POST]
/api/hostnames
{
"domain": "google.com",
"username": "google",
"password": "elgoog"
}
[PUT]
/api/hostnames/domain.com
{
"username": "google",
"password": "elgoog"
}
[DELETE]
/api/hostnames/domain.com
[GET]
/api/triggerUpdate
docker pull stevenweathers/google-domains-ddns-updater
docker-compose up --build
This solution will require you to pass environment variables or setup the config file, as well as setup and manage the DB yourself.
docker build ./ -f ./build/Dockerfile -t gddu:latest
docker run --publish 8080:8080 --name gddu gddu:latest
go get
npm install
make build
npm run build
go build
Using svelte-i18n Google Domains DDNS Updater now supports Locale selection on the UI (Default en-US)
Adding new locale's involves just a couple of steps.
- First add the locale dictionary json files in
web/public/lang/default/
andweb/public/lang/friendly/
by copying the en.json and just changing the values of all keys - Second, the locale will need to be added to the locales list used by switcher component in
web/config.js
locales
object
Thunderdome may be configured through environment variables or via a yaml file config.yaml
located in one of:
/etc/google-domains-ddns-updater/
$HOME/.config/google-domains-ddns-updater/
- Current working directory
The following configuration options exists:
Option | Environment Variable | Description | Default Value |
---|---|---|---|
http.port |
PORT | Which port to listen for HTTP connections. | 8000 |
http.path_prefix |
PATH_PREFIX | Prefix added to all application urls for shared domain use, in format of /{prefix} e.g. /gddu |
|
config.toast_timeout |
CONFIG_TOAST_TIMEOUT | Number of milliseconds before notifications are hidden. | 1000 |
config.default_locale |
CONFIG_DEFAULT_LOCALE | The default locale (language) for the UI | en |
config.json_path |
JSONPATH | The path where the json file is stored | data/hostnames.json |
config.cadence |
CADENCE | The cadence at which the cron will run | @hourly |