Finally, a nice big update with lots of new features 😌. Among them, we want to highlight a couple of noticeable quality-of-life changes that have been requested for a long time.
Global protection pause
First of all, there's now a way to pause protection for a set period, ranging from 30 seconds to an entire day. This is great for when you need to access a site that's mistakenly blocked, or when you want to temporarily disable AdGuard Home without turning it off completely.
Once the pause time is out, AdGuard Home will switch protection back on.
Better Safe Search controls
Secondly, you can now fine-tune Safe Search settings by enabling or disabling it for specific services like Google, Bing, YouTube, and more.
The same can be done on a per-client basis as well. Another minor improvement to the Safe Search is better support for IPv6 addresses.
Acknowledgements
A special thanks to our open-source contributor, @Gobd, as well as to everyone who filed and inspected issues, added translations, and helped us test this release!
Full changelog
See also the v0.107.28 GitHub milestone.
Added
-
The ability to exclude client activity from the query log or statistics by using the new properties
ignore_querylog
andignore_statistics
of the items of theclients.persistent
array (#1717, #4299). The UI changes are coming in the upcoming releases. -
Better profiling information when
debug_pprof
is set totrue
. -
IPv6 support in Safe Search for some services.
-
The ability to make bootstrap DNS lookups prefer IPv6 addresses to IPv4 ones using the new
dns.bootstrap_prefer_ipv6
configuration file property (#4262). -
Docker container's healthcheck (#3290).
-
The new HTTP API
POST /control/protection
, that updates protection state and adds an optional pause duration (#1333). The format of request body is described inopenapi/openapi.yaml
. The duration of this pause could also be set with the propertyprotection_disabled_until
in thedns
object of the YAML configuration file. -
The ability to create a static DHCP lease from a dynamic one more easily (#3459).
-
Two new HTTP APIs,
PUT /control/stats/config/update
andGET control/stats/config
, which can be used to set and receive the query log configuration. Seeopenapi/openapi.yaml
for the full description. -
Two new HTTP APIs,
PUT /control/querylog/config/update
andGET control/querylog/config
, which can be used to set and receive the statistics configuration. Seeopenapi/openapi.yaml
for the full description. -
The ability to set custom IP for EDNS Client Subnet by using the DNS-server configuration section on the DNS settings page in the UI (#1472).
-
The ability to manage Safe Search for each service by using the new
safe_search
property (#1163).
Changed
- ARPA domain names containing a subnet within private networks now also considered private, behaving closer to RFC 6761 (#5567).
Configuration Changes
In this release, the schema version has changed from 17 to 20.
-
Property
statistics.interval
, which in schema versions 19 and earlier used to be an integer number of days, is now a string with a human-readable duration:# BEFORE: 'statistics': # … 'interval': 1 # AFTER: 'statistics': # … 'interval': '24h'
To rollback this change, convert the property back into days and change the
schema_version
back to19
. -
The
dns.safesearch_enabled
property has been replaced withsafe_search
object containing per-service settings. -
The
clients.persistent.safesearch_enabled
property has been replaced withsafe_search
object containing per-service settings.# BEFORE: 'safesearch_enabled': true # AFTER: 'safe_search': 'enabled': true 'bing': true 'duckduckgo': true 'google': true 'pixabay': true 'yandex': true 'youtube': true
To rollback this change, move the value of
dns.safe_search.enabled
into thedns.safesearch_enabled
, then removedns.safe_search
property. Do the same client's specificclients.persistent.safesearch
and then change theschema_version
back to17
.
Deprecated
-
The
POST /control/safesearch/enable
HTTP API is deprecated. Use the newPUT /control/safesearch/settings
API. -
The
POST /control/safesearch/disable
HTTP API is deprecated. Use the newPUT /control/safesearch/settings
API -
The
safesearch_enabled
property is deprecated in the following HTTP APIs:GET /control/clients
;POST /control/clients/add
;POST /control/clients/update
;GET /control/clients/find?ip0=...&ip1=...&ip2=...
.
Check
openapi/openapi.yaml
for more details. -
The
GET /control/stats_info
HTTP API; use the newGET /control/stats/config
API instead.NOTE: If interval is custom then it will be equal to
90
days for compatibility reasons. Seeopenapi/openapi.yaml
andopenapi/CHANGELOG.md
. -
The
POST /control/stats_config
HTTP API; use the newPUT /control/stats/config/update
API instead. -
The
GET /control/querylog_info
HTTP API; use the newGET /control/querylog/config
API instead.NOTE: If interval is custom then it will be equal to
90
days for compatibility reasons. Seeopenapi/openapi.yaml
andopenapi/CHANGELOG.md
. -
The
POST /control/querylog_config
HTTP API; use the newPUT /control/querylog/config/update
API instead.
Fixed
- Logging of the client's IP address after failed login attempts (#5701).