github qdm12/ddns-updater v2.9.0

3 days ago

🎄 🎅 🎁 Merry Christmas 🎁🎅 🎄

Features

  • Support for domene.shop (#810)
  • Support for loopia.se (#842)
  • Support for vultr.com (#829)
  • Support myaddr.tools (#885)
  • Support for namesilo.com (#866)
  • Custom provider: allow empty ipv4 and ipv6 keys (see issue #875)
  • Possibility to run health server outside Docker and to disable it in a container
    • disable health server if the health listening address:port is empty
    • default health listening address:port to the empty string
    • Docker default health listening address:port to 127.0.0.1:9999

Fixes

  • Common update mechanism:
    • do not update if public IP address is within multiple IP addresses resolved
    • IPv6 hostname resolution fixed (it was previously only resolving IPv4)
  • Porkbun:
    • update API endpoint (#837)
    • delete default parked DNS entries if needed (#774)
      • delete default @ ALIAS entry when creating a record for the root domain or the wildcard domain
      • delete default * CNAME entry when creating a record for the wildcard domain
  • Gandi.net:
    • update API endpoint
    • leave ttl unmodified if the user does not specify it
  • DonDominio: wildcard support fixed
  • Netcup.de: allow wildcard domains (#863)
  • GCP: prevent crash for missing record (#846)
  • New file/directory permissions fixed given umask (see #813 for more details)
    • remove bad calculation of "our own" umask
    • remove umask "union effect"
    • do not touch system umask unless UMASK is set
    • set system umask only if UMASK is set
  • NoIP: handle response body messages before checking HTTP status code
  • Log: use go-chi realip middleware (#874)
  • Trim space and lower case all HTTP response 'plain' bodies
  • OVH: handling of invalid JSON error bodies fixed
  • Aliyun: error context fixed when handling bad request errors

Documentation

  • Readme: specify duckdns and goip are handled differently for multiple domains
  • GoIP: fix domain field documentation and add domain examples
    • eTLD must be goip.de or goip.it, not eTLD+1
    • remove old domain optional parameter documentation
  • DuckDNS: fix domain documentation on eTLD being duckdns.org and add domain examples

Maintenance

Code quality

  • do not re-check the owner is not empty within provider specific code
  • format code using gofumpt
  • Upgrade linter from v1.56.2 to v1.61.0
  • add new linters fatcontext, intrange and mirror
  • internal/update: use newer LookupNetIP resolver function to use netip.Addr directly

Dependencies

  • Upgrade Go from 1.22 to 1.23
  • Bump github.com/breml/rootcerts from 0.2.18 to 0.2.19 (#870)
  • Bump golang.org/x/net from 0.29.0 to 0.31.0
  • Bump github.com/qdm12/gosettings from 0.4.4-rc1 to 0.4.4
  • Bump golang.org/x/oauth2 from 0.23.0 to 0.24.0
  • Bump golang.org/x/mod from 0.21.0 to 0.22.0
  • Bump github.com/go-chi/chi/v5 from 5.1.0 to 5.2.0 (#881)
  • Bump github.com/stretchr/testify from 1.9.0 to 1.10.0 (#871)

CI

  • Bump DavidAnson/markdownlint-cli2-action from 17 to 18

Development setup

  • change field source.organizeImports from true to "always"
  • migrate docker-compose.yml settings to devcontainer.json for codespaces support
  • update devcontainer readme
  • pin qmcgaw/godevcontainer image tag to v0.20-alpine

Don't miss a new ddns-updater release

NewReleases is sending notifications on new releases.