Skip to content

Releases: AdguardTeam/AdGuardHome

AdGuard Home v0.108.0-b.37

13 Jun 15:22
Compare
Choose a tag to compare
Pre-release

Changes compared to the previous beta, v0.108.0-b.36. See CHANGELOG.md for all changes.

Full changelog

Fixed

  • DNSCrypt upstream not resetting the client and resolver information on dialing errors (#5872).

AdGuard Home v0.107.32

13 Jun 14:41
Compare
Choose a tag to compare

A hotfix release to fix a major issue in the previous release.

Full changelog

Fixed

  • DNSCrypt upstream not resetting the client and resolver information on dialing errors (#5872).

AdGuard Home v0.108.0-b.36

08 Jun 17:32
Compare
Choose a tag to compare
Pre-release

Changes compared to the previous beta, v0.108.0-b.35. See CHANGELOG.md for all changes.

Full changelog

Fixed

  • Startup errors on OpenWrt (#5872).

  • Plain-UDP upstreams always falling back to TCP, causing outages and slowdowns (#5873, #5874).

AdGuard Home v0.107.31

08 Jun 17:10
Compare
Choose a tag to compare

A hotfix release to fix two major issues in the previous release.

Full changelog

See also the v0.107.31 GitHub milestone.

Fixed

  • Startup errors on OpenWrt (#5872).

  • Plain-UDP upstreams always falling back to TCP, causing outages and slowdowns (#5873, #5874).

AdGuard Home v0.108.0-b.35

07 Jun 17:44
Compare
Choose a tag to compare
Pre-release

Changes compared to the previous beta, v0.108.0-b.34. See CHANGELOG.md for all changes.

Full changelog

Security

Added

  • The ability to edit rewrite rules via PUT /control/rewrite/update HTTP API (#1577).

Fixed

  • Unquoted IPv6 bind hosts with trailing colons erroneously considered unspecified addresses are now properly validated (#5752).

    NOTE: the Docker healthcheck script now also doesn't interpret the "" value as unspecified address.

  • Incorrect Content-Type header value in POST /control/version.json and GET /control/dhcp/interfaces HTTP APIs (#5716).

AdGuard Home v0.107.30

07 Jun 17:34
Compare
Choose a tag to compare

A small bugfix and security release. We are working on new features in future releases.

Full changelog

See also the v0.107.30 GitHub milestone.

Security

Fixed

  • Unquoted IPv6 bind hosts with trailing colons erroneously considered unspecified addresses are now properly validated (#5752).

    NOTE: the Docker healthcheck script now also doesn't interpret the "" value as unspecified address.

  • Incorrect Content-Type header value in POST /control/version.json and GET /control/dhcp/interfaces HTTP APIs (#5716).

  • Provided bootstrap servers are now used to resolve the hostnames of plain UDP/TCP upstream servers.

AdGuard Home v0.108.0-b.34

18 Apr 16:15
Compare
Choose a tag to compare
Pre-release

Changes compared to the previous beta, v0.108.0-b.33. See CHANGELOG.md for all changes.

Full changelog

Added

  • The ability to exclude client activity from the query log or statistics by editing client's settings on the respective page in the UI (#1717, #4299).

Changed

  • Stored DHCP leases moved from leases.db to data/leases.json. The file format has also been optimized.

Fixed

  • Provided bootstrap servers are now used to resolve the hostnames of plain UDP/TCP upstream servers.

  • The github.com/mdlayher/raw dependency has been temporarily returned to support raw connections on Darwin (#5712).

  • Incorrect recording of blocked results as β€œBlocked by CNAME or IP” in the query log (#5725).

  • All Safe Search services are unchecked by default.

  • Panic when a DNSCrypt stamp is invalid (#5721).

AdGuard Home v0.107.29

18 Apr 13:48
Compare
Choose a tag to compare

Our previous release took place on the International Day of Human Space Flight, but it seems like our rocket was not able to take off smoothly πŸ˜…. In this release, we're fixing a few annoying bugs as well as putting a shine on the client ignoring feature.

Full changelog

See also the v0.107.29 GitHub milestone.

Added

  • The ability to exclude client activity from the query log or statistics by editing client's settings on the respective page in the UI (#1717, #4299).

Changed

  • Stored DHCP leases moved from leases.db to data/leases.json. The file format has also been optimized.

Fixed

  • The github.com/mdlayher/raw dependency has been temporarily returned to support raw connections on Darwin (#5712).

  • Incorrect recording of blocked results as β€œBlocked by CNAME or IP” in the query log (#5725).

  • All Safe Search services are unchecked by default.

  • Panic when a DNSCrypt stamp is invalid (#5721).

AdGuard Home v0.108.0-b.33

12 Apr 15:04
Compare
Choose a tag to compare
Pre-release

Changes compared to the previous beta, v0.108.0-b.32. See CHANGELOG.md for all changes.

Full changelog

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.

Fixed

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

  • Occasional server freezes (#5661).

  • Safe Search not working despite being enabled (#5685).

AdGuard Home v0.107.28

12 Apr 13:47
Compare
Choose a tag to compare

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).