github qdm12/ddns-updater v2.1.0

latest releases: v2.6.0, v2.5.0, v2.4.1...
3 years ago

Features

  • Only call the DNS APIs if the public IP address changes (#63)
  • Only one ip method per ip version (ipv4, ipv6, ipv4/v6) (#63)
  • Fetches the public ip address once every period for all records (#63)
  • Support to update ipv4 and ipv6 records separately
  • Support multiple comma separated hosts for each setting
  • Read the JSON configuration from an environment variable CONFIG (#62)
  • New IP fetch methods:
    • Google (#69)
    • NoIP (#74)
    • ddnss.de removed as it's geo-blocked
  • New DNS providers support:
  • Cloudflare: obtain identifier programmatically (#71)
  • IPv6 support for all providers except Namecheap (#71 & #72)
  • Resolve IP addresses for each fqdn to compare with the public IP address obtained, instead of comparing with persisted values
  • Better log messages when IP address changes
  • Handle Cloudflare proxied records (#104)
  • Stop sending updates when record is in abuse state for a cooldown period UPDATE_COOLDOWN_PERIOD (#140)
  • OVH allow domain parameter (#111)
  • OVH subdomains (*) support with zone DNS (#154)
  • DDNSgopher favicon (#159)
  • Debug logs with debug log level
  • 5-tries DNS resolution per record hostname

Bug fixes

  • Cloudflare named as Dreamhost on Web UI (#79)
  • Accept Cloudflare tokens with a - in them (#86)
  • Remove regex domain check (#92)
  • Remove regex check for Clouidflare API key (#101)
  • Accept email addresses with + in them (#112)
  • Accept GoDaddy new key format (#113 and #169)
  • Listening port defaults to 8000 outside Docker (#152)
  • Remove GoDaddy secret regex check

Changes

  • DuckDNS setting changed to host instead of domain
  • Replace no_dns_lookup option with proxied option only valid for Clouflare (#160)

Documentation

  • Add issue templates
  • Readme improved (#106, #151, #165, #167)
  • Readme sections moved to docs (#128) (thanks @gauravspatel)
  • Timezone TZ variable (#90)
  • DuckDNS documentation fix (#171)
  • DDNSgopher logo in readme (#157)
  • Architecture section in readme

Maintenance

  • DNS provider names sorted alphabetically
  • UNSET status before a record gets updated the first time
  • Using Alpine 3.13 and Go 1.16 for building the binary
  • Update Go modules dependencies
  • Refactor HTTP servers (#164)
    • Rework current server
    • Update call is blocking
    • Run first update without blocking
  • Build information written to Go binary at build
  • Use native http.Client (#145) with http.NewRequestWithContext instead of custom client interface
  • Remove uuid dependency
  • Streamline HTTP headers setting
  • Logger upgraded with golibs (using native log instead of Uber's zap) (#170)
  • Replace DNSLookup() method name with Proxied() (#160)

Dev tooling

  • Update dev container settings
    • Go extension
    • Remove rewrap extension
    • SSH bind mount as read write
  • Remove local vscode directory
  • Upgrade golangci-lint to 1.37.0
  • Add more Go linters to .golangci.yml
  • Removed some Github workflows
    • Greetings doesn't work on forked PRs
    • Misspell is done with golangci-lint
    • Security workflow doesn't run on Scratch based docker images
  • Default BUILDPLATFORM=linux/amd64 for older Docker builds
  • Improve Github Actions workflows to build images for all branches and releases

Don't miss a new ddns-updater release

NewReleases is sending notifications on new releases.