From 0b14a117bc684cc11d2508a03d3ecf9a1335f5e8 Mon Sep 17 00:00:00 2001 From: Rahul Somasundaram Date: Thu, 22 Sep 2022 09:19:49 +0530 Subject: [PATCH 1/6] added support for hsts --- internal/home/control.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/internal/home/control.go b/internal/home/control.go index 54d1652ab19..f8a73c6cb57 100644 --- a/internal/home/control.go +++ b/internal/home/control.go @@ -310,6 +310,9 @@ func handleHTTPSRedirect(w http.ResponseWriter, r *http.Request) (ok bool) { Scheme: schemeHTTP, Host: r.Host, } + if config.TLS.Enabled { + w.Header().Add("Strict-Transport-Security", "max-age=63072000; includeSubDomains") + } w.Header().Set("Access-Control-Allow-Origin", originURL.String()) w.Header().Set("Vary", "Origin") From b456810f97b6b9900a5feaea5b001356d5e0a754 Mon Sep 17 00:00:00 2001 From: Rahul Somasundaram Date: Thu, 22 Sep 2022 09:34:07 +0530 Subject: [PATCH 2/6] [hsts] using forcehttps instead of enabled --- internal/home/control.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/home/control.go b/internal/home/control.go index f8a73c6cb57..65442770a8e 100644 --- a/internal/home/control.go +++ b/internal/home/control.go @@ -310,7 +310,7 @@ func handleHTTPSRedirect(w http.ResponseWriter, r *http.Request) (ok bool) { Scheme: schemeHTTP, Host: r.Host, } - if config.TLS.Enabled { + if config.TLS.ForceHTTPS { w.Header().Add("Strict-Transport-Security", "max-age=63072000; includeSubDomains") } w.Header().Set("Access-Control-Allow-Origin", originURL.String()) From bda07afe11f161d78326c68f0b54f635d32b2868 Mon Sep 17 00:00:00 2001 From: Rahul Somasundaram Date: Thu, 6 Oct 2022 22:07:54 +0530 Subject: [PATCH 3/6] updated changelog --- CHANGELOG.md | 3 +++ internal/home/control.go | 13 ++++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 551a3db1ff5..2ba0c493e85 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,10 +20,13 @@ and this project adheres to - The ability to put [ClientIDs][clientid] into DNS-over-HTTPS hostnames as opposed to URL paths ([#3418]). Note that AdGuard Home checks the server name only if the URL does not contain a ClientID. +- Support for [HSTS][hsts], if `tls.force_https` is enabled ([#4941]). [#3418]: https://github.com/AdguardTeam/AdGuardHome/issues/3418 +[#4941]: https://github.com/AdguardTeam/AdGuardHome/pull/4941 [clientid]: https://github.com/AdguardTeam/AdGuardHome/wiki/Clients#clientid +[hsts]: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security diff --git a/internal/home/control.go b/internal/home/control.go index 6bbc144c6b8..58c5ccf768e 100644 --- a/internal/home/control.go +++ b/internal/home/control.go @@ -320,6 +320,16 @@ func handleHTTPSRedirect(w http.ResponseWriter, r *http.Request) (ok bool) { return false } + // Add headers for HSTS + // This informs browsers that the site should only be accessed using HTTPS, + // and that any future attempts to access it using HTTP should automatically be + // converted to HTTPS. + // + // See https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security + if config.TLS.ForceHTTPS { + w.Header().Add("Strict-Transport-Security", "max-age=63072000; includeSubDomains") + } + if r.TLS == nil && web.forceHTTPS { hostPort := host if port := web.conf.PortHTTPS; port != defaultPortHTTPS { @@ -346,9 +356,6 @@ func handleHTTPSRedirect(w http.ResponseWriter, r *http.Request) (ok bool) { Scheme: aghhttp.SchemeHTTP, Host: r.Host, } - if config.TLS.ForceHTTPS { - w.Header().Add("Strict-Transport-Security", "max-age=63072000; includeSubDomains") - } w.Header().Set("Access-Control-Allow-Origin", originURL.String()) w.Header().Set("Vary", "Origin") From c8798450c70816a9c42a9d48827773cee10cd43a Mon Sep 17 00:00:00 2001 From: Rahul Somasundaram Date: Sun, 23 Oct 2022 09:07:57 +0530 Subject: [PATCH 4/6] Squashed commit of the following: commit b86250737e29b8656186ed34c6895ca1bd353cd3 Author: Ainar Garipov Date: Fri Oct 21 20:42:00 2022 +0300 Pull request: 5035-slices-clone Updates #5035. Squashed commit of the following: commit 9a5be90a347d4da08649927731b20fd5ecb90be2 Author: Ainar Garipov Date: Fri Oct 21 20:11:54 2022 +0300 all: use slices.Clone, netip.AddrPort commit a149d816d95edafe407f31f315bb509c10508971 Author: Eugene Burkov Date: Fri Oct 21 20:14:43 2022 +0300 Pull request: 4916 Editing filter Merge in DNS/adguard-home from 4916-fix-filter-edit to master Closes #4916. Squashed commit of the following: commit c31be58abf73ed6047edc04ee606bceeb698f1bb Merge: c9f3e337 67d89660 Author: Eugene Burkov Date: Fri Oct 21 19:58:16 2022 +0300 Merge branch 'master' into 4916-fix-filter-edit commit c9f3e337be8f005cc667d1cfd505f8cbca97cf20 Author: Eugene Burkov Date: Fri Oct 21 14:49:53 2022 +0300 filtering: imp docs commit ef8228fd51772fb4c1876864a1d8e41caec45a70 Author: Eugene Burkov Date: Fri Oct 21 12:40:00 2022 +0300 filtering: imp code commit 57fdbfca882537e50685b514f89bd9cf8a4cf5da Author: Eugene Burkov Date: Thu Oct 20 11:54:39 2022 +0300 filtering: imp docs commit 670ac9aa009f4d6b021c37992182492f943a5005 Author: Eugene Burkov Date: Wed Oct 19 21:03:26 2022 +0300 home: unexport close of clients container commit f5b29166ede4c89966740bee8d09b443fde9e475 Merge: 2e57624e 2de42284 Author: Eugene Burkov Date: Wed Oct 19 21:02:33 2022 +0300 Merge branch 'master' into 4916-fix-filter-edit commit 2e57624e00ff702ef469ec0aa129eae9b627e41f Author: Eugene Burkov Date: Wed Oct 19 21:01:19 2022 +0300 filtering: imp code, tests commit be56df7cef9b0548de3ac6bb9ced7705d7f31783 Author: Eugene Burkov Date: Tue Oct 18 15:31:30 2022 +0300 filtering: fix url edit commit 67d89660ca4142c6c14d9adec83acf2000ff0104 Author: Ainar Garipov Date: Fri Oct 21 19:21:21 2022 +0300 Pull request: upd-twosky Merge in DNS/adguard-home from upd-twosky to master Squashed commit of the following: commit aba02252dc754aa25a7ea117c0310f990d45eeed Author: Ainar Garipov Date: Fri Oct 21 19:13:24 2022 +0300 all: upd twosky commit 2a85d7dd7e3de2461c788ab5049c5899a332583c Author: Ainar Garipov Date: Fri Oct 21 14:05:10 2022 +0300 Pull request: 3972-hostlists-registry Updates #3972. Squashed commit of the following: commit 8341c13c39f38048796bc42c5f5337e1c8d3bcd4 Author: Ainar Garipov Date: Fri Oct 21 13:06:55 2022 +0300 all: imp docs commit b7f961c879abf288c347e5bf55182e7dfa8e84e4 Merge: 607077ca 68d13fcc Author: Ainar Garipov Date: Thu Oct 20 18:23:57 2022 +0300 Merge branch 'master' into 3972-hostlists-registry commit 607077ca8141f732d4678955c62cc2345958766b Author: Ainar Garipov Date: Thu Oct 20 18:07:09 2022 +0300 all: use hostlists registry commit 68d13fcc2b949bbf3c782076a54d6bd5fb1d3a8e Author: Eugene Burkov Date: Thu Oct 20 18:22:37 2022 +0300 Pull request: 5052 Close errors Merge in DNS/adguard-home from 5052-nonfatal-close to master Updates #5052. Squashed commit of the following: commit 8411de465a29517640556e7d2390059482e01e8a Author: Eugene Burkov Date: Thu Oct 20 16:54:52 2022 +0300 dnsforward: imp code commit d6dff964397d6d878267f24b844bc6040edec316 Author: Eugene Burkov Date: Thu Oct 20 16:48:55 2022 +0300 dnsforward: revert tmp stuff commit 519aaf21cd1929141ea1902388d40599dced55ea Author: Eugene Burkov Date: Thu Oct 20 16:28:32 2022 +0300 dnsforward: fix ups closing errors commit 2de42284a5f8cf8f75f77059ba13f09b26a5ee6d Author: Eugene Burkov Date: Wed Oct 19 16:13:05 2022 +0300 Pull request: 5044 Close upstreams Merge in DNS/adguard-home from 5044-close-upstreams to master Closes #5044. Squashed commit of the following: commit e121380ecb32bd2664d47f0968c68509156404c1 Author: Eugene Burkov Date: Wed Oct 19 15:54:17 2022 +0300 all: upd proxy again commit ce7fa539a7430a1a197fd45e7988697010c684db Author: Eugene Burkov Date: Wed Oct 19 14:30:46 2022 +0300 home: imp docs, names commit 851c5b8128149941cc469e6192ec9b4b1f92b0b5 Merge: b9ee5d63 d2a09e49 Author: Eugene Burkov Date: Wed Oct 19 14:21:44 2022 +0300 Merge branch 'master' into 5044-close-upstreams commit b9ee5d6348e696ff0b44dabee601469c545c8bd9 Author: Eugene Burkov Date: Wed Oct 19 14:20:15 2022 +0300 all: close upstreams more commit eaca476319dc64e7986e26e67110005938cf1278 Merge: f924bc7a 8dba4ecd Author: Eugene Burkov Date: Tue Oct 18 18:33:53 2022 +0300 Merge branch 'master' into 5044-close-upstreams commit f924bc7a836001f8bb7463de2b5ddaf1be1a53c1 Author: Eugene Burkov Date: Tue Oct 18 18:23:54 2022 +0300 all: imp code, docs commit 011fde16aa912fc78e3d6f60375cee73a0d88709 Author: Eugene Burkov Date: Tue Oct 18 17:26:40 2022 +0300 all: upd dnsproxy commit d2a09e49ff0c1f32674bd0dedae3267483b6e2e7 Author: Ainar Garipov Date: Wed Oct 19 13:18:34 2022 +0300 Pull request: upd-i18n Merge in DNS/adguard-home from upd-i18n to master Squashed commit of the following: commit 9c7c24b877dde94c0bcd6d680f28eda5a38d38a2 Author: Ainar Garipov Date: Wed Oct 19 13:02:18 2022 +0300 client: imp sr-cs commit 7daa7db4552daf234ad451d1634981713405f4fe Author: Ainar Garipov Date: Wed Oct 19 12:40:37 2022 +0300 client: upd i18n commit e0080ffa3aa0faab29957265683b901c888c21b6 Author: Ainar Garipov Date: Wed Oct 19 12:13:22 2022 +0300 Pull request: upd-companiesdb Merge in DNS/adguard-home from upd-companiesdb to master Squashed commit of the following: commit c38ccd89a46193b24393c00b4a83ed439f6d7469 Author: Ainar Garipov Date: Wed Oct 19 12:00:58 2022 +0300 client: upd trackers commit 8dba4ecd019b985a660a67d5575896bc4fa4aea7 Author: Ainar Garipov Date: Tue Oct 18 17:45:04 2022 +0300 Pull request: cve-id Merge in DNS/adguard-home from cve-id to master Squashed commit of the following: commit 5a5418db1992e49402a44a3c1cf9cffc132c8074 Author: Ainar Garipov Date: Tue Oct 18 17:28:49 2022 +0300 all: upd cve id commit aaaa56fce3cfea711bab3584e00f6d47acea6c02 Merge: fee81b31 ab79168b Author: Ainar Garipov Date: Fri Oct 14 20:44:29 2022 +0300 Pull request: 4990-custom-ciphers Updates #4925. Updates #4990. * commit 'ab79168b13a5680557147de098c740bca974392e': all: fix chlog home: refactor override updated changelog fixed formatting changed based on review changes done as per review comments added ciphers for h3 Pull request: imp-scripts Pull request: imp-stalebot spelling corrected UserPreferredCipherSuites added support for User prefered Ciphers Revert "adding TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA to safe cipher suite" adding TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA to safe cipher suite commit ab79168b13a5680557147de098c740bca974392e Author: Ainar Garipov Date: Fri Oct 14 20:19:25 2022 +0300 all: fix chlog commit 5ae826d8a99c0906a09e595459fe8418926c63fc Author: Ainar Garipov Date: Fri Oct 14 20:14:07 2022 +0300 home: refactor override commit a736f67205580dafa67e19f4b425148e49e20021 Merge: a126f514 fee81b31 Author: Ainar Garipov Date: Fri Oct 14 19:41:43 2022 +0300 Merge branch 'master' into 4990-custom-ciphers commit fee81b31eca6b1593aad6fe2c2780b0531998dec Author: Ainar Garipov Date: Fri Oct 14 19:37:14 2022 +0300 Pull request: 4925-refactor-tls-vol-2 Updates #4925. Squashed commit of the following: commit 4b221936ea6c2a244c404e95fa2a033571e07168 Author: Ainar Garipov Date: Fri Oct 14 19:03:42 2022 +0300 all: refactor tls commit a1acfbbae4c222a6edecc705b2d2344d77a9f2be Author: Ainar Garipov Date: Fri Oct 14 19:03:03 2022 +0300 Pull request: 4925-refactor-tls-vol-1 Merge in DNS/adguard-home from 4925-refactor-tls-vol-1 to master Squashed commit of the following: commit ad87b2e93183b28f2e38666cc4267fa8dfd1cca0 Author: Ainar Garipov Date: Fri Oct 14 18:49:22 2022 +0300 all: refactor tls, vol. 1 Co-Authored-By: Rahul Somasundaram commit 4582b1c9198dcbc1927b74080839e81ba347265a Author: Eugene Burkov Date: Fri Oct 14 15:29:44 2022 +0300 Pull request: Migrate to netip.Addr vol.1 Merge in DNS/adguard-home from 2926-lla-v6 to master Updates #2926. Updates #5035. Squashed commit of the following: commit 2e770d4b6d4e1ec3f7762f2f2466662983bf146c Merge: 25c1afc5 893358ea Author: Eugene Burkov Date: Fri Oct 14 15:14:56 2022 +0300 Merge branch 'master' into 2926-lla-v6 commit 25c1afc5f0a5027fafac9dee77618886aefee29c Author: Eugene Burkov Date: Thu Oct 13 18:24:20 2022 +0300 all: imp code, docs commit 59549c4f74ee17b10eae542d1f1828d4e59894c9 Author: Eugene Burkov Date: Tue Oct 11 18:49:09 2022 +0300 dhcpd: use netip initially commit 1af623096b0517d07752385540f2f750f7f5b3bb Author: Eugene Burkov Date: Fri Sep 30 18:03:52 2022 +0300 all: imp docs, code commit e9faeb71dbc0e887b25a7f3d5b33a401805f2ae7 Author: Eugene Burkov Date: Thu Sep 29 14:56:37 2022 +0300 all: use netip for web commit 38305e555a6884c3bd1b0839330b942ce0e59093 Author: Eugene Burkov Date: Wed Sep 28 19:13:58 2022 +0300 add basic lla commit 893358ea71aed0a4f23dfaa8d759d0054aa01f92 Author: Ainar Garipov Date: Thu Oct 13 18:27:20 2022 +0300 Pull request: 5023-readme-debug Closes #5023. Squashed commit of the following: commit d6e8412935fe977dc326b0a53dd4cfa53b15f627 Author: Ainar Garipov Date: Thu Oct 13 17:56:59 2022 +0300 all: fix align commit 28b1ac3c93a373e7516db5823c9119c0a944708f Author: Ainar Garipov Date: Thu Oct 13 17:43:18 2022 +0300 all: fix more links commit 29d7ad4b7973061686c4266738eae7dbf4102e5b Author: Ainar Garipov Date: Thu Oct 13 17:41:46 2022 +0300 all: imp readme, fix links commit f75438d6d4d58ff483d261b158308402d15a3276 Author: Ainar Garipov Date: Thu Oct 13 16:50:02 2022 +0300 all: imp readme commit f109fb17a4266e88033dac3dc547aff67545ed85 Author: Eugene Burkov Date: Tue Oct 11 19:49:35 2022 +0300 Pull request: 5010 revert default cache size Merge in DNS/adguard-home from 5010-default-settings to master Updates #5010. Squashed commit of the following: commit 19edb2c7ff47d35462d83703c766561d1c334daa Author: Eugene Burkov Date: Tue Oct 11 19:45:49 2022 +0300 all: imp log of changes commit a0ad92f0245830a64ed4e285b6017d04173fe2c7 Author: Eugene Burkov Date: Tue Oct 11 19:34:37 2022 +0300 home: revert default value commit 5604e335748206e493332536682262a0f6465c4e Author: Eugene Burkov Date: Tue Oct 11 15:58:02 2022 +0300 Pull request: 4942 cache poisoning Merge in DNS/adguard-home from 4942-cache-poisoning to master Updates #4942. Squashed commit of the following: commit aec2ccd21cfdc89ebf1a4f27e2f8278b3fb2f0bc Author: Eugene Burkov Date: Tue Oct 11 15:41:18 2022 +0300 all: imp wording commit dba35a161f5625f5adbb0ecad9b9146fb827528b Author: Eugene Burkov Date: Tue Oct 11 15:13:35 2022 +0300 all: upd proxy commit 67da0023912bd5d80e4c07ec687257627c73e169 Merge: 0eba31ca d42d1a7e Author: Ainar Garipov Date: Mon Oct 10 18:42:53 2022 +0300 Pull request: 4993-alt-svc Updates #4986. Updates #4993. * commit 'd42d1a7ea48850a97f6ab74c181e4348885a4068': all: imp chlog; dry; fix races updated changelog changes done based on review referred https port from config added h3 header commit d42d1a7ea48850a97f6ab74c181e4348885a4068 Author: Ainar Garipov Date: Mon Oct 10 18:34:53 2022 +0300 all: imp chlog; dry; fix races commit e4a42bf233075e5ac11051d818986420e2eb0945 Merge: 51f42673 0eba31ca Author: Ainar Garipov Date: Mon Oct 10 17:59:12 2022 +0300 Merge branch 'master' into 4993-alt-svc commit 0eba31ca031a2e712f6a6d00c355bc28635820bb Author: Ildar Kamalov Date: Mon Oct 10 17:49:19 2022 +0300 Pull request: 4815 fix table view of the query log modal Updates #4815 Squashed commit of the following: commit a547c546a2b3cdbfb6988c910d8a970e0189ae5a Merge: 3c1e745d f5602d9c Author: Ildar Kamalov Date: Mon Oct 10 17:40:38 2022 +0300 Merge branch 'master' into 4815-tablet-view-fix commit 3c1e745dc2e34a62be8264ad003b5e6c155bb241 Author: Ildar Kamalov Date: Mon Oct 10 16:50:10 2022 +0300 fix mobile view commit a1d0b36473982854eecf1d96cf5a7033059e7720 Author: Ildar Kamalov Date: Sun Oct 9 17:57:14 2022 +0300 client: fix styles commit f34f928e1dbeef5ed37a0de3515be8d12f2241f6 Author: Ildar Kamalov Date: Sun Oct 9 16:59:23 2022 +0300 client: fix table view of query log modal commit f5602d9c46fedf850f70ba08dc3cc73113e75483 Author: Ainar Garipov Date: Mon Oct 10 14:05:24 2022 +0300 Pull request: hup-reload Merge in DNS/adguard-home from hup-reload to master Squashed commit of the following: commit 5cd4ab85bdc7544a4eded2a61f5a5571175daa44 Author: Ainar Garipov Date: Fri Oct 7 19:58:17 2022 +0300 next: imp signal hdlr commit 8fd18e749fec46982d26fc408e661bd802586c37 Merge: a8780455 f1dd3334 Author: Ainar Garipov Date: Fri Oct 7 19:46:48 2022 +0300 Merge branch 'master' into hup-reload commit a87804550e15d7fe3d9ded2e5a736c395f96febd Merge: 349dbe54 960a7a75 Author: Ainar Garipov Date: Fri Oct 7 15:49:23 2022 +0300 Merge branch 'master' into hup-reload commit 349dbe54fe27eeaf56776c73c3cc5649018d4c60 Author: Ainar Garipov Date: Fri Oct 7 15:43:52 2022 +0300 next: imp docs, names commit 7287a86d283489127453009267911003cea5227e Author: Ainar Garipov Date: Fri Oct 7 13:39:44 2022 +0300 WIP all: impl dynamic reconfiguration commit f1dd33346a8580bc9493e85dfc0c3e8b15032a1e Author: Ainar Garipov Date: Fri Oct 7 17:05:01 2022 +0300 Pull request: upd-chlog Merge in DNS/adguard-home from upd-chlog to master Squashed commit of the following: commit 8885f3f2291947d76203873dce0ccfd5c270fa7f Author: Ainar Garipov Date: Fri Oct 7 16:56:38 2022 +0300 all: upd chlog commit 960a7a75ed44637a2fd936e3b4df87e13bcb0ba0 Author: Ainar Garipov Date: Fri Oct 7 15:48:51 2022 +0300 Pull request: upd-go Merge in DNS/adguard-home from upd-go to master Squashed commit of the following: commit 3dffc8b5d8951216c1e695472199fc9e9d85e1c7 Author: Ainar Garipov Date: Fri Oct 7 14:30:23 2022 +0300 all: fix chlog commit cca70bd6cd27d04cd7cebe14a4e4bef112ce2bcb Author: Ainar Garipov Date: Fri Oct 7 14:07:39 2022 +0300 all: upd go commit a126f514ff60aab1587c714f8fee8fbd6c59318b Author: Rahul Somasundaram Date: Thu Oct 6 21:48:22 2022 +0530 updated changelog commit c0c9d8adb0209f53c945172be7fcfd9d1cca1747 Author: Rahul Somasundaram Date: Thu Oct 6 21:44:43 2022 +0530 fixed formatting commit 7cac010573a46a8815baf5bf91b44e40f366b671 Author: Rahul Somasundaram Date: Thu Oct 6 21:37:15 2022 +0530 changed based on review 1. exit AG is user defined cipher is invalid 2. updated changelog 3. golang naming tweaks commit 51f426736caad69a9deedc9a37c870e5e4f3b537 Author: Rahul Somasundaram Date: Thu Oct 6 20:53:23 2022 +0530 updated changelog commit 0c0340d63e8a67c9c11e0c4df7a7d3d2343851a4 Author: Rahul Somasundaram Date: Thu Oct 6 20:44:55 2022 +0530 changes done based on review 1. set only `h3` header 2. set default max-age 3. support https redirect as well commit b7e815483e7fe60d87019f3b64ad557afa5b6814 Author: Rahul Somasundaram Date: Wed Oct 5 18:27:01 2022 +0530 referred https port from config commit 15b19ff7268da689933dd369862930afc98fcc8e Author: Rahul Somasundaram Date: Wed Oct 5 00:12:53 2022 +0530 changes done as per review comments commit 6a62f704e2e8e2f7bebabaf9095ce24f382d2ab2 Author: Rahul Somasundaram Date: Tue Oct 4 11:01:21 2022 +0530 added h3 header commit 24eb3476db53d9f5dc69b927238ee8ac1196e3c3 Author: Rahul Somasundaram Date: Tue Oct 4 09:51:55 2022 +0530 added ciphers for h3 commit 8a924cb4eda91df0d931055359723bd0c99c33d0 Merge: bf792b83 6e7964c9 Author: Rahul Somasundaram Date: Tue Oct 4 08:38:51 2022 +0530 fixed conflict commit 6e7964c9e7e8e1d999a2b402c0f60496d0cf7801 Author: Ainar Garipov Date: Wed Sep 21 19:21:13 2022 +0300 Pull request: imp-scripts Merge in DNS/adguard-home from imp-scripts to master Squashed commit of the following: commit ab63a8a2dd1b64287e00a2a6f747fd48b530709e Author: Ainar Garipov Date: Wed Sep 21 19:15:06 2022 +0300 all: imp scripts; upd tools; doc commit 9d59be4269f256bfa460c51c7573e1da46743b30 Author: Ainar Garipov Date: Wed Sep 21 15:02:35 2022 +0300 Pull request: imp-stalebot Merge in DNS/adguard-home from imp-stalebot to master Squashed commit of the following: commit d1fb5c6da25eeb168c53abfc7af714827a5242cd Author: Ainar Garipov Date: Wed Sep 21 14:31:50 2022 +0300 all: imp stalebot commit 690deb1c05cca5834b67d67c9a342b343422d7f4 Author: Rahul Somasundaram Date: Thu Sep 22 08:44:43 2022 +0530 spelling corrected UserPreferredCipherSuites commit 59d18c6598ac857da4810cd12fb6625b56a67155 Author: Rahul Somasundaram Date: Thu Sep 22 08:28:46 2022 +0530 added support for User prefered Ciphers commit 91bbb744dc94469210d254bd5219d35b43b3d3b5 Author: Rahul Somasundaram Date: Thu Sep 22 07:53:39 2022 +0530 Revert "adding TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA to safe cipher suite" This reverts commit fe0c53ec439940635864a9d1bc4687245dbe4373. commit fe0c53ec439940635864a9d1bc4687245dbe4373 Author: Rahul Somasundaram Date: Tue Sep 20 21:16:52 2022 +0530 adding TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA to safe cipher suite --- .github/ISSUE_TEMPLATE/config.yml | 5 + .github/workflows/build.yml | 2 +- .github/workflows/lint.yml | 2 +- CHANGELOG.md | 78 +- README.md | 579 +- bamboo-specs/release.yaml | 6 +- bamboo-specs/test.yaml | 2 +- client/src/__locales/be.json | 7 +- client/src/__locales/cs.json | 3 +- client/src/__locales/da.json | 3 +- client/src/__locales/de.json | 5 +- client/src/__locales/es.json | 3 +- client/src/__locales/fi.json | 3 +- client/src/__locales/fr.json | 3 +- client/src/__locales/hr.json | 3 +- client/src/__locales/hu.json | 3 +- client/src/__locales/id.json | 3 +- client/src/__locales/it.json | 3 +- client/src/__locales/ja.json | 3 +- client/src/__locales/ko.json | 3 +- client/src/__locales/nl.json | 3 +- client/src/__locales/no.json | 2 +- client/src/__locales/pl.json | 3 +- client/src/__locales/pt-br.json | 3 +- client/src/__locales/pt-pt.json | 3 +- client/src/__locales/ro.json | 3 +- client/src/__locales/ru.json | 3 +- client/src/__locales/si-lk.json | 4 +- client/src/__locales/sk.json | 3 +- client/src/__locales/sl.json | 3 +- client/src/__locales/sr-cs.json | 3 +- client/src/__locales/sv.json | 3 +- client/src/__locales/tr.json | 25 +- client/src/__locales/uk.json | 3 +- client/src/__locales/vi.json | 3 +- client/src/__locales/zh-cn.json | 3 +- client/src/__locales/zh-tw.json | 5 +- client/src/components/Filters/DnsBlocklist.js | 2 +- client/src/components/Filters/Form.js | 3 +- .../src/components/Logs/Cells/ClientCell.js | 2 +- .../src/components/Logs/Cells/IconTooltip.css | 27 +- client/src/components/Logs/Cells/index.js | 6 +- client/src/components/Logs/Logs.css | 4 +- client/src/components/Logs/index.js | 19 +- .../filters/{filters.json => filters.js} | 274 +- client/src/helpers/trackers/adguard.json | 77 +- client/src/helpers/trackers/whotracksme.json | 9643 +++++++++++------ go.mod | 8 +- go.sum | 16 +- internal/aghhttp/header.go | 3 + internal/aghnet/arpdb.go | 6 +- internal/aghnet/dhcp_unix.go | 31 +- internal/aghnet/hostscontainer.go | 4 + internal/aghnet/net.go | 161 +- internal/aghnet/net_linux.go | 14 +- internal/aghnet/net_test.go | 137 +- internal/aghos/filewalker_internal_test.go | 6 +- internal/aghos/os.go | 10 + internal/aghos/os_unix.go | 8 + internal/aghos/os_windows.go | 8 + internal/aghtest/interface.go | 23 +- internal/aghtest/interface_test.go | 8 +- internal/aghtest/upstream.go | 12 +- internal/aghtls/aghtls.go | 43 +- internal/aghtls/aghtls_test.go | 57 + internal/aghtls/root.go | 14 + internal/aghtls/root_linux.go | 56 + internal/aghtls/root_others.go | 9 + internal/dhcpd/config.go | 74 +- internal/dhcpd/conn_unix.go | 4 +- internal/dhcpd/dhcpd.go | 8 +- internal/dhcpd/dhcpd_unix_test.go | 39 +- internal/dhcpd/http_unix.go | 42 +- internal/dhcpd/iprange.go | 2 + internal/dhcpd/options_unix.go | 7 +- internal/dhcpd/options_unix_test.go | 2 - internal/dhcpd/v4_unix.go | 27 +- internal/dhcpd/v4_unix_test.go | 81 +- internal/dnsforward/access.go | 1 + internal/dnsforward/config.go | 27 +- internal/dnsforward/dns.go | 3 +- internal/dnsforward/dnsforward.go | 46 +- internal/dnsforward/http.go | 18 +- internal/dnsforward/http_test.go | 14 +- internal/dnsforward/stats.go | 3 +- internal/filtering/filter.go | 140 +- internal/filtering/filter_test.go | 50 +- internal/filtering/filtering.go | 16 +- internal/filtering/http.go | 28 +- internal/filtering/http_test.go | 143 + internal/filtering/rewrites.go | 4 +- internal/home/clients.go | 52 +- internal/home/clients_test.go | 9 +- internal/home/clientshttp.go | 1 + internal/home/config.go | 85 +- internal/home/control.go | 53 +- internal/home/controlinstall.go | 44 +- internal/home/dns.go | 39 +- internal/home/home.go | 38 +- internal/home/mobileconfig_test.go | 11 +- internal/home/options.go | 13 +- internal/home/options_test.go | 12 +- internal/home/tls.go | 658 +- .../{control_test.go => tls_internal_test.go} | 59 +- internal/home/web.go | 16 +- internal/next/agh/agh.go | 40 +- internal/next/cmd/cmd.go | 33 +- internal/next/cmd/signal.go | 68 +- internal/next/configmgr/config.go | 40 + internal/next/configmgr/configmgr.go | 205 + internal/next/dnssvc/dnssvc_test.go | 8 +- internal/next/websvc/dns_test.go | 3 +- internal/next/websvc/http.go | 3 +- internal/next/websvc/http_test.go | 3 +- internal/next/websvc/settings_test.go | 5 +- internal/next/websvc/websvc.go | 15 +- internal/next/websvc/websvc_test.go | 13 +- internal/querylog/json.go | 10 +- scripts/README.md | 25 +- scripts/companiesdb/download.sh | 4 +- scripts/make/go-build.sh | 4 +- scripts/make/go-lint.sh | 2 +- scripts/translations/package.json | 4 +- scripts/vetted-filters/main.go | 164 + 124 files changed, 9349 insertions(+), 4654 deletions(-) rename client/src/helpers/filters/{filters.json => filters.js} (59%) create mode 100644 internal/aghtls/aghtls_test.go create mode 100644 internal/aghtls/root.go create mode 100644 internal/aghtls/root_linux.go create mode 100644 internal/aghtls/root_others.go create mode 100644 internal/filtering/http_test.go rename internal/home/{control_test.go => tls_internal_test.go} (58%) create mode 100644 internal/next/configmgr/config.go create mode 100644 internal/next/configmgr/configmgr.go create mode 100644 scripts/vetted-filters/main.go diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 921e07cc408..c80d6d66ac4 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -6,6 +6,11 @@ website 'name': 'AdGuard filters issues' 'url': 'https://link.adtidy.org/forward.html?action=report&app=home&from=github' + - 'about': > + Please send requests for addition to the vetted filtering lists to the + Hostlists Registry repository. + 'name': 'AdGuard Hostlists Registry' + 'url': 'https://github.com/AdguardTeam/HostlistsRegistry' - 'about': > Please use GitHub Discussions for questions 'name': 'Q&A Discussions' diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index dbe2bad3762..bc2caa31258 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,7 +1,7 @@ 'name': 'build' 'env': - 'GO_VERSION': '1.18.6' + 'GO_VERSION': '1.18.7' 'NODE_VERSION': '14' 'on': diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 64719a3e71b..1028b6b10f4 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -1,7 +1,7 @@ 'name': 'lint' 'env': - 'GO_VERSION': '1.18.6' + 'GO_VERSION': '1.18.7' 'on': 'push': diff --git a/CHANGELOG.md b/CHANGELOG.md index 2ba0c493e85..458c656f909 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,12 +17,37 @@ and this project adheres to ## Added +- The new optional `tls.override_tls_ciphers` property, which allows + overriding TLS ciphers used by AdGuard Home ([#4925], [#4990]). +- The ability to serve DNS on link-local IPv6 addresses ([#2926]). - The ability to put [ClientIDs][clientid] into DNS-over-HTTPS hostnames as opposed to URL paths ([#3418]). Note that AdGuard Home checks the server name only if the URL does not contain a ClientID. - Support for [HSTS][hsts], if `tls.force_https` is enabled ([#4941]). +### Changed + +- Responses with `SERVFAIL` code are now cached for at least 30 seconds. + +### Fixed + +- Editing an enabled rule list's URL now also includes validation of the filter + contents preventing from saving a bad one ([#4916]). +- The default value of `dns.cache_size` accidentally set to 0 has now been + reverted to 4 MiB ([#5010]). +- Responses for which the DNSSEC validation had explicitly been omitted aren't + cached now ([#4942]). +- Web UI not switching to HTTP/3 ([#4986], [#4993]). + +[#2926]: https://github.com/AdguardTeam/AdGuardHome/issues/2926 [#3418]: https://github.com/AdguardTeam/AdGuardHome/issues/3418 +[#4916]: https://github.com/AdguardTeam/AdGuardHome/issues/4916 +[#4925]: https://github.com/AdguardTeam/AdGuardHome/issues/4925 +[#4942]: https://github.com/AdguardTeam/AdGuardHome/issues/4942 +[#4986]: https://github.com/AdguardTeam/AdGuardHome/issues/4986 +[#4990]: https://github.com/AdguardTeam/AdGuardHome/issues/4990 +[#4993]: https://github.com/AdguardTeam/AdGuardHome/issues/4993 +[#5010]: https://github.com/AdguardTeam/AdGuardHome/issues/5010 [#4941]: https://github.com/AdguardTeam/AdGuardHome/pull/4941 [clientid]: https://github.com/AdguardTeam/AdGuardHome/wiki/Clients#clientid @@ -31,15 +56,30 @@ and this project adheres to +## [v0.107.16] - 2022-10-07 + +This is a security update. There is no GitHub milestone, since no GitHub issues +were resolved. + +## Security + +- Go version has been updated to prevent the possibility of exploiting the + CVE-2022-2879, CVE-2022-2880, and CVE-2022-41715 Go vulnerabilities fixed in + [Go 1.18.7][go-1.18.7]. + +[go-1.18.7]: https://groups.google.com/g/golang-announce/c/xtuG5faxtaU + + + ## [v0.107.15] - 2022-10-03 See also the [v0.107.15 GitHub milestone][ms-v0.107.15]. @@ -78,7 +118,7 @@ experimental and may break or change in the future. [#4982]: https://github.com/AdguardTeam/AdGuardHome/issues/4982 [#4983]: https://github.com/AdguardTeam/AdGuardHome/issues/4983 -[ms-v0.107.15]: https://github.com/AdguardTeam/AdGuardHome/milestone/51?closed=1 +[ms-v0.107.15]: https://github.com/AdguardTeam/AdGuardHome/milestone/51?closed=1 @@ -88,9 +128,9 @@ See also the [v0.107.14 GitHub milestone][ms-v0.107.14]. ### Security -A Cross-Site Request Forgery (CSRF) vulnerability has been discovered. The CVE -number is to be assigned. We thank Daniel Elkabes from Mend.io for reporting -this vulnerability to us. +A Cross-Site Request Forgery (CSRF) vulnerability has been discovered. We thank +Daniel Elkabes from Mend.io for reporting this vulnerability to us. This is +[CVE-2022-32175]. #### `SameSite` Policy @@ -139,6 +179,7 @@ All JSON APIs that expect a body now check if the request actually has [#4927]: https://github.com/AdguardTeam/AdGuardHome/issues/4927 [#4930]: https://github.com/AdguardTeam/AdGuardHome/issues/4930 +[CVE-2022-32175]: https://www.cvedetails.com/cve/CVE-2022-32175 [ms-v0.107.14]: https://github.com/AdguardTeam/AdGuardHome/milestone/50?closed=1 @@ -166,7 +207,7 @@ See also the [v0.107.13 GitHub milestone][ms-v0.107.13]. [#4722]: https://github.com/AdguardTeam/AdGuardHome/issues/4722 [#4904]: https://github.com/AdguardTeam/AdGuardHome/issues/4904 -[ms-v0.107.13]: https://github.com/AdguardTeam/AdGuardHome/milestone/49?closed=1 +[ms-v0.107.13]: https://github.com/AdguardTeam/AdGuardHome/milestone/49?closed=1 @@ -176,7 +217,7 @@ See also the [v0.107.12 GitHub milestone][ms-v0.107.12]. ### Security -- Go version was updated to prevent the possibility of exploiting the +- Go version has been updated to prevent the possibility of exploiting the CVE-2022-27664 and CVE-2022-32190 Go vulnerabilities fixed in [Go 1.18.6][go-1.18.6]. @@ -297,7 +338,7 @@ See also the [v0.107.9 GitHub milestone][ms-v0.107.9]. ### Security -- Go version was updated to prevent the possibility of exploiting the +- Go version has been updated to prevent the possibility of exploiting the CVE-2022-32189 Go vulnerability fixed in [Go 1.18.5][go-1.18.5]. Go 1.17 support has also been removed, as it has reached end of life and will not receive security updates. @@ -340,7 +381,7 @@ See also the [v0.107.8 GitHub milestone][ms-v0.107.8]. ### Security -- Go version was updated to prevent the possibility of exploiting the +- Go version has been updated to prevent the possibility of exploiting the CVE-2022-1705, CVE-2022-32148, CVE-2022-30631, and other Go vulnerabilities fixed in [Go 1.17.12][go-1.17.12]. @@ -376,7 +417,7 @@ See also the [v0.107.7 GitHub milestone][ms-v0.107.7]. ### Security -- Go version was updated to prevent the possibility of exploiting the +- Go version has been updated to prevent the possibility of exploiting the [CVE-2022-29526], [CVE-2022-30634], [CVE-2022-30629], [CVE-2022-30580], and [CVE-2022-29804] Go vulnerabilities. - Enforced password strength policy ([#3503]). @@ -533,7 +574,7 @@ See also the [v0.107.6 GitHub milestone][ms-v0.107.6]. ### Security - `User-Agent` HTTP header removed from outgoing DNS-over-HTTPS requests. -- Go version was updated to prevent the possibility of exploiting the +- Go version has been updated to prevent the possibility of exploiting the [CVE-2022-24675], [CVE-2022-27536], and [CVE-2022-28327] Go vulnerabilities. ### Added @@ -588,7 +629,7 @@ were resolved. ### Security -- Go version was updated to prevent the possibility of exploiting the +- Go version has been updated to prevent the possibility of exploiting the [CVE-2022-24921] Go vulnerability. [CVE-2022-24921]: https://www.cvedetails.com/cve/CVE-2022-24921 @@ -601,7 +642,7 @@ See also the [v0.107.4 GitHub milestone][ms-v0.107.4]. ### Security -- Go version was updated to prevent the possibility of exploiting the +- Go version has been updated to prevent the possibility of exploiting the [CVE-2022-23806], [CVE-2022-23772], and [CVE-2022-23773] Go vulnerabilities. ### Fixed @@ -1338,11 +1379,12 @@ See also the [v0.104.2 GitHub milestone][ms-v0.104.2]. -[Unreleased]: https://github.com/AdguardTeam/AdGuardHome/compare/v0.107.15...HEAD +[Unreleased]: https://github.com/AdguardTeam/AdGuardHome/compare/v0.107.16...HEAD +[v0.107.16]: https://github.com/AdguardTeam/AdGuardHome/compare/v0.107.15...v0.107.16 [v0.107.15]: https://github.com/AdguardTeam/AdGuardHome/compare/v0.107.14...v0.107.15 [v0.107.14]: https://github.com/AdguardTeam/AdGuardHome/compare/v0.107.13...v0.107.14 [v0.107.13]: https://github.com/AdguardTeam/AdGuardHome/compare/v0.107.12...v0.107.13 diff --git a/README.md b/README.md index 43c9db891a8..1f2bc7a3ea4 100644 --- a/README.md +++ b/README.md @@ -10,68 +10,76 @@ Free and open source, powerful network-wide ads & trackers blocking DNS server.

-

AdGuard.com | Wiki | Reddit | Twitter | Telegram -

+

- Code Coverage + Code Coverage - Go Report Card + Go Report Card - Docker Pulls + Docker Pulls -
+
- Latest release + Latest release - adguard-home + adguard-home

- -
- +

- +

+
-
- -AdGuard Home is a network-wide software for blocking ads & tracking. After you set it up, it'll cover ALL your home devices, and you don't need any client-side software for that. +AdGuard Home is a network-wide software for blocking ads and tracking. After you +set it up, it'll cover ALL your home devices, and you don't need any client-side +software for that. It operates as a DNS server that re-routes tracking domains to a “black hole”, thus preventing your devices from connecting to those servers. It's based on -software we use for our public [AdGuard DNS](https://adguard-dns.io/) servers, -and both share a lot of code. +software we use for our public [AdGuard DNS] servers, and both share a lot of +code. + +[AdGuard DNS]: https://adguard-dns.io/ + + * [Getting Started](#getting-started) + * [Automated install (Unix)](#automated-install-linux-and-mac) + * [Alternative methods](#alternative-methods) + * [Guides](#guides) + * [API](#api) + * [Comparing AdGuard Home to other solutions](#comparison) + * [How is this different from public AdGuard DNS servers?](#comparison-adguard-dns) + * [How does AdGuard Home compare to Pi-Hole](#comparison-pi-hole) + * [How does AdGuard Home compare to traditional ad blockers](#comparison-adblock) + * [Known limitations](#comparison-limitations) + * [How to build from source](#how-to-build) + * [Prerequisites](#prerequisites) + * [Building](#building) + * [Contributing](#contributing) + * [Test unstable versions](#test-unstable-versions) + * [Reporting issues](#reporting-issues) + * [Help with translations](#translate) + * [Other](#help-other) + * [Projects that use AdGuard Home](#uses) + * [Acknowledgments](#acknowledgments) + * [Privacy](#privacy) -* [Getting Started](#getting-started) -* [Comparing AdGuard Home to other solutions](#comparison) - * [How is this different from public AdGuard DNS servers?](#comparison-adguard-dns) - * [How does AdGuard Home compare to Pi-Hole](#comparison-pi-hole) - * [How does AdGuard Home compare to traditional ad blockers](#comparison-adblock) -* [How to build from source](#how-to-build) -* [Contributing](#contributing) - * [Test unstable versions](#test-unstable-versions) - * [Reporting issues](#reporting-issues) - * [Help with translations](#translate) - * [Other](#help-other) -* [Projects that use AdGuard Home](#uses) -* [Acknowledgments](#acknowledgments) -* [Privacy](#privacy) - -## Getting Started -### Automated install (Linux and Mac) +## Getting Started + + ### Automated install (Unix) Run the following command in your terminal: @@ -80,73 +88,96 @@ curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/s ``` The script also accepts some options: -* `-c ` to use specified channel. -* `-r` to reinstall AdGuard Home; -* `-u` to uninstall AdGuard Home; -* `-v` for verbose output; + + * `-c ` to use specified channel; + * `-r` to reinstall AdGuard Home; + * `-u` to uninstall AdGuard Home; + * `-v` for verbose output. Note that options `-r` and `-u` are mutually exclusive. -### Alternative methods -#### Manual installation -Please read the **[Getting Started](https://github.com/AdguardTeam/AdGuardHome/wiki/Getting-Started)** article on our Wiki to learn how to install AdGuard Home manually, and how to configure your devices to use it. + ### Alternative methods + + #### Manual installation + +Please read the **[Getting Started][wiki-start]** article on our Wiki to learn +how to install AdGuard Home manually, and how to configure your devices to use +it. + + #### Docker + +You can use our official Docker image on [Docker Hub]. + + #### Snap Store + +If you're running **Linux,** there's a secure and easy way to install AdGuard +Home: get it from the [Snap Store]. + +[Docker Hub]: https://hub.docker.com/r/adguard/adguardhome +[Snap Store]: https://snapcraft.io/adguard-home +[wiki-start]: https://github.com/AdguardTeam/AdGuardHome/wiki/Getting-Started + + + + ### Guides + +See our [Wiki][wiki]. + +[wiki]: https://github.com/AdguardTeam/AdGuardHome/wiki + + + + ### API -#### Docker +If you want to integrate with AdGuard Home, you can use our [REST API][openapi]. +Alternatively, you can use this [python client][pyclient], which is used to +build the [AdGuard Home Hass.io Add-on][hassio]. -You can use our [official Docker image](https://hub.docker.com/r/adguard/adguardhome). +[hassio]: https://www.home-assistant.io/integrations/adguard/ +[openapi]: https://github.com/AdguardTeam/AdGuardHome/tree/master/openapi +[pyclient]: https://pypi.org/project/adguardhome/ -#### Snap Store -If you're running **Linux**, there's a secure and easy way to install AdGuard Home - you can get it from the [Snap Store](https://snapcraft.io/adguard-home). -### Guides +## Comparing AdGuard Home to other solutions -* [Getting Started](https://github.com/AdguardTeam/AdGuardHome/wiki/Getting-Started) - * [FAQ](https://github.com/AdguardTeam/AdGuardHome/wiki/FAQ) - * [How to Write Hosts Blocklists](https://github.com/AdguardTeam/AdGuardHome/wiki/Hosts-Blocklists) - * [Comparing AdGuard Home to Other Solutions](https://github.com/AdguardTeam/AdGuardHome/wiki/Comparison) -* Configuring AdGuard - * [Configuration](https://github.com/AdguardTeam/AdGuardHome/wiki/Configuration) - * [Configuring AdGuard Home Clients](https://github.com/AdguardTeam/AdGuardHome/wiki/Clients) - * [AdGuard Home as a DoH, DoT, or DoQ Server](https://github.com/AdguardTeam/AdGuardHome/wiki/Encryption) - * [AdGuard Home as a DNSCrypt Server](https://github.com/AdguardTeam/AdGuardHome/wiki/DNSCrypt) - * [AdGuard Home as a DHCP Server](https://github.com/AdguardTeam/AdGuardHome/wiki/DHCP) -* Installing AdGuard Home - * [Docker](https://github.com/AdguardTeam/AdGuardHome/wiki/Docker) - * [How to Install and Run AdGuard Home on a Raspberry Pi](https://github.com/AdguardTeam/AdGuardHome/wiki/Raspberry-Pi) - * [How to Install and Run AdGuard Home on a Virtual Private Server](https://github.com/AdguardTeam/AdGuardHome/wiki/VPS) -* [Verifying Releases](https://github.com/AdguardTeam/AdGuardHome/wiki/Verify-Releases) + ### How is this different from public AdGuard DNS servers? -### API +Running your own AdGuard Home server allows you to do much more than using a +public DNS server. It's a completely different level. See for yourself: -If you want to integrate with AdGuard Home, you can use our [REST API](https://github.com/AdguardTeam/AdGuardHome/tree/master/openapi). -Alternatively, you can use this [python client](https://pypi.org/project/adguardhome/), which is used to build the [AdGuard Home Hass.io Add-on](https://www.home-assistant.io/integrations/adguard/). + * Choose what exactly the server blocks and permits. - -## Comparing AdGuard Home to other solutions + * Monitor your network activity. - -### How is this different from public AdGuard DNS servers? + * Add your own custom filtering rules. -Running your own AdGuard Home server allows you to do much more than using a public DNS server. It's a completely different level. See for yourself: + * **Most importantly, it's your own server, and you are the only one who's in + control.** -* Choose what exactly the server blocks and permits. -* Monitor your network activity. -* Add your own custom filtering rules. -* **Most importantly, this is your own server, and you are the only one who's in control.** - -### How does AdGuard Home compare to Pi-Hole -At this point, AdGuard Home has a lot in common with Pi-Hole. Both block ads and trackers using "DNS sinkholing" method, and both allow customizing what's blocked. + ### How does AdGuard Home compare to Pi-Hole -> We're not going to stop here. DNS sinkholing is not a bad starting point, but this is just the beginning. +At this point, AdGuard Home has a lot in common with Pi-Hole. Both block ads +and trackers using the so-called “DNS sinkholing” method and both allow +customizing what's blocked. -AdGuard Home provides a lot of features out-of-the-box with no need to install and configure additional software. We want it to be simple to the point when even casual users can set it up with minimal effort. + -> Disclaimer: some of the listed features can be added to Pi-Hole by installing additional software or by manually using SSH terminal and reconfiguring one of the utilities Pi-Hole consists of. However, in our opinion, this cannot be legitimately counted as a Pi-Hole's feature. +AdGuard Home provides a lot of features out-of-the-box with no need to install +and configure additional software. We want it to be simple to the point when +even casual users can set it up with minimal effort. + +**Disclaimer:** some of the listed features can be added to Pi-Hole by +installing additional software or by manually using SSH terminal and +reconfiguring one of the utilities Pi-Hole consists of. However, in our +opinion, this cannot be legitimately counted as a Pi-Hole's feature. | Feature | AdGuard Home | Pi-Hole | |-------------------------------------------------------------------------|-------------------|-----------------------------------------------------------| @@ -162,53 +193,72 @@ AdGuard Home provides a lot of features out-of-the-box with no need to install a | Force Safe search on search engines | ✅ | ❌ | | Per-client (device) configuration | ✅ | ✅ | | Access settings (choose who can use AGH DNS) | ✅ | ❌ | -| Running [without root privileges](https://github.com/AdguardTeam/AdGuardHome/wiki/Getting-Started#running-without-superuser) | ✅ | ❌ | +| Running [without root privileges][wiki-noroot] | ✅ | ❌ | + +[wiki-noroot]: https://github.com/AdguardTeam/AdGuardHome/wiki/Getting-Started#running-without-superuser + - -### How does AdGuard Home compare to traditional ad blockers + + ### How does AdGuard Home compare to traditional ad blockers It depends. -“DNS sinkholing” is capable of blocking a big percentage of ads, but it lacks -flexibility and power of traditional ad blockers. You can get a good impression -about the difference between these methods by reading -[this article](https://adguard.com/en/blog/adguard-vs-adaway-dns66/). It -compares AdGuard for Android (a traditional ad blocker) to hosts-level ad -blockers (which are almost identical to DNS-based blockers in their -capabilities). This level of protection is enough for some users. +DNS sinkholing is capable of blocking a big percentage of ads, but it lacks +the flexibility and the power of traditional ad blockers. You can get a good +impression about the difference between these methods by reading [this +article][blog-adaway], which compares AdGuard for Android (a traditional ad +blocker) to hosts-level ad blockers (which are almost identical to DNS-based +blockers in their capabilities). This level of protection is enough for some +users. +Additionally, using a DNS-based blocker can help to block ads, tracking and +analytics requests on other types of devices, such as SmartTVs, smart speakers +or other kinds of IoT devices (on which you can't install traditional ad +blockers). -Additionally, using a DNS-based blocker can help to block ads, tracking and analytics requests on other types of devices, such as SmartTVs, smart speakers or other kinds of IoT devices (on which you can't install traditional ad blockers). -**Known limitations** + ### Known limitations Here are some examples of what cannot be blocked by a DNS-level blocker: -* YouTube, Twitch ads -* Facebook, Twitter, Instagram sponsored posts + * YouTube, Twitch ads; + + * Facebook, Twitter, Instagram sponsored posts. + +Essentially, any advertising that shares a domain with content cannot be blocked +by a DNS-level blocker. -Essentially, any advertising that shares a domain with content cannot be blocked by a DNS-level blocker. +Is there a chance to handle this in the future? DNS will never be enough to do +this. Our only option is to use a content blocking proxy like what we do in the +standalone AdGuard applications. We're [going to bring][issue-1228] this +feature support to AdGuard Home in the future. Unfortunately, even in this +case, there still will be cases when this won't be enough or would require quite +a complicated configuration. -Is there a chance to handle this in the future? DNS will never be enough to do this. Our only option is to use a content blocking proxy like what we do in the standalone AdGuard applications. We're [going to bring](https://github.com/AdguardTeam/AdGuardHome/issues/1228) this feature support to AdGuard Home in the future. Unfortunately, even in this case, there still will be cases when this won't be enough or would require quite a complicated configuration. +[blog-adaway]: https://adguard.com/blog/adguard-vs-adaway-dns66.html +[issue-1228]: https://github.com/AdguardTeam/AdGuardHome/issues/1228 - -## How to build from source -### Prerequisites + +## How to build from source + + ### Prerequisites Run `make init` to prepare the development environment. You will need this to build AdGuard Home: - * [go](https://golang.org/dl/) v1.18 or later. - * [node.js](https://nodejs.org/en/download/) v10.16.2 or later. - * [npm](https://www.npmjs.com/) v6.14 or later (temporary requirement, TODO: remove when redesign is finished). - * [yarn](https://yarnpkg.com/) v1.22.5 or later. + * [Go](https://golang.org/dl/) v1.18 or later; + * [Node.js](https://nodejs.org/en/download/) v10.16.2 or later; + * [npm](https://www.npmjs.com/) v6.14 or later; + * [yarn](https://yarnpkg.com/) v1.22.5 or later. + -### Building -Open Terminal and execute these commands: + ### Building + +Open your terminal and execute these commands: ```sh git clone https://github.com/AdguardTeam/AdGuardHome @@ -216,16 +266,18 @@ cd AdGuardHome make ``` -Please note, that the non-standard `-j` flag is currently not supported, so -building with `make -j 4` or setting your `MAKEFLAGS` to include, for example, -`-j 4` is likely to break the build. If you do have your `MAKEFLAGS` set to -that, and you don't want to change it, you can override it by running -`make -j 1`. +**NOTE:** The non-standard `-j` flag is currently not supported, so building +with `make -j 4` or setting your `MAKEFLAGS` to include, for example, `-j 4` is +likely to break the build. If you do have your `MAKEFLAGS` set to that, and you +don't want to change it, you can override it by running `make -j 1`. + +Check the [`Makefile`][src-makefile] to learn about other commands. -Check the [`Makefile`](https://github.com/AdguardTeam/AdGuardHome/blob/master/Makefile) to learn about other commands. + #### Building for a different platform -**Building for a different platform.** You can build AdGuard for any OS/ARCH just like any other Go project. -In order to do this, specify `GOOS` and `GOARCH` env variables before running make. +You can build AdGuard Home for any OS/ARCH that Go supports. In order to do +this, specify `GOOS` and `GOARCH` environment variables as macros when running +`make`. For example: @@ -239,168 +291,223 @@ or: make GOOS='linux' GOARCH='arm64' ``` -#### Preparing release + #### Preparing releases -You'll need this to prepare a release build: - -* [snapcraft](https://snapcraft.io/) - -Commands: +You'll need [`snapcraft`] to prepare a release build. Once installed, run the +following command: ```sh make build-release CHANNEL='...' VERSION='...' ``` -#### Docker image +See the [`build-release` target documentation][targ-release]. -* Run `make build-docker` to build the Docker image locally (the one that we publish to DockerHub). + #### Docker image -Please note, that we're using [Docker Buildx](https://docs.docker.com/buildx/working-with-buildx/) to build our official image. +Run `make build-docker` to build the Docker image locally (the one that we +publish to DockerHub). Please note, that we're using [Docker Buildx][buildx] to +build our official image. You may need to prepare before using these builds: -* (Linux-only) Install Qemu: `docker run --rm --privileged multiarch/qemu-user-static --reset -p yes --credential yes` -* Prepare builder: `docker buildx create --name buildx-builder --driver docker-container --use` + * (Linux-only) Install Qemu: + + ```sh + docker run --rm --privileged multiarch/qemu-user-static --reset -p yes --credential yes + ``` + + * Prepare the builder: + + ```sh + docker buildx create --name buildx-builder --driver docker-container --use + ``` + +See the [`build-docker` target documentation][targ-docker]. + + #### Debugging the frontend + +When you need to debug the frontend without recompiling the production version +every time, for example to check how your labels would look on a form, you can +run the frontend build a development environment. + +1. In a separate terminal, run: + + ```sh + ( cd ./client/ && env NODE_ENV='development' npm run watch ) + ``` + +2. Run your `AdGuardHome` binary with the `--local-frontend` flag, which + instructs AdGuard Home to ignore the built-in frontend files and use those + from the `./build/` directory. +3. Now any changes you make in the `./client/` directory should be recompiled + and become available on the web UI. Make sure that you disable the browser + cache to make sure that you actually get the recompiled version. -### Resources that we update periodically +[`snapcraft`]: https://snapcraft.io/ +[buildx]: https://docs.docker.com/buildx/working-with-buildx/ +[src-makefile]: https://github.com/AdguardTeam/AdGuardHome/blob/master/Makefile +[targ-docker]: https://github.com/AdguardTeam/AdGuardHome/tree/master/scripts#build-dockersh-build-a-multi-architecture-docker-image +[targ-release]: https://github.com/AdguardTeam/AdGuardHome/tree/master/scripts#build-releasesh-build-a-release-for-all-platforms -* `scripts/translations` -* `scripts/whotracksme` - -## Contributing -You are welcome to fork this repository, make your changes and submit a pull request — https://github.com/AdguardTeam/AdGuardHome/pulls +## Contributing -Please note that we don't expect people to contribute to both UI and golang parts of the program simultaneously. Ideally, the golang part is implemented first, i.e. configuration, API, and the functionality itself. The UI part can be implemented later in a different pull request by a different person. +You are welcome to fork this repository, make your changes and [submit a pull +request][pr]. Please make sure you follow our [code guidelines][guide] though. - -### Test unstable versions +Please note that we don't expect people to contribute to both UI and backend +parts of the program simultaneously. Ideally, the backend part is implemented +first, i.e. configuration, API, and the functionality itself. The UI part can +be implemented later in a different pull request by a different person. + +[guide]: https://github.com/AdguardTeam/CodeGuidelines/ +[pr]: https://github.com/AdguardTeam/AdGuardHome/pulls + + + + ### Test unstable versions There are two update channels that you can use: -* `beta` - beta version of AdGuard Home. More or less stable versions. -* `edge` - the newest version of AdGuard Home. New updates are pushed to this channel daily and it is the closest to the master branch you can get. + * `beta`: beta versions of AdGuard Home. More or less stable versions, + usually released every two weeks or more often. + + * `edge`: the newest version of AdGuard Home from the development branch. New + updates are pushed to this channel daily. There are three options how you can install an unstable version: -1. [Snap Store](https://snapcraft.io/adguard-home) -- look for "beta" and "edge" channels there. -2. [Docker Hub](https://hub.docker.com/r/adguard/adguardhome) -- look for "beta" and "edge" tags there. -3. Standalone builds. Use the automated installation script or look for the available builds below. +1. [Snap Store]: look for the `beta` and `edge` channels. -Beta: +2. [Docker Hub]: look for the `beta` and `edge` tags. -```sh -curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -c beta -``` +3. Standalone builds. Use the automated installation script or look for the + available builds [on the Wiki][wiki-platf]. -Edge: + Script to install a beta version: -```sh -curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -c edge -``` + ```sh + curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -c beta + ``` + + Script to install an edge version: + + ```sh + curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -c edge + ``` +[wiki-platf]: https://github.com/AdguardTeam/AdGuardHome/wiki/Platforms - * Beta channel builds - * Linux: [64-bit](https://static.adtidy.org/adguardhome/beta/AdGuardHome_linux_amd64.tar.gz), [32-bit](https://static.adtidy.org/adguardhome/beta/AdGuardHome_linux_386.tar.gz) - * Linux ARM: [32-bit ARMv6](https://static.adtidy.org/adguardhome/beta/AdGuardHome_linux_armv6.tar.gz) (recommended for Raspberry Pi OS stable), [64-bit](https://static.adtidy.org/adguardhome/beta/AdGuardHome_linux_arm64.tar.gz), [32-bit ARMv5](https://static.adtidy.org/adguardhome/beta/AdGuardHome_linux_armv5.tar.gz), [32-bit ARMv7](https://static.adtidy.org/adguardhome/beta/AdGuardHome_linux_armv7.tar.gz) - * Linux MIPS: [32-bit MIPS](https://static.adtidy.org/adguardhome/beta/AdGuardHome_linux_mips_softfloat.tar.gz), [32-bit MIPSLE](https://static.adtidy.org/adguardhome/beta/AdGuardHome_linux_mipsle_softfloat.tar.gz), [64-bit MIPS](https://static.adtidy.org/adguardhome/beta/AdGuardHome_linux_mips64_softfloat.tar.gz), [64-bit MIPSLE](https://static.adtidy.org/adguardhome/beta/AdGuardHome_linux_mips64le_softfloat.tar.gz) - * Windows: [64-bit](https://static.adtidy.org/adguardhome/beta/AdGuardHome_windows_amd64.zip), [32-bit](https://static.adtidy.org/adguardhome/beta/AdGuardHome_windows_386.zip) - * macOS: [64-bit](https://static.adtidy.org/adguardhome/beta/AdGuardHome_darwin_amd64.zip), [32-bit](https://static.adtidy.org/adguardhome/beta/AdGuardHome_darwin_386.zip) - * macOS ARM: [64-bit](https://static.adtidy.org/adguardhome/beta/AdGuardHome_darwin_arm64.zip) - * FreeBSD: [64-bit](https://static.adtidy.org/adguardhome/beta/AdGuardHome_freebsd_amd64.tar.gz), [32-bit](https://static.adtidy.org/adguardhome/beta/AdGuardHome_freebsd_386.tar.gz) - * FreeBSD ARM: [64-bit](https://static.adtidy.org/adguardhome/beta/AdGuardHome_freebsd_arm64.tar.gz), [32-bit ARMv5](https://static.adtidy.org/adguardhome/beta/AdGuardHome_freebsd_armv5.tar.gz), [32-bit ARMv6](https://static.adtidy.org/adguardhome/beta/AdGuardHome_freebsd_armv6.tar.gz), [32-bit ARMv7](https://static.adtidy.org/adguardhome/beta/AdGuardHome_freebsd_armv7.tar.gz) - * OpenBSD: (coming soon) - * OpenBSD ARM: (coming soon) - - * Edge channel builds - * Linux: [64-bit](https://static.adtidy.org/adguardhome/edge/AdGuardHome_linux_amd64.tar.gz), [32-bit](https://static.adtidy.org/adguardhome/edge/AdGuardHome_linux_386.tar.gz) - * Linux ARM: [32-bit ARMv6](https://static.adtidy.org/adguardhome/edge/AdGuardHome_linux_armv6.tar.gz) (recommended for Raspberry Pi OS stable), [64-bit](https://static.adtidy.org/adguardhome/edge/AdGuardHome_linux_arm64.tar.gz), [32-bit ARMv5](https://static.adtidy.org/adguardhome/edge/AdGuardHome_linux_armv5.tar.gz), [32-bit ARMv7](https://static.adtidy.org/adguardhome/edge/AdGuardHome_linux_armv7.tar.gz) - * Linux MIPS: [32-bit MIPS](https://static.adtidy.org/adguardhome/edge/AdGuardHome_linux_mips_softfloat.tar.gz), [32-bit MIPSLE](https://static.adtidy.org/adguardhome/edge/AdGuardHome_linux_mipsle_softfloat.tar.gz), [64-bit MIPS](https://static.adtidy.org/adguardhome/edge/AdGuardHome_linux_mips64_softfloat.tar.gz), [64-bit MIPSLE](https://static.adtidy.org/adguardhome/edge/AdGuardHome_linux_mips64le_softfloat.tar.gz) - * Windows: [64-bit](https://static.adtidy.org/adguardhome/edge/AdGuardHome_windows_amd64.zip), [32-bit](https://static.adtidy.org/adguardhome/edge/AdGuardHome_windows_386.zip) - * macOS: [64-bit](https://static.adtidy.org/adguardhome/edge/AdGuardHome_darwin_amd64.zip), [32-bit](https://static.adtidy.org/adguardhome/edge/AdGuardHome_darwin_386.zip) - * macOS ARM: [64-bit](https://static.adtidy.org/adguardhome/edge/AdGuardHome_darwin_arm64.zip) - * FreeBSD: [64-bit](https://static.adtidy.org/adguardhome/edge/AdGuardHome_freebsd_amd64.tar.gz), [32-bit](https://static.adtidy.org/adguardhome/edge/AdGuardHome_freebsd_386.tar.gz) - * FreeBSD ARM: [64-bit](https://static.adtidy.org/adguardhome/edge/AdGuardHome_freebsd_arm64.tar.gz), [32-bit ARMv5](https://static.adtidy.org/adguardhome/edge/AdGuardHome_freebsd_armv5.tar.gz), [32-bit ARMv6](https://static.adtidy.org/adguardhome/edge/AdGuardHome_freebsd_armv6.tar.gz), [32-bit ARMv7](https://static.adtidy.org/adguardhome/edge/AdGuardHome_freebsd_armv7.tar.gz) - * OpenBSD: [64-bit (experimental)](https://static.adtidy.org/adguardhome/edge/AdGuardHome_openbsd_amd64.tar.gz) - * OpenBSD ARM: [64-bit (experimental)](https://static.adtidy.org/adguardhome/edge/AdGuardHome_openbsd_arm64.tar.gz) - - - -### Report issues - -If you run into any problem or have a suggestion, head to [this page](https://github.com/AdguardTeam/AdGuardHome/issues) and click on the `New issue` button. - - -### Help with translations + + + ### Report issues + +If you run into any problem or have a suggestion, head to [this page][iss] and +click on the “New issue” button. + +[iss]: https://github.com/AdguardTeam/AdGuardHome/issues + + + + ### Help with translations If you want to help with AdGuard Home translations, please learn more about -translating AdGuard products -[in our Knowledge Base](https://kb.adguard.com/en/general/adguard-translations). - -Here is a link to AdGuard Home project: - - - -### Other - -Here's what you can also do to contribute: - -1. [Look for issues][helpissues] marked as "help wanted". -2. Actualize the list of *Blocked services*. It can be found in - [filtering/blocked.go][blocked.go]. -3. Actualize the list of known *trackers*. It it can be found in [this repo] - [companiesdb]. -4. Actualize the list of vetted *blocklists*. It it can be found in - [client/src/helpers/filters/filters.json][filters.json]. - -[helpissues]: https://github.com/AdguardTeam/AdGuardHome/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22+ -[blocked.go]: https://github.com/AdguardTeam/AdGuardHome/blob/master/internal/filtering/blocked.go -[companiesdb]: https://github.com/AdguardTeam/companiesdb -[filters.json]: https://github.com/AdguardTeam/AdGuardHome/blob/master/client/src/helpers/filters/filters.json - - -## Projects that use AdGuard Home - -* [AdGuard Home Remote](https://apps.apple.com/app/apple-store/id1543143740) - iOS app by [Joost](https://rocketscience-it.nl/) -* [Python library](https://github.com/frenck/python-adguardhome) by [@frenck](https://github.com/frenck) -* [Home Assistant add-on](https://github.com/hassio-addons/addon-adguard-home) by [@frenck](https://github.com/frenck) -* [OpenWrt LUCI app](https://github.com/kongfl888/luci-app-adguardhome) by [@kongfl888](https://github.com/kongfl888) (originally by [@rufengsuixing](https://github.com/rufengsuixing)) -* [Prometheus exporter for AdGuard Home](https://github.com/ebrianne/adguard-exporter) by [@ebrianne](https://github.com/ebrianne) -* [AdGuard Home on GLInet routers](https://forum.gl-inet.com/t/adguardhome-on-gl-routers/10664) by [Gl-Inet](https://gl-inet.com/) -* [Cloudron app](https://git.cloudron.io/cloudron/adguard-home-app) by [@gramakri](https://github.com/gramakri) -* [Asuswrt-Merlin-AdGuardHome-Installer](https://github.com/jumpsmm7/Asuswrt-Merlin-AdGuardHome-Installer) by [@jumpsmm7](https://github.com/jumpsmm7) aka [@SomeWhereOverTheRainBow](https://www.snbforums.com/members/somewhereovertherainbow.64179/) -* [Node.js library](https://github.com/Andrea055/AdguardHomeAPI) by [@Andrea055](https://github.com/Andrea055/) - - -## Acknowledgments +translating AdGuard products [in our Knowledge Base][kb-trans]. You can +contribute to the [AdGuardHome project on CrowdIn][crowdin]. + +[crowdin]: https://crowdin.com/project/adguard-applications/en#/adguard-home +[kb-trans]: https://kb.adguard.com/en/general/adguard-translations + + + + ### Other + +Another way you can contribute is by [looking for issues][iss-help] marked as +`help wanted`, asking if the issue is up for grabs, and sending a PR fixing the +bug or implementing the feature. + +[iss-help]: https://github.com/AdguardTeam/AdGuardHome/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22 + + + +## Projects that use AdGuard Home + + + + * [AdGuard Home Remote](https://apps.apple.com/app/apple-store/id1543143740): + iOS app by [Joost](https://rocketscience-it.nl/). + + * [Python library](https://github.com/frenck/python-adguardhome) by + [@frenck](https://github.com/frenck). + + * [Home Assistant add-on](https://github.com/hassio-addons/addon-adguard-home) + by [@frenck](https://github.com/frenck). + + * [OpenWrt LUCI app](https://github.com/kongfl888/luci-app-adguardhome) by + [@kongfl888](https://github.com/kongfl888) (originally by + [@rufengsuixing](https://github.com/rufengsuixing)). + + * [Prometheus exporter for AdGuard + Home](https://github.com/ebrianne/adguard-exporter) by + [@ebrianne](https://github.com/ebrianne). + + * [AdGuard Home on GLInet + routers](https://forum.gl-inet.com/t/adguardhome-on-gl-routers/10664) by + [Gl-Inet](https://gl-inet.com/). + + * [Cloudron app](https://git.cloudron.io/cloudron/adguard-home-app) by + [@gramakri](https://github.com/gramakri). + + * [Asuswrt-Merlin-AdGuardHome-Installer](https://github.com/jumpsmm7/Asuswrt-Merlin-AdGuardHome-Installer) + by [@jumpsmm7](https://github.com/jumpsmm7) aka + [@SomeWhereOverTheRainBow](https://www.snbforums.com/members/somewhereovertherainbow.64179/). + + * [Node.js library](https://github.com/Andrea055/AdguardHomeAPI) by + [@Andrea055](https://github.com/Andrea055/). + + + +## Acknowledgments + + This software wouldn't have been possible without: - * [Go](https://golang.org/dl/) and its libraries: - * [gcache](https://github.com/bluele/gcache) - * [miekg's dns](https://github.com/miekg/dns) - * [go-yaml](https://github.com/go-yaml/yaml) - * [service](https://godoc.org/github.com/kardianos/service) - * [dnsproxy](https://github.com/AdguardTeam/dnsproxy) - * [urlfilter](https://github.com/AdguardTeam/urlfilter) - * [Node.js](https://nodejs.org/) and its libraries: - * [React.js](https://reactjs.org) - * [Tabler](https://github.com/tabler/tabler) - * And many more node.js packages. - * [whotracks.me data](https://github.com/cliqz-oss/whotracks.me) + * [Go](https://golang.org/dl/) and its libraries: + * [gcache](https://github.com/bluele/gcache) + * [miekg's dns](https://github.com/miekg/dns) + * [go-yaml](https://github.com/go-yaml/yaml) + * [service](https://godoc.org/github.com/kardianos/service) + * [dnsproxy](https://github.com/AdguardTeam/dnsproxy) + * [urlfilter](https://github.com/AdguardTeam/urlfilter) + * [Node.js](https://nodejs.org/) and its libraries: + * And many more Node.js packages. + * [React.js](https://reactjs.org) + * [Tabler](https://github.com/tabler/tabler) + * [whotracks.me data](https://github.com/cliqz-oss/whotracks.me) + +You might have seen that [CoreDNS] was mentioned here before, but we've stopped +using it in AdGuard Home. -You might have seen that [CoreDNS](https://coredns.io) was mentioned here -before, but we've stopped using it in AdGuard Home. +For the full list of all Node.js packages in use, please take a look at +[`client/package.json`][src-packagejson] file. -For a full list of all node.js packages in use, please take a look at [client/package.json](https://github.com/AdguardTeam/AdGuardHome/blob/master/client/package.json) file. +[CoreDNS]: https://coredns.io +[src-packagejson]: https://github.com/AdguardTeam/AdGuardHome/blob/master/client/package.json - -## Privacy +## Privacy + Our main idea is that you are the one, who should be in control of your data. So it is only natural, that AdGuard Home does not collect any usage statistics, -and does not use any web services unless you configure it to do so. Full policy -with every bit that *could in theory be* sent by AdGuard Home is available -[here](https://adguard.com/en/privacy/home.html) +and does not use any web services unless you configure it to do so. See also +the [full privacy policy][privacy] with every bit that *could in theory be sent* +by AdGuard Home is available. + +[privacy]: https://adguard.com/en/privacy/home.html diff --git a/bamboo-specs/release.yaml b/bamboo-specs/release.yaml index ddd957348a2..4232b734e80 100644 --- a/bamboo-specs/release.yaml +++ b/bamboo-specs/release.yaml @@ -7,7 +7,7 @@ # Make sure to sync any changes with the branch overrides below. 'variables': 'channel': 'edge' - 'dockerGo': 'adguard/golang-ubuntu:5.1' + 'dockerGo': 'adguard/golang-ubuntu:5.2' 'stages': - 'Build frontend': @@ -322,7 +322,7 @@ # need to build a few of these. 'variables': 'channel': 'beta' - 'dockerGo': 'adguard/golang-ubuntu:5.1' + 'dockerGo': 'adguard/golang-ubuntu:5.2' # release-vX.Y.Z branches are the branches from which the actual final release # is built. - '^release-v[0-9]+\.[0-9]+\.[0-9]+': @@ -337,4 +337,4 @@ # are the ones that actually get released. 'variables': 'channel': 'release' - 'dockerGo': 'adguard/golang-ubuntu:5.1' + 'dockerGo': 'adguard/golang-ubuntu:5.2' diff --git a/bamboo-specs/test.yaml b/bamboo-specs/test.yaml index fe26bd10f67..81796e1f273 100644 --- a/bamboo-specs/test.yaml +++ b/bamboo-specs/test.yaml @@ -5,7 +5,7 @@ 'key': 'AHBRTSPECS' 'name': 'AdGuard Home - Build and run tests' 'variables': - 'dockerGo': 'adguard/golang-ubuntu:5.1' + 'dockerGo': 'adguard/golang-ubuntu:5.2' 'stages': - 'Tests': diff --git a/client/src/__locales/be.json b/client/src/__locales/be.json index c666daab95d..af646119628 100644 --- a/client/src/__locales/be.json +++ b/client/src/__locales/be.json @@ -139,7 +139,7 @@ "average_processing_time": "Сярэдні час апрацоўкі запыту", "average_processing_time_hint": "Сярэдні час для апрацоўкі запыту DNS у мілісекундах", "block_domain_use_filters_and_hosts": "Блакаваць дамены з выкарыстаннем фільтраў і файлаў хастоў", - "filters_block_toggle_hint": "Вы можаце наладзіць правілы блакавання ў «Фільтрах».", + "filters_block_toggle_hint": "Вы можаце наладзіць правілы блакавання ў «Фільтрах».", "use_adguard_browsing_sec": "Выкарыстаць Бяспечную навігацыю AdGuard", "use_adguard_browsing_sec_hint": "AdGuard Home праверыць, ці ўлучаны дамен у ўэб-службу бяспекі браўзара. Ён будзе выкарыстоўваць API, каб выканаць праверку: на сервер адсылаецца толькі кароткі прэфікс імя дамена SHA256.", "use_adguard_parental": "Ужывайце модуль Бацькоўскага кантролю AdGuard ", @@ -215,6 +215,7 @@ "example_upstream_udp": "звычайны DNS (праз UDP, імя хаста);", "example_upstream_dot": "зашыфраваны <0>DNS-over-TLS;", "example_upstream_doh": "зашыфраваны <0>DNS-over-HTTPS;", + "example_upstream_doh3": "зашыфраваны DNS-над-HTTPS з прымусовым <0>HTTP/3 і без вяртання да HTTP/2 або ніжэй;", "example_upstream_doq": "зашыфраваны <0>DNS-over-QUIC;", "example_upstream_sdns": "<0>DNS Stamps для <1>DNSCrypt ці <2>DNS-over-HTTPS рэзалвераў;", "example_upstream_tcp": "звычайны DNS (наўзверх TCP);", @@ -339,7 +340,7 @@ "install_devices_router_list_3": "Увядзіце туды адрас вашага AdGuard Home.", "install_devices_router_list_4": "Вы не можаце ўсталяваць уласны DNS-сервер на некаторых тыпах маршрутызатараў. У гэтым выпадку можа дапамагчы налада AdGuard Home у якасці DHCP-сервера. У адваротным выпадку вам трэба звярнуцца да кіраўніцтва па наладзе DNS-сервераў для вашай пэўнай мадэлі маршрутызатара.", "install_devices_windows_list_1": "Адкрыйце Панэль кіравання праз меню «Пуск» ці праз пошук Windows.", - "install_devices_windows_list_2": "Перайдзіце ў «Сеціва і інтэрнэт», а потым у «Цэнтр кіравання сеціва і агульным доступам»", + "install_devices_windows_list_2": "Перайдзіце ў «Сеціва і інтэрнэт», а потым у «Цэнтр кіравання сеціва і агульным доступам».", "install_devices_windows_list_3": "У левым боку экрана клікніце «Змена параметраў адаптара».", "install_devices_windows_list_4": "Пстрыкніце правай кнопкай мышы ваша актыўнае злучэнне і абярыце Уласцівасці.", "install_devices_windows_list_5": "Знайдзіце ў спісе пункт «IP версіі 4 (TCP/IPv4)», вылучыце яго і потым ізноў націсніце «Уласцівасці».", @@ -605,7 +606,7 @@ "blocklist": "Чорны спіс", "milliseconds_abbreviation": "мс", "cache_size": "Памер кэша", - "cache_size_desc": "Памер кэша DNS (у байтах).", + "cache_size_desc": "Памер кэша DNS (у байтах). Каб адключыць кэшаванне, пакіньце пустым.", "cache_ttl_min_override": "Перавызначыць мінімальны TTL", "cache_ttl_max_override": "Перавызначыць максімальны TTL", "enter_cache_size": "Увядзіце памер кэша (байты)", diff --git a/client/src/__locales/cs.json b/client/src/__locales/cs.json index 8c879b09738..160b1046e92 100644 --- a/client/src/__locales/cs.json +++ b/client/src/__locales/cs.json @@ -215,6 +215,7 @@ "example_upstream_udp": "obvyklý DNS (skrze UDP, název hostitele);", "example_upstream_dot": "šifrovaný <0>DNS skrze TLS;", "example_upstream_doh": "šifrovaný <0>DNS skrze HTTPS;", + "example_upstream_doh3": "šifrovaný DNS skrze HTTPS s vynuceným <0>HTTP/3 a bez možnosti zpětného přechodu na HTTP/2 nebo nižší;", "example_upstream_doq": "šifrovaný <0>DNS skrze QUIC;", "example_upstream_sdns": "<0>DNS razítka pro <1>DNSCrypt nebo <2>DNS skrze HTTPS řešitele;", "example_upstream_tcp": "obvyklý DNS (přes TCP);", @@ -605,7 +606,7 @@ "blocklist": "Zakázaný", "milliseconds_abbreviation": "ms", "cache_size": "Velikost mezipaměti", - "cache_size_desc": "Velikost mezipaměti DNS (v bajtech).", + "cache_size_desc": "Velikost mezipaměti DNS (v bajtech). Chcete-li ukládání do mezipaměti zakázat, ponechte prázdné.", "cache_ttl_min_override": "Přepsat minimální hodnotu TTL", "cache_ttl_max_override": "Přepsat maximální hodnotu TTL", "enter_cache_size": "Zadejte velikost mezipaměti (v bajtech)", diff --git a/client/src/__locales/da.json b/client/src/__locales/da.json index 0df5ff7207b..941645d8ad0 100644 --- a/client/src/__locales/da.json +++ b/client/src/__locales/da.json @@ -215,6 +215,7 @@ "example_upstream_udp": "almindelig DNS (over UDP, værtsnavn);", "example_upstream_dot": "krypteret <0>DNS-over-TLS", "example_upstream_doh": "krypteret <0>DNS-over-HTTPS", + "example_upstream_doh3": "krypteret DNS-over-HTTPS med tvungen <0>HTTP/3 uden fallback til HTTP/2 eller lavere;", "example_upstream_doq": "krypteret <0>DNS-over-QUIC;", "example_upstream_sdns": "<0>DNS Stamps til <1>DNSCrypt eller <2>DNS-over-HTTPS-opløsere;", "example_upstream_tcp": "almindelig DNS (over TCP)", @@ -605,7 +606,7 @@ "blocklist": "Sortliste", "milliseconds_abbreviation": "ms", "cache_size": "Cache-størrelse", - "cache_size_desc": "DNS cache-størrelse (i bytes).", + "cache_size_desc": "DNS cache-størrelse (i bytes). Lad stå tomt for at deaktivere cache.", "cache_ttl_min_override": "Tilsidesæt minimum TTL", "cache_ttl_max_override": "Tilsidesæt maksimal TTL", "enter_cache_size": "Angiv cache-størrelse (bytes)", diff --git a/client/src/__locales/de.json b/client/src/__locales/de.json index cff3d43d9dc..25c4bd9eec9 100644 --- a/client/src/__locales/de.json +++ b/client/src/__locales/de.json @@ -215,6 +215,7 @@ "example_upstream_udp": "normales DNS (über UDP, Hostname);", "example_upstream_dot": "verschlüsseltes <0>DNS-over-TLS;", "example_upstream_doh": "verschlüsseltes <0>DNS-over-HTTPS;", + "example_upstream_doh3": "verschlüsseltes DNS-over-HTTPS mit erzwungenem <0>HTTP/3 und keinem Fallback zu HTTP/2 oder darunter;", "example_upstream_doq": "verschlüsseltes <0>DNS-over-QUIC;", "example_upstream_sdns": "<0>DNS-Stempel für <1>DNSCrypt oder <2>DNS-over-HTTPS Resolver;", "example_upstream_tcp": "reguläres DNS (over TCP);", @@ -447,7 +448,7 @@ "access_disallowed_title": "Nicht zugelassene Clients", "access_disallowed_desc": "Eine Liste von CIDRs, IP-Adressen oder ClientIDs. Wenn diese Liste gefüllt ist, weist AdGuard Home Anfragen von diesen Clients zurück. Dieses Feld wird ignoriert, wenn es Einträge in der Liste „Zugelassene Clients“ gibt.", "access_blocked_title": "Nicht zugelassene Domains", - "access_blocked_desc": "Verwechseln Sie dies nicht mit Filtern. AdGuard Home verwirft DNS-Abfragen, die mit diesen Domänen übereinstimmen, und diese Abfragen erscheinen nicht einmal im Abfrageprotokoll. Hier können Sie die genauen Domain-Namen, Wildcards und URL-Filter-Regeln angeben, z.B. „example.org“, „*.example.org“ oder „||example.org^“.", + "access_blocked_desc": "Nicht zu verwechseln mit Filtern. AdGuard Home verwirft DNS-Anfragen, die mit diesen Domains übereinstimmen, und diese Abfragen werden nicht einmal im Abfrageprotokoll angezeigt. Sie können exakte Domainnamen, Wildcards oder URL-Filterregeln angeben, z. B. „example.org“, „*.example.org“ oder „||example.org^“.", "access_settings_saved": "Zugriffseinstellungen erfolgreich gespeichert", "updates_checked": "Neue Version von AdGuard Home ist jetzt verfügbar", "updates_version_equal": "AdGuard Home ist aktuell", @@ -605,7 +606,7 @@ "blocklist": "Sperrliste", "milliseconds_abbreviation": "ms", "cache_size": "Größe des Cache", - "cache_size_desc": "Größe des DNS-Zwischenspeichers (in Bytes).", + "cache_size_desc": "Größe des DNS-Zwischenspeichers (in Bytes)", "cache_ttl_min_override": "TTL-Minimalwert überschreiben", "cache_ttl_max_override": "TTL-Höchstwert überschreiben", "enter_cache_size": "Größe des Cache (Bytes) eingeben", diff --git a/client/src/__locales/es.json b/client/src/__locales/es.json index 506f98d7f7c..8f8eaf11c19 100644 --- a/client/src/__locales/es.json +++ b/client/src/__locales/es.json @@ -215,6 +215,7 @@ "example_upstream_udp": "DNS regular (mediante UDP, nombre del host).", "example_upstream_dot": "cifrado <0>DNS mediante TLS.", "example_upstream_doh": "cifrado <0>DNS mediante HTTPS.", + "example_upstream_doh3": "cifrado DNS mediante HTTPS con <0>HTTP/3 forzado y sin alternativa a HTTP/2 o inferior.", "example_upstream_doq": "cifrado <0>DNS mediante QUIC.", "example_upstream_sdns": "<0>DNS Stamps para <1>DNSCrypt o resolutores <2>DNS mediante HTTPS.", "example_upstream_tcp": "DNS regular (mediante TCP).", @@ -605,7 +606,7 @@ "blocklist": "Lista de bloqueo", "milliseconds_abbreviation": "ms", "cache_size": "Tamaño de la caché", - "cache_size_desc": "Tamaño de la caché DNS (en bytes).", + "cache_size_desc": "Tamaño de la caché DNS (en bytes). Para deshabilitar el almacenamiento en caché, déjalo vacío.", "cache_ttl_min_override": "Anular TTL mínimo", "cache_ttl_max_override": "Anular TTL máximo", "enter_cache_size": "Ingresa el tamaño de la caché (bytes)", diff --git a/client/src/__locales/fi.json b/client/src/__locales/fi.json index 3231d0878d2..3ceca18cecc 100644 --- a/client/src/__locales/fi.json +++ b/client/src/__locales/fi.json @@ -215,6 +215,7 @@ "example_upstream_udp": "tavallinen DNS (UDP, isäntänimi);", "example_upstream_dot": "salattu <0>DNS-over-TLS;", "example_upstream_doh": "salattu <0>DNS-over-HTTPS;", + "example_upstream_doh3": "salattu DNS-over-HTTPS <0>HTTP/3-pakotuksella, ilman HTTP/2 (tai alempi) -varmistusta;", "example_upstream_doq": "salattu <0>DNS-over-QUIC;", "example_upstream_sdns": "<0>DNS Stamp -merkinnät <1>DNSCrypt tai <2>DNS-over-HTTPS -resolvereille;", "example_upstream_tcp": "tavallinen DNS (TCP);", @@ -605,7 +606,7 @@ "blocklist": "Estolista", "milliseconds_abbreviation": "ms", "cache_size": "Välimuistin koko", - "cache_size_desc": "DNS-välimuistin koko (tavuina).", + "cache_size_desc": "DNS-välimuistin koko (tavuina). Jätä tyhjäksi poistaaksesi välimuistin käytöstä.", "cache_ttl_min_override": "Korvaa vähimmäis-TTL", "cache_ttl_max_override": "Korvaa enimmäis-TTL", "enter_cache_size": "Syötä välimuistin koko (tavuina)", diff --git a/client/src/__locales/fr.json b/client/src/__locales/fr.json index f9528e8287f..3f840948259 100644 --- a/client/src/__locales/fr.json +++ b/client/src/__locales/fr.json @@ -215,6 +215,7 @@ "example_upstream_udp": "DNS normal (sur UDP, nom d’hôte) ;", "example_upstream_dot": "<0>DNS-over-TLS chiffré ;", "example_upstream_doh": "<0>DNS-over-HTTPS chiffré ;", + "example_upstream_doh3": "DNS-over-HTTPS chiffré avec <0>HTTP/3 forcé sans repli sur HTTP/2 ou inférieur ;", "example_upstream_doq": "<0>DNS-over-QUIC chiffré;", "example_upstream_sdns": "vous pouvez utiliser <0>DNS Stamps pour <1>DNSCrypt ou les résolveurs <2>DNS_over_HTTPS ;", "example_upstream_tcp": "DNS classique (au-dessus de TCP) ;", @@ -605,7 +606,7 @@ "blocklist": "Liste de blocage", "milliseconds_abbreviation": "ms", "cache_size": "Taille du cache", - "cache_size_desc": "Taille du cache DNS (en bytes) .", + "cache_size_desc": "Taille du cache DNS (en octets). Pour désactiver la mise en cache, laissez vide.", "cache_ttl_min_override": "Remplacer le TTL minimum", "cache_ttl_max_override": "Remplacer le TTL maximum", "enter_cache_size": "Entrer la taille du cache (octets)", diff --git a/client/src/__locales/hr.json b/client/src/__locales/hr.json index 8a64f6c8fd6..e3ec2290aa0 100644 --- a/client/src/__locales/hr.json +++ b/client/src/__locales/hr.json @@ -215,6 +215,7 @@ "example_upstream_udp": "obični DNS (preko UDP-a, ime hosta);", "example_upstream_dot": "šifrirano <0>DNS-over-TLS;", "example_upstream_doh": "šifrirano <0>DNS-over-HTTPS;", + "example_upstream_doh3": "šifrirani DNS-over-HTTPS s prisilnim <0>HTTP/3 i nema povratka na HTTP/2 ili niže;", "example_upstream_doq": "šifrirano <0>DNS-over-QUIC (eksperimentalno);", "example_upstream_sdns": "<0>DNS Stamps za <1>DNSCrypt ili <2>DNS-over-HTTPS rezolvere;", "example_upstream_tcp": "zadani DNS (putem TCP);", @@ -605,7 +606,7 @@ "blocklist": "Popis nedopuštenih", "milliseconds_abbreviation": "ms", "cache_size": "Veličina predmemorije", - "cache_size_desc": "Veličina DNS predmemorije (u bajtovima).", + "cache_size_desc": "Veličina DNS predmemorije (u bajtovima). Da biste onemogućili predmemoriju, ostavite prazno.", "cache_ttl_min_override": "Nadjačaj minimum TTL-a", "cache_ttl_max_override": "Nadjačaj maksimum TTL-a", "enter_cache_size": "Unesite veličinu predmemorije (u bajtovima)", diff --git a/client/src/__locales/hu.json b/client/src/__locales/hu.json index 7bc43b33a3a..1c1cd839180 100644 --- a/client/src/__locales/hu.json +++ b/client/src/__locales/hu.json @@ -215,6 +215,7 @@ "example_upstream_udp": "normál DNS (UDP felett, hostnév);", "example_upstream_dot": "titkosított <0>DNS-over-TLS;", "example_upstream_doh": "titkosított <0>DNS-over-HTTPS;", + "example_upstream_doh3": "titkosított DNS-over-HTTPS kényszerített <0>HTTP/3-mal és nincs visszalépés a HTTP/2-re vagy az alább;", "example_upstream_doq": "titkosított <0>DNS-over-QUIC;", "example_upstream_sdns": "<0>DNS Stamps a <1>DNSCrypt vagy <2>DNS-over-HTTPS feloldókhoz;", "example_upstream_tcp": "hagyományos DNS (TCP felett);", @@ -605,7 +606,7 @@ "blocklist": "Tiltólista", "milliseconds_abbreviation": "ms", "cache_size": "Gyorsítótár mérete", - "cache_size_desc": "DNS gyorsítótár mérete (bájtokban).", + "cache_size_desc": "DNS-gyorsítótár mérete (byte-ban). A gyorsítótárazás letiltásához hagyja üresen.", "cache_ttl_min_override": "A minimális TTL felülírása", "cache_ttl_max_override": "A maximális TTL felülírása", "enter_cache_size": "Adja meg a gyorsítótár méretét", diff --git a/client/src/__locales/id.json b/client/src/__locales/id.json index beb011f0fde..93526063577 100644 --- a/client/src/__locales/id.json +++ b/client/src/__locales/id.json @@ -215,6 +215,7 @@ "example_upstream_udp": "DNS biasa (lebih dari UDP, nama host);", "example_upstream_dot": "terenkripsi <0>DNS-over-TLS;", "example_upstream_doh": "terenkripsi <0>DNS-over-HTTPS;", + "example_upstream_doh3": "DNS-over-HTTPS terenkripsi dengan paksa <0>HTTP/3 dan tidak ada fallback ke HTTP/2 atau lebih rendah;", "example_upstream_doq": "terenkripsi <0>DNS-over-QUIC;", "example_upstream_sdns": "<0>Stempel DNS untuk <1>DNSCrypt atau pengarah <2>DNS-over-HTTPS;", "example_upstream_tcp": "DNS reguler (melalui TCP);", @@ -605,7 +606,7 @@ "blocklist": "Daftar blokir", "milliseconds_abbreviation": "ms", "cache_size": "Ukuran cache", - "cache_size_desc": "Ukuran DNS cache (dalam bit).", + "cache_size_desc": "Ukuran cache DNS (dalam byte). Untuk menonaktifkan caching, biarkan kosong.", "cache_ttl_min_override": "Tumpuk TTL minimum", "cache_ttl_max_override": "Tumpuk TTL maksimum", "enter_cache_size": "Masukkan ukuran cache (bytes)", diff --git a/client/src/__locales/it.json b/client/src/__locales/it.json index 74b109ff7f7..499a8d8144c 100644 --- a/client/src/__locales/it.json +++ b/client/src/__locales/it.json @@ -215,6 +215,7 @@ "example_upstream_udp": "DNS regolare (over UDP, nome host);", "example_upstream_dot": "<0>DNS su TLS crittografato;", "example_upstream_doh": "<0>DNS su HTTPS crittografato;", + "example_upstream_doh3": "DNS-over-HTTPS crittografato con <0>HTTP/3 forzato e nessun fallback su HTTP/2 o inferiore;", "example_upstream_doq": "<0>DNS su QUIC crittografato;", "example_upstream_sdns": "<0>DNS Stamps per <1>DNSCrypt oppure i risolutori <2>DNS su HTTPS;", "example_upstream_tcp": "DNS regolare (over TCP);", @@ -605,7 +606,7 @@ "blocklist": "Lista nera", "milliseconds_abbreviation": "ms", "cache_size": "Dimensioni cache", - "cache_size_desc": "Dimensioni cache DNS (in byte).", + "cache_size_desc": "Dimensione della cache DNS (in byte). Per disabilitare la memorizzazione nella cache, lascia vuoto.", "cache_ttl_min_override": "Sovrascrivi TTL minimo", "cache_ttl_max_override": "Sovrascrivi TTL massimo", "enter_cache_size": "Immetti dimensioni cache (in byte)", diff --git a/client/src/__locales/ja.json b/client/src/__locales/ja.json index 9fc9ac6f23d..e4faaa0680e 100644 --- a/client/src/__locales/ja.json +++ b/client/src/__locales/ja.json @@ -215,6 +215,7 @@ "example_upstream_udp": "通常のDNS(over UDP, ホスト名)。", "example_upstream_dot": "暗号化されている <0>DNS-over-TLS。", "example_upstream_doh": "暗号化されている <0>DNS-over-HTTPS。", + "example_upstream_doh3": "暗号化されたDNS-over-HTTPS(<0>HTTP/3の強制、HTTP/2 以下へのフォールバックなし)", "example_upstream_doq": "暗号化 <0>DNS-over-QUIC。", "example_upstream_sdns": "<1>DNSCrypt または <2>DNS-over-HTTPS リゾルバのための <0>DNS Stamps。", "example_upstream_tcp": "通常のDNS(over TCP)。", @@ -605,7 +606,7 @@ "blocklist": "ブロックリスト", "milliseconds_abbreviation": "ms", "cache_size": "キャッシュサイズ", - "cache_size_desc": "DNSキャッシュサイズ(バイト単位)", + "cache_size_desc": "DNSキャッシュサイズ(バイト単位)。※キャッシュを無効化するには、この欄を空してください。", "cache_ttl_min_override": "最小TTLの上書き(秒単位)", "cache_ttl_max_override": "最大TTLの上書き(秒単位)", "enter_cache_size": "キャッシュサイズ(バイト単位)を入力してください", diff --git a/client/src/__locales/ko.json b/client/src/__locales/ko.json index 96da066c73c..779f2f98c39 100644 --- a/client/src/__locales/ko.json +++ b/client/src/__locales/ko.json @@ -215,6 +215,7 @@ "example_upstream_udp": "일반 DNS (UDP를 통한, 호스트명);", "example_upstream_dot": "암호화된 <0>DNS-over-TLS;", "example_upstream_doh": "암호화된 <0>DNS-over-HTTPS;", + "example_upstream_doh3": "암호화된 DNS-over-HTTPS가 강제로 <0>HTTP/3를 사용하며 HTTP/2 이하로 폴백하지 않습니다.", "example_upstream_doq": "암호화된 <0>DNS-over-QUIC;", "example_upstream_sdns": "<1>DNSCrypt 또는 <2>DNS-over-HTTPS 리졸버를 위한 <0>DNS 스탬프;", "example_upstream_tcp": "일반 DNS (TCP를 통한 접속);", @@ -605,7 +606,7 @@ "blocklist": "차단 목록", "milliseconds_abbreviation": "ms", "cache_size": "캐시 크기", - "cache_size_desc": "DNS 캐시 크기 (바이트).", + "cache_size_desc": "DNS 캐시 크기(바이트). 캐싱을 비활성화하려면 비워 둡니다.", "cache_ttl_min_override": "최소 TTL (초) 무시", "cache_ttl_max_override": "최대 TTL (초) 무시", "enter_cache_size": "캐시 크기를 입력하세요", diff --git a/client/src/__locales/nl.json b/client/src/__locales/nl.json index 6a2c2ac4d1d..c21addcfb5b 100644 --- a/client/src/__locales/nl.json +++ b/client/src/__locales/nl.json @@ -215,6 +215,7 @@ "example_upstream_udp": "standaard DNS (via UDP, hostnaam);", "example_upstream_dot": "versleutelde <0>DNS-via-TLS;", "example_upstream_doh": "versleutelde <0>DNS-via-HTTPS;", + "example_upstream_doh3": "versleutelde DNS-over-HTTPS met geforceerde <0>HTTP/3 en geen terugval naar HTTP/2 of lager;", "example_upstream_doq": "versleutelde <0>DNS-via-QUIC;", "example_upstream_sdns": "<0>DNS Stamps voor <1>DNSCrypt of <2>DNS-via-HTTPS oplossingen;", "example_upstream_tcp": "standaard DNS (over TCP);", @@ -605,7 +606,7 @@ "blocklist": "Blokkeerlijst", "milliseconds_abbreviation": "ms", "cache_size": "Cache grootte", - "cache_size_desc": "DNS-cache grootte (in bytes).", + "cache_size_desc": "DNS-cachegrootte (in bytes). Leeg laten om caching uit te schakelen.", "cache_ttl_min_override": "Minimale TTL overschrijven", "cache_ttl_max_override": "Maximale TTL overschrijven", "enter_cache_size": "Cache grootte invoeren (bytes)", diff --git a/client/src/__locales/no.json b/client/src/__locales/no.json index 7ff4664fe78..ca9baf021ee 100644 --- a/client/src/__locales/no.json +++ b/client/src/__locales/no.json @@ -584,7 +584,7 @@ "blocklist": "Blokkeringsliste", "milliseconds_abbreviation": "ms", "cache_size": "Mellomlagerstørrelse", - "cache_size_desc": "DNS-mellomlagerstørrelse (i bytes)", + "cache_size_desc": "DNS-bufferstørrelse (i byte). For å deaktivere caching, la stå tomt.", "cache_ttl_min_override": "Overstyr minimumslevetiden", "cache_ttl_max_override": "Overstyr maksimallevetiden", "enter_cache_size": "Skriv inn mellomlagerstørrelse (i bytes)", diff --git a/client/src/__locales/pl.json b/client/src/__locales/pl.json index 48e75a4fa19..8e5ccb4b0f5 100644 --- a/client/src/__locales/pl.json +++ b/client/src/__locales/pl.json @@ -215,6 +215,7 @@ "example_upstream_udp": "zwykły DNS (przez UDP, nazwa hosta);", "example_upstream_dot": "zaszyfrowany <0>DNS-over-TLS;", "example_upstream_doh": "zaszyfrowany <0>DNS-over-HTTPS;", + "example_upstream_doh3": "szyfrowany DNS-over-HTTPS z wymuszonym <0>HTTP/3 i nie ma powrotu do HTTP/2 lub niższego;", "example_upstream_doq": "zaszyfrowany <0>DNS-over-QUIC;", "example_upstream_sdns": "<0>Stempel DNS dla resolwerów <1>DNSCrypt lub <2>DNS-over-HTTPS;", "example_upstream_tcp": "zwykły DNS (przez TCP);", @@ -605,7 +606,7 @@ "blocklist": "Lista zablokowanych", "milliseconds_abbreviation": "ms", "cache_size": "Rozmiar pamięci podręcznej", - "cache_size_desc": "Rozmiar pamięci podręcznej DNS (w bajtach).", + "cache_size_desc": "Rozmiar pamięci podręcznej DNS (w bajtach). Aby wyłączyć buforowanie, pozostaw puste.", "cache_ttl_min_override": "Nadpisz minimalną wartość TTL", "cache_ttl_max_override": "Nadpisz maksymalną wartość TTL", "enter_cache_size": "Wpisz rozmiar pamięci podręcznej (w bajtach)", diff --git a/client/src/__locales/pt-br.json b/client/src/__locales/pt-br.json index 1a1bbecb930..ee8b5c1ec1f 100644 --- a/client/src/__locales/pt-br.json +++ b/client/src/__locales/pt-br.json @@ -215,6 +215,7 @@ "example_upstream_udp": "DNS normal (através do UDP, nome do servidor);", "example_upstream_dot": "<0>DNS-sobre-TLS criptografado;", "example_upstream_doh": "<0>DNS-sobre-HTTPS criptografado;", + "example_upstream_doh3": "DNS-over-HTTPS criptografado com <0>HTTP/3 forçado e sem fallback para HTTP/2 ou inferior;", "example_upstream_doq": "<0>DNS-sobre-QUIC criptografado;", "example_upstream_sdns": "<0>DNS Stamps para o <1>DNSCrypt ou usar os resolvedores <2>DNS-sobre-HTTPS;", "example_upstream_tcp": "DNS regular (através do TCP);", @@ -605,7 +606,7 @@ "blocklist": "Lista de bloqueio", "milliseconds_abbreviation": "ms", "cache_size": "Tamanho do cache", - "cache_size_desc": "Tamanho do cache do DNS (em bytes).", + "cache_size_desc": "Tamanho do cache do DNS (em bytes). Para desativar o cache, deixe em branco.", "cache_ttl_min_override": "Sobrepor o TTL mínimo", "cache_ttl_max_override": "Sobrepor o TTL máximo", "enter_cache_size": "Digite o tamanho do cache (bytes)", diff --git a/client/src/__locales/pt-pt.json b/client/src/__locales/pt-pt.json index 8be5b304fb8..b143afaed60 100644 --- a/client/src/__locales/pt-pt.json +++ b/client/src/__locales/pt-pt.json @@ -215,6 +215,7 @@ "example_upstream_udp": "DNS normal (através do UDP, nome do servidor);", "example_upstream_dot": "<0>DNS-sobre-TLS criptografado;", "example_upstream_doh": "<0>DNS-sobre-HTTPS criptografado;", + "example_upstream_doh3": "DNS-over-HTTPS encriptado com <0>HTTP/3 forçado e sem retorno para HTTP/2 ou inferior;", "example_upstream_doq": "<0>DNS-sobre-QUIC criptografado;", "example_upstream_sdns": "<0>DNS Stamps para o <1>DNSCrypt ou usar os resolvedores <2>DNS-sobre-HTTPS;", "example_upstream_tcp": "DNS regular (através do TCP);", @@ -605,7 +606,7 @@ "blocklist": "Lista de bloqueio", "milliseconds_abbreviation": "ms", "cache_size": "Tamanho do cache", - "cache_size_desc": "Tamanho do cache do DNS (em bytes).", + "cache_size_desc": "Tamanho do cache DNS (em bytes). Para desativar o cache, deixar o campo vazio.", "cache_ttl_min_override": "Sobrepor o TTL mínimo", "cache_ttl_max_override": "Sobrepor o TTL máximo", "enter_cache_size": "Digite o tamanho do cache (bytes)", diff --git a/client/src/__locales/ro.json b/client/src/__locales/ro.json index cbc458e782a..a8f94d39bbe 100644 --- a/client/src/__locales/ro.json +++ b/client/src/__locales/ro.json @@ -215,6 +215,7 @@ "example_upstream_udp": "DNS obișnuit (over UDP, nume de gazdă);", "example_upstream_dot": "<0>DNS-over-TLS criptat;", "example_upstream_doh": "<0>DNS-over-HTTPS criptat;", + "example_upstream_doh3": "DNS-over-HTTPS criptat cu <0>HTTP/3 forțat și fără revenire la HTTP/2 sau inferior;", "example_upstream_doq": "criptat <0>DNS-over-QUIC;", "example_upstream_sdns": "<0>DNS Stamps pentru <1>DNSCrypt sau rezolvatori <2>DNS-over-HTTPS;", "example_upstream_tcp": "DNS clasic (over TCP);", @@ -605,7 +606,7 @@ "blocklist": "Lista de blocări", "milliseconds_abbreviation": "ms", "cache_size": "Mărime cache", - "cache_size_desc": "Mărime cache DNS (în octeți).", + "cache_size_desc": "Mărimea cache-ului DNS (în bytes). Pentru a dezactiva caching-ul, lăsați gol.", "cache_ttl_min_override": "Suprascrieți minimum TTL", "cache_ttl_max_override": "Suprascrieți maximum TTL", "enter_cache_size": "Introduceți mărimea cache-ului (bytes)", diff --git a/client/src/__locales/ru.json b/client/src/__locales/ru.json index fd605df7f92..7cf3732f5dc 100644 --- a/client/src/__locales/ru.json +++ b/client/src/__locales/ru.json @@ -215,6 +215,7 @@ "example_upstream_udp": "обычный DNS (поверх UDP, с именем хоста);", "example_upstream_dot": "зашифрованный <0>DNS-over-TLS;", "example_upstream_doh": "зашифрованный <0>DNS-over-HTTPS;", + "example_upstream_doh3": "зашифрованный DNS-over-HTTPS с принудительным <0>HTTP/3 без отката к HTTP/2 или ниже;", "example_upstream_doq": "зашифрован <0>DNS-over-QUIC", "example_upstream_sdns": "<0>DNS Stamps для <1>DNSCrypt или <2>DNS-over-HTTPS серверов;", "example_upstream_tcp": "обычный DNS (поверх TCP);", @@ -605,7 +606,7 @@ "blocklist": "Чёрный список", "milliseconds_abbreviation": "мс", "cache_size": "Размер кеша", - "cache_size_desc": "Размера кеша DNS (в байтах).", + "cache_size_desc": "Размера кеша DNS (в байтах). Чтобы отключить кэширование, оставьте поле пустым.", "cache_ttl_min_override": "Переопределить минимальный TTL", "cache_ttl_max_override": "Переопределить максимальный TTL", "enter_cache_size": "Введите размер кеша (в байтах)", diff --git a/client/src/__locales/si-lk.json b/client/src/__locales/si-lk.json index 8d4c335a19d..a9c8d3787af 100644 --- a/client/src/__locales/si-lk.json +++ b/client/src/__locales/si-lk.json @@ -126,7 +126,7 @@ "number_of_dns_query_to_safe_search": "ආරක්ෂිත සෙවීම බලාත්මක කළ සෙවුම් යන්ත්‍ර සඳහා ව.නා.ප. ඉල්ලීම් ගණන", "average_processing_time": "සාමාන්‍ය සැකසුම් කාලය", "average_processing_time_hint": "ව.නා.ප. ඉල්ලීමක් සැකසීමේ සාමාන්‍ය කාලය මිලි තත්පර වලින්", - "block_domain_use_filters_and_hosts": "පෙරහන් සහ ධාරක ගොනු භාවිතා කරමින් වසම් අවහිර කරන්න", + "block_domain_use_filters_and_hosts": "පෙරහන් හා සත්කාරක ගොනු භාවිතයෙන් වසම් අවහිර කරන්න", "filters_block_toggle_hint": "ඔබට අවහිර කිරීමේ නීති පෙරහන් තුළ පිහිටුවිය හැකිය.", "use_adguard_browsing_sec": "ඇඩ්ගාර්ඩ් පිරික්සුම් ආරක්‍ෂණ වියමන සේවාව භාවිතා කරන්න", "use_adguard_browsing_sec_hint": "ඇඩ්ගාර්ඩ් හෝම් විසින් පිරික්සුම් ආරක්‍ෂණ වියමන සේවාව මගින් වසම අවහිර කර ඇත්දැයි පරීක්‍ෂා කරයි. එය සිදු කිරීමට රහස්‍යතා-හිතකාමී බැලීමේ යෙ.ක්‍ර.මු. භාවිතා කෙරේ: වසමේ කෙටි උපසර්ගයක SHA256 පූරකයක් පමණක් සේවාදායකය වෙත යවනු ලැබේ.", @@ -575,7 +575,7 @@ "blocklist": "අවහිර කිරී‌‌‌‌‌මේ ලැයිස්තුව", "milliseconds_abbreviation": "මිලි තත්.", "cache_size": "නිහිතයෙහි ප්‍රමාණය", - "cache_size_desc": "ව.නා.ප. නිහිතයෙහි ප්‍රමාණය (බයිට)", + "cache_size_desc": "ව.නා.ප. නිහිතයෙහි ප්‍රමාණය (බයිට). නිහිතය අබල කිරීමට, හිස්ව තබන්න.", "cache_ttl_min_override": "අවම පව. කා. අභිබවන්න", "cache_ttl_max_override": "උපරිම පව. කා. අභිබවන්න", "enter_cache_size": "ව.නා.ප. නිහිතයෙහි ප්‍රමාණය යොදන්න (බයිට)", diff --git a/client/src/__locales/sk.json b/client/src/__locales/sk.json index 631d2457a87..243ed299e87 100644 --- a/client/src/__locales/sk.json +++ b/client/src/__locales/sk.json @@ -215,6 +215,7 @@ "example_upstream_udp": "štandardné DNS (cez UDP, hostname);", "example_upstream_dot": "šifrované <0>DNS-over-TLS;", "example_upstream_doh": "šifrované <0>DNS-over-HTTPS;", + "example_upstream_doh3": "šifrované DNS-over-HTTPS s vynúteným <0>HTTP/3 a bez spätného prechodu na HTTP/2 alebo nižšie;", "example_upstream_doq": "šifrované <0>DNS-over-QUIC;", "example_upstream_sdns": "<0>DNS pečiatky pre <1>DNSCrypt alebo <2>DNS-over-HTTPS rezolvery;", "example_upstream_tcp": "obyčajná DNS (cez TCP);", @@ -605,7 +606,7 @@ "blocklist": "Zoznam blokovaní", "milliseconds_abbreviation": "ms", "cache_size": "Veľkosť cache", - "cache_size_desc": "Veľkosť DNS cache (v bajtoch)", + "cache_size_desc": "Veľkosť vyrovnávacej pamäte DNS (v bajtoch). Ak chcete zakázať ukladanie do vyrovnávacej pamäte, ponechajte pole prázdne.", "cache_ttl_min_override": "Prepísať minimálne TTL", "cache_ttl_max_override": "Prepísať maximálne TTL", "enter_cache_size": "Zadať veľkosť cache (v bajtoch)", diff --git a/client/src/__locales/sl.json b/client/src/__locales/sl.json index b779868dce0..2c8436aec48 100644 --- a/client/src/__locales/sl.json +++ b/client/src/__locales/sl.json @@ -215,6 +215,7 @@ "example_upstream_udp": "redni DNS (nad UDP, ime gostitelja);", "example_upstream_dot": "šifriran <0>DNS-prek-TLS;", "example_upstream_doh": "šifriran <0>DNS-prek-HTTPS;", + "example_upstream_doh3": "šifriran DNS prek HTTPS s prisilnim <0>HTTP/3 in brez povratne možnosti za HTTP/2 ali nižjim;", "example_upstream_doq": "šifriran <0>DNS-prek-QUIC;", "example_upstream_sdns": "lahko uporabite <0>DNS Žige za reševalce <1>DNSCrypt ali <2>DNS-prek-HTTPS;", "example_upstream_tcp": "redni DNS (nad TCP);", @@ -605,7 +606,7 @@ "blocklist": "Seznam nedovoljenih", "milliseconds_abbreviation": "ms", "cache_size": "Velikost predpomnilnika", - "cache_size_desc": "Velikost predpomnilnika DNS (v bajtih).", + "cache_size_desc": "Velikost predpomnilnika DNS (v bajtih). Če želite onemogočiti predpomnjenje, pustite prazno.", "cache_ttl_min_override": "Preglasi najmanjši TTL", "cache_ttl_max_override": "Preglasi največji TTL", "enter_cache_size": "Vnesite velikost predpomnilnika (v bajtih)", diff --git a/client/src/__locales/sr-cs.json b/client/src/__locales/sr-cs.json index 23f5647b110..4bb3f0118b0 100644 --- a/client/src/__locales/sr-cs.json +++ b/client/src/__locales/sr-cs.json @@ -215,6 +215,7 @@ "example_upstream_udp": "uobičajen DNS (preko UDP, imena domaćina);", "example_upstream_dot": "šifrovano <0>DNS-over-TLS;", "example_upstream_doh": "šifrovano <0>DNS-over-HTTPS;", + "example_upstream_doh3": "šifrovani DNS-over-HTTPS sa prinudnim <0>HTTP/3 bez povratka na HTTP/2 ili ispod;", "example_upstream_doq": "šifrovano <0>DNS-over-QUIC;", "example_upstream_sdns": "<0>DNS brojeve za <1>DNSCrypt ili <2>DNS-over-HTTPS razrešivače;", "example_upstream_tcp": "uobičajeni DNS (preko TCP);", @@ -605,7 +606,7 @@ "blocklist": "Lista blokiranih", "milliseconds_abbreviation": "ms", "cache_size": "Veličina predmemorije", - "cache_size_desc": "Veličina DNS predmemorije (u bitovima).", + "cache_size_desc": "Veličina DNS keša (u bajtovima). Da biste onemogućili keširanje, ostavite prazno.", "cache_ttl_min_override": "Prepiši najmanji TTL", "cache_ttl_max_override": "Prepiši najveći TTL", "enter_cache_size": "Unesite veličinu predmemorije", diff --git a/client/src/__locales/sv.json b/client/src/__locales/sv.json index 8818f9d707e..2d3cbcaa258 100644 --- a/client/src/__locales/sv.json +++ b/client/src/__locales/sv.json @@ -215,6 +215,7 @@ "example_upstream_udp": "vanlig DNS (över UDP, värdnamn);", "example_upstream_dot": "krypterat <0>DNS-over-TLS", "example_upstream_doh": "krypterat <0>DNS-over-HTTPS", + "example_upstream_doh3": "krypterad DNS-över-HTTPS med påtvingad <0>HTTP/3 och ingen reserv till HTTP/2 eller lägre;", "example_upstream_doq": "krypterat <0>DNS-over-QUIC;", "example_upstream_sdns": "Du kan använda <0>DNS-stamps för <1>DNSCrypt eller <2>DNS-over-HTTPS-resolvers", "example_upstream_tcp": "vanlig DNS (över UDP)", @@ -605,7 +606,7 @@ "blocklist": "Blocklista", "milliseconds_abbreviation": "ms", "cache_size": "Cachestorlek", - "cache_size_desc": "DNS cachestorlek (i byte).", + "cache_size_desc": "DNS-cachestorlek (i byte). Lämna tomt om du vill inaktivera cachelagring.", "cache_ttl_min_override": "Åsidosätt minsta TTL", "cache_ttl_max_override": "Åsidosätt maximal TTL", "enter_cache_size": "Ange cachestorlek (byte)", diff --git a/client/src/__locales/tr.json b/client/src/__locales/tr.json index bcd068133df..791c397dcd2 100644 --- a/client/src/__locales/tr.json +++ b/client/src/__locales/tr.json @@ -59,7 +59,7 @@ "dhcp_form_range_title": "IP adresi aralığı", "dhcp_form_range_start": "Başlangıç aralığı", "dhcp_form_range_end": "Bitiş aralığı", - "dhcp_form_lease_title": "DHCP kira süresi (saniye olarak)", + "dhcp_form_lease_title": "DHCP kiralama süresi (saniye cinsinden)", "dhcp_form_lease_input": "Kira süresi", "dhcp_interface_select": "DHCP arayüzünü seç", "dhcp_hardware_address": "Donanım adresi", @@ -215,6 +215,7 @@ "example_upstream_udp": "normal DNS (UDP üzerinden, ana makine adı);", "example_upstream_dot": "şifrelenmiş <0>DNS-over-TLS;", "example_upstream_doh": "şifrelenmiş <0>DNS-over-HTTPS;", + "example_upstream_doh3": "<0>HTTP/3 uygulanmış ve HTTP/2 veya aşağısı için yedek olmayan şifrelenmiş DNS-over-HTTPS;", "example_upstream_doq": "şifrelenmiş <0>DNS-over-QUIC;", "example_upstream_sdns": "<1>DNSCrypt veya <2>DNS-over-HTTPS çözümleyicileri için <0>DNS Damgaları;", "example_upstream_tcp": "normal DNS (TCP üzerinden);", @@ -317,7 +318,7 @@ "install_settings_interface_link": "AdGuard Home yönetici web arayüzünüz aşağıdaki adreslerde bulunacaktır:", "form_error_port": "Geçerli bir bağlantı noktası değeri girin", "install_settings_dns": "DNS sunucusu", - "install_settings_dns_desc": "Cihazlarınızı veya yönlendiricinizi şu adresteki DNS sunucusunu kullanması için ayarlamanız gerekecek:", + "install_settings_dns_desc": "Aşağıdaki adreslerde DNS sunucusunu kullanmak için cihazlarınızı veya yönlendiricinizi yapılandırmanız gerekir:", "install_settings_all_interfaces": "Tüm arayüzler", "install_auth_title": "Kimlik Doğrulama", "install_auth_desc": "AdGuard Home yönetim web arayüzü için şifre doğrulaması yapılandırılmalıdır. AdGuard Home'a yalnızca yerel ağınızdan erişilebilir olsa bile, onu sınırsız erişimden korumak yine de önemlidir.", @@ -351,7 +352,7 @@ "install_devices_android_list_1": "Android Menüsü ana ekranından Ayarlar'a dokunun.", "install_devices_android_list_2": "Menüde bulunan Wi-Fi öğesine dokunun. Mevcut tüm ağlar listelenecektir (mobil ağlar için özel DNS sunucusu ayarlanamaz).", "install_devices_android_list_3": "Bağlı olduğunuz ağın üzerine basılı tutun ve Ağı Değiştir'e dokunun.", - "install_devices_android_list_4": "Bazı cihazlarda, diğer ayarları görmek için \"Gelişmiş\" seçeneğini seçmeniz gerekebilir. Android DNS ayarlarınızı yapmak için IP ayarlarını DHCP modundan Statik moda almanız gerekecektir.", + "install_devices_android_list_4": "Bazı cihazlarda, diğer ayarları görmek için \"Gelişmiş\" seçeneğini seçmeniz gerekebilir. Android DNS ayarlarınızı yapmak için IP ayarlarını DHCP modundan Statik moda değiştirmeniz gerekir.", "install_devices_android_list_5": "DNS 1 ve DNS 2 değerlerini AdGuard Home sunucunuzun adresleriyle değiştirin.", "install_devices_ios_list_1": "Ana ekrandan Ayarlar'a dokunun.", "install_devices_ios_list_2": "Sol menüde bulunan Wi-Fi bölümüne girin (mobil ağlar için özel DNS sunucusu ayarlanamaz).", @@ -368,13 +369,13 @@ "encryption_server_enter": "Alan adınızı girin", "encryption_server_desc": "Ayarlanırsa, AdGuard Home ClientID'leri algılar, DDR sorgularına yanıt verir ve ek bağlantı doğrulamaları gerçekleştirir. Ayarlanmazsa, bu özellikler devre dışı bırakılır. Sertifikadaki DNS Adlarından biriyle eşleşmelidir.", "encryption_redirect": "Otomatik olarak HTTPS'e yönlendir", - "encryption_redirect_desc": "İşaretlenirse, AdGuard Home sizi otomatik olarak HTTP adresinden HTTPS adreslerine yönlendirecektir.", + "encryption_redirect_desc": "İşaretlenirse, AdGuard Home sizi otomatik olarak HTTP adresinden HTTPS adreslerine yönlendirir.", "encryption_https": "HTTPS bağlantı noktası", - "encryption_https_desc": "HTTPS bağlantı noktası yapılandırılırsa, AdGuard Home yönetici arayüzüne HTTPS aracılığıyla erişilebilir olacak ve ayrıca '/dns-query' üzerinden DNS-over-HTTPS bağlantısı sağlayacaktır.", + "encryption_https_desc": "HTTPS bağlantı noktası yapılandırılırsa, AdGuard Home yönetici arayüzüne HTTPS aracılığıyla erişilebilir olacak ve ayrıca '/dns-query' üzerinden DNS-over-HTTPS bağlantısı sağlar.", "encryption_dot": "DNS-over-TLS bağlantı noktası", - "encryption_dot_desc": "Bu bağlantı noktası yapılandırılırsa, AdGuard Home, DNS-over-TLS sunucusunu bu bağlantı noktası üzerinden çalıştıracaktır.", + "encryption_dot_desc": "Bu bağlantı noktası yapılandırılırsa, AdGuard Home, DNS-over-TLS sunucusunu bu bağlantı noktası üzerinden çalıştırır.", "encryption_doq": "DNS-over-QUIC bağlantı noktası", - "encryption_doq_desc": "Bu bağlantı noktası yapılandırılırsa, AdGuard Home, bu bağlantı noktasında bir DNS-over-QUIC sunucusu çalıştıracaktır.", + "encryption_doq_desc": "Bu bağlantı noktası yapılandırılırsa, AdGuard Home, bu bağlantı noktasında bir DNS-over-QUIC sunucusu çalıştırır.", "encryption_certificates": "Sertifikalar", "encryption_certificates_desc": "Şifrelemeyi kullanmak için alan adınıza geçerli bir SSL sertifika zinciri sağlamanız gerekir. <0>{{link}} adresinden ücretsiz bir sertifika alabilir veya güvenilir Sertifika Yetkililerinden satın alabilirsiniz.", "encryption_certificates_input": "PEM biçimindeki sertifikalarınızı kopyalayıp buraya yapıştırın.", @@ -467,7 +468,7 @@ "setup_dns_privacy_other_2": "<0>dnsproxy, bilinen tüm güvenli DNS protokollerini destekler.", "setup_dns_privacy_other_3": "<0>dnscrypt-proxy, <1>DNS-over-HTTPS protokolünü destekler.", "setup_dns_privacy_other_4": "<0>Mozilla Firefox, <1>DNS-over-HTTPS protokolünü destekler.", - "setup_dns_privacy_other_5": "<0>Burada ve <1>burada daha fazla kullanım alanı bulacaksınız.", + "setup_dns_privacy_other_5": "<0>Burada ve <1>burada daha fazla kullanım alanı bulabilirsiniz.", "setup_dns_privacy_ioc_mac": "iOS ve macOS yapılandırması", "setup_dns_notice": "<1>DNS-over-HTTPS veya <1>DNS-over-TLS protokolünü kullanmak için AdGuard Home üzerinde <0>Şifreleme ayarları bölümünden ayarları yapmanız gerekir.", "rewrite_added": "\"{{key}}\" için DNS yeniden yazımı başarıyla eklendi", @@ -556,7 +557,7 @@ "fastest_addr": "En hızlı IP adresi", "fastest_addr_desc": "Tüm DNS sunucularını sorgulayın ve tüm yanıtlar arasından en hızlı olan IP adresini döndürün. AdGuard Home'un tüm DNS sunucularından yanıt beklemesi gerektiği için DNS sorgularını yavaşlatır, ancak genel bağlantıyı iyileştirir.", "autofix_warning_text": "\"Düzelt\" seçeneğine tıklarsanız, AdGuard Home, sisteminizi AdGuard Home DNS sunucusunu kullanacak şekilde yapılandırır.", - "autofix_warning_list": "Bu görevleri gerçekleştirecek: <0>Sistem DNSStubListener'ı devre dışı bırakın <0>DNS sunucusu adresini 127.0.0.1 olarak ayarlayın <0>/etc/resolv.conf'un sembolik bağlantı hedefini /run/systemd/resolve/resolv.conf ile değiştirin<0> <0>DNSStubListener'ı durdurun (systemd çözümlenmiş hizmeti yeniden yükleyin)", + "autofix_warning_list": "Bu görevleri gerçekleştirir: <0>Sistem DNSStubListener'ı devre dışı bırakın <0>DNS sunucusu adresini 127.0.0.1 olarak ayarlayın <0>/etc/resolv.conf'un sembolik bağlantı hedefini /run/systemd/resolve/resolv.conf ile değiştirin<0> <0>DNSStubListener'ı durdurun (systemd çözümlenmiş hizmeti yeniden yükleyin)", "autofix_warning_result": "Sonuç olarak, sisteminizden gelen tüm DNS istekleri varsayılan olarak AdGuard Home tarafından işlenecektir.", "tags_title": "Etiketler", "tags_desc": "İstemciye karşılık gelen etiketleri seçebilirsiniz. Etiketleri daha kesin olarak uygulamak için filtreleme kurallarına dahil edin. <0>Daha fazla bilgi edinin.", @@ -585,7 +586,7 @@ "install_static_ok": "Güzel haber! Sabit IP adresi zaten yapılandırılmış", "install_static_error": "AdGuard Home, bu ağ arayüzü için otomatik olarak yapılandıramıyor. Lütfen bunu elle nasıl yapacağınızla ilgili talimatlara bakın.", "install_static_configure": "AdGuard Home, <0>{{ip}} dinamik IP adresinin kullanıldığını tespit etti. Sabit adresiniz olarak ayarlanmasını ister misiniz?", - "confirm_static_ip": "AdGuard Home, {{ip}} adresini sabit IP adresiniz olacak şekilde yapılandıracaktır. Devam etmek istiyor musunuz?", + "confirm_static_ip": "AdGuard Home, {{ip}} adresini sabit IP adresiniz olacak şekilde yapılandırır. Devam etmek istiyor musunuz?", "list_updated": "{{count}} liste güncellendi", "list_updated_plural": "{{count}} liste güncellendi", "dnssec_enable": "DNSSEC'i etkinleştir", @@ -605,7 +606,7 @@ "blocklist": "Engel listesi", "milliseconds_abbreviation": "ms", "cache_size": "Önbellek boyutu", - "cache_size_desc": "DNS önbellek boyutu (bayt cinsinden).", + "cache_size_desc": "DNS önbellek boyutu (bayt cinsinden). Önbelleğe almayı devre dışı bırakmak için boş bırakın.", "cache_ttl_min_override": "Minimum kullanım süresini geçersiz kıl", "cache_ttl_max_override": "Maksimum kullanım süresini geçersiz kıl", "enter_cache_size": "Önbellek boyutunu girin (bayt)", @@ -629,7 +630,7 @@ "click_to_view_queries": "Sorguları görmek için tıklayın", "port_53_faq_link": "53 numaralı bağlantı noktası genellikle \"DNSStubListener\" veya \"systemd-resolved\" hizmetleri tarafından kullanılır. Lütfen bu sorunun nasıl çözüleceğine ilişkin <0>bu talimatı okuyun.", "adg_will_drop_dns_queries": "AdGuard Home, bu istemciden gelen tüm DNS sorgularını yok sayacaktır.", - "filter_allowlist": "UYARI: Bu işlem ayrıca \"{{disallowed_rule}}\" kuralını izin verilen istemciler listesinden hariç tutacaktır.", + "filter_allowlist": "UYARI: Bu işlem ayrıca \"{{disallowed_rule}}\" kuralını izin verilen istemciler listesinden hariç tutar.", "last_rule_in_allowlist": "\"{{disallowed_rule}}\" kuralı hariç tutulduğunda \"İzin verilen istemciler\" listesi DEVRE DIŞI bırakılacağı için bu istemciye izin verilemez.", "use_saved_key": "Önceden kaydedilmiş anahtarı kullan", "parental_control": "Ebeveyn Denetimi", diff --git a/client/src/__locales/uk.json b/client/src/__locales/uk.json index b882e85661a..d9f611465fd 100644 --- a/client/src/__locales/uk.json +++ b/client/src/__locales/uk.json @@ -215,6 +215,7 @@ "example_upstream_udp": "звичайний DNS (поверх UDP, з назвою вузла);", "example_upstream_dot": "зашифрований <0>DNS-over-TLS;", "example_upstream_doh": "зашифрований <0>DNS-over-HTTPS;", + "example_upstream_doh3": "зашифрований DNS через HTTPS із примусовим <0>HTTP/3 і без повернення до HTTP/2 або нижче;", "example_upstream_doq": "зашифрований <0>DNS-over-QUIC;", "example_upstream_sdns": "<0>DNS Stamps для <1>DNSCrypt- або <2>DNS-over-HTTPS-вирішувачів;", "example_upstream_tcp": "звичайний DNS (через TCP);", @@ -605,7 +606,7 @@ "blocklist": "Список блокування", "milliseconds_abbreviation": "мс", "cache_size": "Розмір кешу", - "cache_size_desc": "Розмір кешу DNS (у байтах).", + "cache_size_desc": "Розмір кешу DNS (у байтах). Щоб вимкнути кешування, залиште пустим.", "cache_ttl_min_override": "Змінити мінімальний TTL", "cache_ttl_max_override": "Змінити максимальний TTL", "enter_cache_size": "Введіть розмір кешу (байт)", diff --git a/client/src/__locales/vi.json b/client/src/__locales/vi.json index 05c9cf46839..52020d804f7 100644 --- a/client/src/__locales/vi.json +++ b/client/src/__locales/vi.json @@ -215,6 +215,7 @@ "example_upstream_udp": "DNS thông thường (qua UDP, tên máy chủ);", "example_upstream_dot": "được mã hoá <0>DNS-over-TLS;", "example_upstream_doh": "được mã hoá <0>DNS-over-HTTPS;", + "example_upstream_doh3": "DNS-over-HTTPS được mã hóa với <0>HTTP/3 bắt buộc và không có dự phòng cho HTTP/2 trở xuống;", "example_upstream_doq": "được mã hoá <0>DNS-over-QUIC;", "example_upstream_sdns": "bạn có thể sử dụng <0>DNS Stamps for <1>DNSCrypt hoặc <2>DNS-over-HTTPS ", "example_upstream_tcp": "DNS thông thường(dùng TCP);", @@ -605,7 +606,7 @@ "blocklist": "Danh sách chặn", "milliseconds_abbreviation": "ms", "cache_size": "Kích thước cache", - "cache_size_desc": "Kích thước cache DNS (bytes).", + "cache_size_desc": "Kích thước bộ nhớ cache DNS (tính bằng byte). Để tắt bộ nhớ đệm, hãy để trống.", "cache_ttl_min_override": "Ghi đè TTL tối thiểu", "cache_ttl_max_override": "Ghi đè TTL tối đa", "enter_cache_size": "Nhập kích thước bộ nhớ cache (byte)", diff --git a/client/src/__locales/zh-cn.json b/client/src/__locales/zh-cn.json index aa51902f793..cc22c96b263 100644 --- a/client/src/__locales/zh-cn.json +++ b/client/src/__locales/zh-cn.json @@ -215,6 +215,7 @@ "example_upstream_udp": "常规 DNS(通过 UDP、主机名);", "example_upstream_dot": "加密 <0>DNS-over-TLS;", "example_upstream_doh": "加密 <0>DNS-over-HTTPS;", + "example_upstream_doh3": "带有强制 <0>HTTP/3 的加密 DNS-over-HTTPS,并且没有回退到 HTTP/2 或更低版本;", "example_upstream_doq": "加密 <0>DNS-over-QUIC", "example_upstream_sdns": "<1>DNSCrypt 的 <0>DNS Stamps 或者 <2>DNS-over-HTTPS 解析器;", "example_upstream_tcp": "常规 DNS(基于 TCP );", @@ -605,7 +606,7 @@ "blocklist": "拦截列表", "milliseconds_abbreviation": "毫秒", "cache_size": "缓存大小", - "cache_size_desc": "DNS 缓存大小(单位:字节)。", + "cache_size_desc": "DNS 缓存大小(单位:字节)。要关闭缓存,请留空。", "cache_ttl_min_override": "覆盖最小TTL值", "cache_ttl_max_override": "覆盖最大TTL值", "enter_cache_size": "输入缓存大小(字节)", diff --git a/client/src/__locales/zh-tw.json b/client/src/__locales/zh-tw.json index 9ca99a641e2..4a5913ba1c9 100644 --- a/client/src/__locales/zh-tw.json +++ b/client/src/__locales/zh-tw.json @@ -215,7 +215,8 @@ "example_upstream_udp": "常規 DNS(透過 UDP,主機名稱);", "example_upstream_dot": "加密的 <0>DNS-over-TLS;", "example_upstream_doh": "加密的 <0>DNS-over-HTTPS;", - "example_upstream_doq": "加密的 <0>DNS-over-QUIC;", + "example_upstream_doh3": "有強制的 <0>HTTP/3 且無退回到 HTTP/2 或更低版本之加密的 DNS-over-HTTPS;", + "example_upstream_doq": "加密的 <0>DNS-over-QUIC;", "example_upstream_sdns": "關於 <1>DNSCrypt 或 <2>DNS-over-HTTPS 解析器之 <0>DNS 戳記;", "example_upstream_tcp": "常規 DNS(透過 TCP);", "example_upstream_tcp_port": "常規 DNS(透過 TCP,含連接埠);", @@ -605,7 +606,7 @@ "blocklist": "封鎖清單", "milliseconds_abbreviation": "ms", "cache_size": "快取大小", - "cache_size_desc": "DNS 快取大小(以位元組)。", + "cache_size_desc": "DNS 快取大小(以位元組)。要禁用快取,留空。", "cache_ttl_min_override": "覆寫最小的存活時間(TTL)", "cache_ttl_max_override": "覆寫最大的存活時間(TTL)", "enter_cache_size": "輸入快取大小(位元組)", diff --git a/client/src/components/Filters/DnsBlocklist.js b/client/src/components/Filters/DnsBlocklist.js index 4059b48f65c..c4facadc8b3 100644 --- a/client/src/components/Filters/DnsBlocklist.js +++ b/client/src/components/Filters/DnsBlocklist.js @@ -15,7 +15,7 @@ import { getObjDiff, } from '../../helpers/helpers'; -const filtersCatalog = require('../../helpers/filters/filters.json'); +import filtersCatalog from '../../helpers/filters/filters'; class DnsBlocklist extends Component { componentDidMount() { diff --git a/client/src/components/Filters/Form.js b/client/src/components/Filters/Form.js index 39791a5f769..f4e902f5caf 100644 --- a/client/src/components/Filters/Form.js +++ b/client/src/components/Filters/Form.js @@ -7,8 +7,7 @@ import classNames from 'classnames'; import { validatePath, validateRequiredValue } from '../../helpers/validators'; import { CheckboxField, renderInputField } from '../../helpers/form'; import { MODAL_OPEN_TIMEOUT, MODAL_TYPE, FORM_NAME } from '../../helpers/constants'; - -const filtersCatalog = require('../../helpers/filters/filters.json'); +import filtersCatalog from '../../helpers/filters/filters'; const getIconsData = (homepage, source) => ([ { diff --git a/client/src/components/Logs/Cells/ClientCell.js b/client/src/components/Logs/Cells/ClientCell.js index 669f1c0acdc..9467f14ebe3 100644 --- a/client/src/components/Logs/Cells/ClientCell.js +++ b/client/src/components/Logs/Cells/ClientCell.js @@ -121,7 +121,7 @@ const ClientCell = ({ {options.map(({ name, onClick, disabled }) => ( ; const blockClientButton = ; const blockClientButton =