v2.8.0
Pre-built binaries are attached at the bottom of this release notes in the Assets section. Feel free to 👍 the release!
Features
- Read both domain ("eTLD+1") and owner (aka host) from the
domain
field- retro-compatible change,
host
orowner
field still work if set - documentation updated to only use the
domain
field
- retro-compatible change,
- Use umask from operating system to set permissions on created files
UMASK
option to configure a custom umask value to use
Fixes
- PublicIP HTTP echo: remove
google
provider which no longer works - Porkbun:
- noip: force
useProviderIP
tofalse
when using IPv6 - Don Dominio: remove unneeded
name
field - Upgrade github.com/qdm12/gosettings from v0.4.1 to v0.4.4-rc1
- Bump github.com/breml/rootcerts from 0.2.17 to 0.2.18 (#814)
Changes
- Deprecate
provider_ip
config field completely- change should not affect any existing configurations
- change solves issues with dual stack updates (#767)
- this option was unneeded and added unneeded complexity
Documentation
- Readme: add instructions to build latest binary
- Documentation updated to only use the
domain
field for both the domain and owner/host. - Readme: add
README.md
anddocs/
versioned links for each recent releases - Readme: add AUR package name to features list section
- Goip: fix documentation for the
host
parameter field - OVH: link to page to retrieve the
consumer_key
value - Porkbun: fix discrepancy in parameter field names
- Readme: remove outdated Kanban Github board link
Maintenance
Code health
- Rename
cmd/updater
tocmd/ddns-updater
to have binaries named asddns-updater
by default internal/providers
:- split out settings validation in its own pure function
- move domain check to each provider validation function
- typo 'agend' fixed to 'agent' in user agent banned error (#790)
internal/models
: remove unusedDomainHost
struct- rename
host
toowner
- Retro-compatible change,
host
field still works - Code updated to use owner variable name
- Retro-compatible change,
internal/providers/porkbun
: refactor API code to use a generichttpPost
functioninternal/persistence/json
: change mutex to be non embedded in Database struct- CI: ignore
duckdns.org
for links check
Dependencies
- Drop dependency on github.com/chmike/domain
- Bump golang.org/x/net from 0.26.0 to 0.29.0 (#806)
- Bump golang.org/x/oauth2 from 0.21.0 to 0.23.0 (#802)
- Bump github.com/qdm12/gosplash from 0.1.0 to 0.2.0 (#783)
- Bump github.com/miekg/dns from 1.1.61 to 1.1.62 (#815)
- Bump golang.org/x/mod from 0.18.0 to 0.21.0 (#801)
- Bump github.com/go-chi/chi/v5 from 5.0.12 to 5.1.0 (#755)
- Upgrade temporary build image Alpine from 3.19 to 3.20
- Bump docker/build-push-action from 5 to 6 (#747)
- Bump DavidAnson/markdownlint-cli2-action from 16 to 17 (#811)