Skip to content

AdGuard Home v0.107.28

Compare
Choose a tag to compare
@adguard-bot adguard-bot released this 12 Apr 13:47
· 1006 commits to master since this release

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.

Screenshot from 2023-04-12 14-06-17

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.

Screenshot from 2023-04-12 14-10-55

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 and ignore_statistics of the items of the clients.persistent array (#1717, #4299). The UI changes are coming in the upcoming releases.

  • Better profiling information when debug_pprof is set to true.

  • 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 in openapi/openapi.yaml. The duration of this pause could also be set with the property protection_disabled_until in the dns 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 and GET control/stats/config, which can be used to set and receive the query log configuration. See openapi/openapi.yaml for the full description.

  • Two new HTTP APIs, PUT /control/querylog/config/update and GET control/querylog/config, which can be used to set and receive the statistics configuration. See openapi/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 to 19.

  • The dns.safesearch_enabled property has been replaced with safe_search object containing per-service settings.

  • The clients.persistent.safesearch_enabled property has been replaced with safe_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 the dns.safesearch_enabled, then remove dns.safe_search property. Do the same client's specific clients.persistent.safesearch and then change the schema_version back to 17.

Deprecated

  • The POST /control/safesearch/enable HTTP API is deprecated. Use the new PUT /control/safesearch/settings API.

  • The POST /control/safesearch/disable HTTP API is deprecated. Use the new PUT /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 new GET /control/stats/config API instead.

    NOTE: If interval is custom then it will be equal to 90 days for compatibility reasons. See openapi/openapi.yaml and openapi/CHANGELOG.md.

  • The POST /control/stats_config HTTP API; use the new PUT /control/stats/config/update API instead.

  • The GET /control/querylog_info HTTP API; use the new GET /control/querylog/config API instead.

    NOTE: If interval is custom then it will be equal to 90 days for compatibility reasons. See openapi/openapi.yaml and openapi/CHANGELOG.md.

  • The POST /control/querylog_config HTTP API; use the new PUT /control/querylog/config/update API instead.

Fixed

  • Logging of the client's IP address after failed login attempts (#5701).