🎄 🎅 🎁 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:
- 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 newerLookupNetIP
resolver function to usenetip.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