go-diyDNS is a CLI application that allows you to update your DNS records without having to use a third party service.
git clone https://github.com/hayzamjs/go-diydns
make build
The binary should be located in the bin
directory. Make sure to have a config.json file in the same directory as the binary or specify a config file using the --config
flag.
./bin/go-diydns --config /path/to/config.json
Download the binary from the releases page.
./go-diydns --config /path/to/config.json
The configuration file is a JSON file that contains the following fields:
[
{
"name": "cloudflare-hayzam-diydns", // a descriptive name for the record (for logs)
"provider": "cloudflare", // provider (only cloudflare supported for now)
"token": "<token>", // API token for the provider
"domain": "diy1.hayzam.com", // domain to update
"interval": 5 // interval in seconds to update the record
},
{
"name": "cloudflare-hayzam-2",
"provider": "cloudflare",
"token": "<token>",
"domain": "diy2.hayzam.com",
"interval": 10
}
]
-
Add support for other providers
- Cloudflare
- DigitalOcean
- Godaddy
- Google Cloud DNS
- Route53
-
Add Github Actions to build and release binaries
I wrote this application to learn Go and I am not a Go expert. so please use the project with caution. I am sure there are many things that can be improved. If you have any suggestions, please open an issue or a PR.