1d40c2c1a1 | ||
---|---|---|
scripts | ||
.gitignore | ||
.gitlab-ci.yml | ||
Dockerfile.ubuntu | ||
LICENSE | ||
Makefile | ||
README.md | ||
go.mod | ||
go.sum | ||
main.go | ||
main_test.go | ||
renovate.json |
README.md
home-dns
Use Route53 for dynamic DNS.
Reads record name and zone from a YAML config and upserts on schedule.
Usage
Build
go get
go build
Config
The config file should have a source
endpoint and each record to be updated:
source: "https://api.ipify.org?format=text"
records:
- cron: "@hourly"
name: home.example.com.
ttl: 300
zone: Z1ABCDEF123456
- cron: "@daily"
name: office.example.com.
ttl: 86400
zone: Z1ABCDEF123456
Run
Execute with the config file:
AWS_PROFILE="home-root" ./home-dns config.yml
Disclaimer
I do not know Go very well at all, so this code may be quite bad.
Features
- multiple zones and records
- update on cron schedule
Roadmap
- cache the external address (on a schedule of its own?)
- interface selection for external check