AdGuardHome/README.md

531 lines
21 KiB
Markdown
Raw Normal View History

2018-10-15 17:20:57 +03:00
 
<p align="center">
2022-09-07 18:03:18 +03:00
<picture>
<source media="(prefers-color-scheme: dark)" srcset="doc/adguard_home_darkmode.svg">
<img alt="AdGuard Home" src="doc/adguard_home_lightmode.svg" width="300px">
</picture>
2018-10-15 17:20:57 +03:00
</p>
<h3 align="center">Privacy protection center for you and your devices</h3>
<p align="center">
2022-09-07 18:03:18 +03:00
Free and open source, powerful network-wide ads & trackers blocking DNS
server.
2018-10-15 17:20:57 +03:00
</p>
<p align="center">
<a href="https://adguard.com/">AdGuard.com</a> |
2018-10-15 17:20:57 +03:00
<a href="https://github.com/AdguardTeam/AdGuardHome/wiki">Wiki</a> |
<a href="https://reddit.com/r/Adguard">Reddit</a> |
2019-01-25 12:55:13 +03:00
<a href="https://twitter.com/AdGuard">Twitter</a> |
<a href="https://t.me/adguard_en">Telegram</a>
2022-11-02 16:18:02 +03:00
<br/><br/>
2019-01-25 12:55:13 +03:00
<a href="https://codecov.io/github/AdguardTeam/AdGuardHome?branch=master">
2022-11-02 16:18:02 +03:00
<img src="https://img.shields.io/codecov/c/github/AdguardTeam/AdGuardHome/master.svg" alt="Code Coverage"/>
2019-01-25 12:55:13 +03:00
</a>
<a href="https://goreportcard.com/report/AdguardTeam/AdGuardHome">
2022-11-02 16:18:02 +03:00
<img src="https://goreportcard.com/badge/github.com/AdguardTeam/AdGuardHome" alt="Go Report Card"/>
2019-01-25 12:55:13 +03:00
</a>
2020-08-27 23:54:48 +03:00
<a href="https://hub.docker.com/r/adguard/adguardhome">
2022-11-02 16:18:02 +03:00
<img alt="Docker Pulls" src="https://img.shields.io/docker/pulls/adguard/adguardhome.svg?maxAge=604800"/>
2020-08-27 23:54:48 +03:00
</a>
2022-11-02 16:18:02 +03:00
<br/>
2018-10-15 17:20:57 +03:00
<a href="https://github.com/AdguardTeam/AdGuardHome/releases">
2022-11-02 16:18:02 +03:00
<img src="https://img.shields.io/github/release/AdguardTeam/AdGuardHome/all.svg" alt="Latest release"/>
2018-10-15 17:20:57 +03:00
</a>
<a href="https://snapcraft.io/adguard-home">
2022-11-02 16:18:02 +03:00
<img alt="adguard-home" src="https://snapcraft.io/adguard-home/badge.svg"/>
</a>
2018-10-15 17:20:57 +03:00
</p>
2022-11-02 16:18:02 +03:00
<br/>
2018-10-15 17:20:57 +03:00
<p align="center">
2022-11-02 16:18:02 +03:00
<img src="https://cdn.adtidy.org/public/Adguard/Common/adguard_home.gif" width="800"/>
2018-10-15 17:20:57 +03:00
</p>
2022-11-02 16:18:02 +03:00
<hr/>
2018-10-15 17:20:57 +03:00
2022-11-02 16:18:02 +03:00
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.
2018-08-30 17:25:33 +03:00
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
2022-11-02 16:18:02 +03:00
software we use for our public [AdGuard DNS] servers, and both share a lot of
code.
[AdGuard DNS]: https://adguard-dns.io/
2022-11-02 16:18:02 +03:00
* [Getting Started](#getting-started)
2023-08-02 16:26:34 +03:00
* [Automated install (Linux/Unix/MacOS/FreeBSD/OpenBSD)](#automated-install-linux-and-mac)
2022-11-02 16:18:02 +03:00
* [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)
2018-08-30 17:25:33 +03:00
2022-11-02 16:18:02 +03:00
## <a href="#getting-started" id="getting-started" name="getting-started">Getting Started</a>
2023-08-02 16:26:34 +03:00
### <a href="#automated-install-linux-and-mac" id="automated-install-linux-and-mac" name="automated-install-linux-and-mac">Automated install (Linux/Unix/MacOS/FreeBSD/OpenBSD)</a>
2023-02-15 16:53:29 +03:00
To install with `curl` run the following command:
```sh
Pull request: improve installation script Merge in DNS/adguard-home from 2542-2462-imp-script to master Closes #2462. Updates #2542. Updates #2613. Squashed commit of the following: commit 4a7472200f2ae07aeccc3511a75a94674b655cdb Author: Eugene Burkov <e.burkov@adguard.com> Date: Mon May 17 15:11:08 2021 +0300 scripts: imp naming, docs commit acbb5864a34e81d8c80767dd7ef57dffb189dc64 Author: Eugene Burkov <e.burkov@adguard.com> Date: Mon May 17 15:05:57 2021 +0300 scripts: imp fix commit 64777015b6d50e7330fbe7546de1f436f4cb707f Author: Eugene Burkov <e.burkov@adguard.com> Date: Mon May 17 14:54:05 2021 +0300 scripts: fix bsd commit 3308921f4c253c8670c4be70896c55f7a892ff3e Author: Eugene Burkov <e.burkov@adguard.com> Date: Mon May 17 14:04:04 2021 +0300 scripts: imp requirements checking commit 453cf7a4ce676d2eb09d423304e4d5a8962ac4e5 Author: Eugene Burkov <e.burkov@adguard.com> Date: Mon May 17 13:54:38 2021 +0300 scripts: fix docs commit a2229052f6cf747247c8290cd0de27cc88c14977 Merge: 0852c87b 120ba967 Author: Eugene Burkov <e.burkov@adguard.com> Date: Mon May 17 13:50:45 2021 +0300 Merge branch 'master' into 2542-2462-imp-script commit 0852c87bf33b833095644e649bbcedbf89ad4f82 Author: Eugene Burkov <e.burkov@adguard.com> Date: Mon May 17 13:49:27 2021 +0300 scripts: add os-specific requirements check commit 6313d8fd19f70c41b7091511ca8d979859ddb10c Merge: 1b4092d5 a031cae4 Author: Eugene Burkov <e.burkov@adguard.com> Date: Fri May 14 19:46:57 2021 +0300 Merge branch 'master' into 2542-2462-imp-script commit 1b4092d5ee1de5b56c6252bf9debe8b90cdf954e Author: Eugene Burkov <e.burkov@adguard.com> Date: Fri May 14 19:46:09 2021 +0300 scripts: imp install.sh a little commit 0584b30b4648b88f542fff6f2879c4a7ae042af4 Merge: 22621c86 9d788a29 Author: Eugene Burkov <e.burkov@adguard.com> Date: Fri May 14 19:27:47 2021 +0300 Merge branch 'master' into 2542-2462-imp-script commit 22621c86a70e61f98850a10f0c5e450c8aeaa90f Author: Eugene Burkov <e.burkov@adguard.com> Date: Fri May 14 19:25:47 2021 +0300 all: imp code commit a38f4adc4688995ca515f8d0d8d271427365623c Author: Eugene Burkov <e.burkov@adguard.com> Date: Fri May 14 18:40:37 2021 +0300 all: fix url variable commit 238cb859184da4af025137d99216d51d3b481dc0 Author: Eugene Burkov <e.burkov@adguard.com> Date: Fri May 14 18:27:13 2021 +0300 imp code quality commit 0e36c125369d47612fd97c2841a2a688bed5841d Author: Eugene Burkov <e.burkov@adguard.com> Date: Fri May 14 16:34:49 2021 +0300 all: fix typos commit b20f0b72141f5abb5e598324a3f2bd750164e612 Author: Eugene Burkov <e.burkov@adguard.com> Date: Thu Apr 29 14:02:40 2021 +0300 all: imp installation script
2021-05-17 15:24:05 +03:00
curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v
Merge: + install.sh Merge in DNS/adguard-home from install.sh to master Fix #995 Squashed commit of the following: commit 81a5b6385574fa5bc14f7e9cc8cd707fcdc491c3 Merge: 825062a9 fb7ca942 Author: Andrey Meshkov <am@adguard.com> Date: Wed Oct 7 20:40:30 2020 +0300 Merge branch 'master' into install.sh commit 825062a9cb77447bec0967635bde334218437e1f Author: Andrey Meshkov <am@adguard.com> Date: Wed Oct 7 20:04:04 2020 +0300 minor fixes commit 22205d80479a1f894fe6c72afe22ba555a9e611e Author: Andrey Meshkov <am@adguard.com> Date: Wed Oct 7 20:01:56 2020 +0300 * (home): fix install script commit 073b5fb8e27351094b95d85335dd3d08f65f9ee8 Author: Andrey Meshkov <am@adguard.com> Date: Wed Oct 7 19:59:07 2020 +0300 * (home): update readme and install script commit d4d2e4c35ca1ea1f365e40081098ee9398196ef3 Author: Andrey Meshkov <am@adguard.com> Date: Wed Oct 7 14:43:49 2020 +0300 disable parallel build commit a639b9ae44c534c7fdecd34894f5ad4ae6217472 Author: Andrey Meshkov <am@adguard.com> Date: Wed Oct 7 02:48:52 2020 +0300 * (home): improve install.sh commit 4c564da714850002d1810d4d10dce859f340e3ab Author: Simon Zolin <s.zolin@adguard.com> Date: Thu Oct 1 15:32:53 2020 +0300 minor commit 0ecc1a03a41201a632f650ba995f3b07a6539889 Author: Simon Zolin <s.zolin@adguard.com> Date: Thu Oct 1 15:08:07 2020 +0300 * install.sh: use /opt/AdGuardHome output directory commit fd3ad73606c69e8ede086e67bc557772f9e34406 Author: Simon Zolin <s.zolin@adguard.com> Date: Wed Sep 30 12:13:56 2020 +0300 * install.sh: prompt for an output directory commit 8917e8cb3d794cfa1fd7b358c89695ff719e7e4d Author: Simon Zolin <s.zolin@adguard.com> Date: Tue Sep 29 18:56:54 2020 +0300 + install.sh
2020-10-07 21:01:30 +03:00
```
2023-02-15 16:53:29 +03:00
To install with `wget` run the following command:
```sh
wget --no-verbose -O - https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v
```
To install with `fetch` run the following command:
```sh
fetch -o - https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v
```
Pull request: improve installation script Merge in DNS/adguard-home from 2542-2462-imp-script to master Closes #2462. Updates #2542. Updates #2613. Squashed commit of the following: commit 4a7472200f2ae07aeccc3511a75a94674b655cdb Author: Eugene Burkov <e.burkov@adguard.com> Date: Mon May 17 15:11:08 2021 +0300 scripts: imp naming, docs commit acbb5864a34e81d8c80767dd7ef57dffb189dc64 Author: Eugene Burkov <e.burkov@adguard.com> Date: Mon May 17 15:05:57 2021 +0300 scripts: imp fix commit 64777015b6d50e7330fbe7546de1f436f4cb707f Author: Eugene Burkov <e.burkov@adguard.com> Date: Mon May 17 14:54:05 2021 +0300 scripts: fix bsd commit 3308921f4c253c8670c4be70896c55f7a892ff3e Author: Eugene Burkov <e.burkov@adguard.com> Date: Mon May 17 14:04:04 2021 +0300 scripts: imp requirements checking commit 453cf7a4ce676d2eb09d423304e4d5a8962ac4e5 Author: Eugene Burkov <e.burkov@adguard.com> Date: Mon May 17 13:54:38 2021 +0300 scripts: fix docs commit a2229052f6cf747247c8290cd0de27cc88c14977 Merge: 0852c87b 120ba967 Author: Eugene Burkov <e.burkov@adguard.com> Date: Mon May 17 13:50:45 2021 +0300 Merge branch 'master' into 2542-2462-imp-script commit 0852c87bf33b833095644e649bbcedbf89ad4f82 Author: Eugene Burkov <e.burkov@adguard.com> Date: Mon May 17 13:49:27 2021 +0300 scripts: add os-specific requirements check commit 6313d8fd19f70c41b7091511ca8d979859ddb10c Merge: 1b4092d5 a031cae4 Author: Eugene Burkov <e.burkov@adguard.com> Date: Fri May 14 19:46:57 2021 +0300 Merge branch 'master' into 2542-2462-imp-script commit 1b4092d5ee1de5b56c6252bf9debe8b90cdf954e Author: Eugene Burkov <e.burkov@adguard.com> Date: Fri May 14 19:46:09 2021 +0300 scripts: imp install.sh a little commit 0584b30b4648b88f542fff6f2879c4a7ae042af4 Merge: 22621c86 9d788a29 Author: Eugene Burkov <e.burkov@adguard.com> Date: Fri May 14 19:27:47 2021 +0300 Merge branch 'master' into 2542-2462-imp-script commit 22621c86a70e61f98850a10f0c5e450c8aeaa90f Author: Eugene Burkov <e.burkov@adguard.com> Date: Fri May 14 19:25:47 2021 +0300 all: imp code commit a38f4adc4688995ca515f8d0d8d271427365623c Author: Eugene Burkov <e.burkov@adguard.com> Date: Fri May 14 18:40:37 2021 +0300 all: fix url variable commit 238cb859184da4af025137d99216d51d3b481dc0 Author: Eugene Burkov <e.burkov@adguard.com> Date: Fri May 14 18:27:13 2021 +0300 imp code quality commit 0e36c125369d47612fd97c2841a2a688bed5841d Author: Eugene Burkov <e.burkov@adguard.com> Date: Fri May 14 16:34:49 2021 +0300 all: fix typos commit b20f0b72141f5abb5e598324a3f2bd750164e612 Author: Eugene Burkov <e.burkov@adguard.com> Date: Thu Apr 29 14:02:40 2021 +0300 all: imp installation script
2021-05-17 15:24:05 +03:00
The script also accepts some options:
2022-11-02 16:18:02 +03:00
* `-c <channel>` to use specified channel;
* `-r` to reinstall AdGuard Home;
* `-u` to uninstall AdGuard Home;
* `-v` for verbose output.
Pull request: improve installation script Merge in DNS/adguard-home from 2542-2462-imp-script to master Closes #2462. Updates #2542. Updates #2613. Squashed commit of the following: commit 4a7472200f2ae07aeccc3511a75a94674b655cdb Author: Eugene Burkov <e.burkov@adguard.com> Date: Mon May 17 15:11:08 2021 +0300 scripts: imp naming, docs commit acbb5864a34e81d8c80767dd7ef57dffb189dc64 Author: Eugene Burkov <e.burkov@adguard.com> Date: Mon May 17 15:05:57 2021 +0300 scripts: imp fix commit 64777015b6d50e7330fbe7546de1f436f4cb707f Author: Eugene Burkov <e.burkov@adguard.com> Date: Mon May 17 14:54:05 2021 +0300 scripts: fix bsd commit 3308921f4c253c8670c4be70896c55f7a892ff3e Author: Eugene Burkov <e.burkov@adguard.com> Date: Mon May 17 14:04:04 2021 +0300 scripts: imp requirements checking commit 453cf7a4ce676d2eb09d423304e4d5a8962ac4e5 Author: Eugene Burkov <e.burkov@adguard.com> Date: Mon May 17 13:54:38 2021 +0300 scripts: fix docs commit a2229052f6cf747247c8290cd0de27cc88c14977 Merge: 0852c87b 120ba967 Author: Eugene Burkov <e.burkov@adguard.com> Date: Mon May 17 13:50:45 2021 +0300 Merge branch 'master' into 2542-2462-imp-script commit 0852c87bf33b833095644e649bbcedbf89ad4f82 Author: Eugene Burkov <e.burkov@adguard.com> Date: Mon May 17 13:49:27 2021 +0300 scripts: add os-specific requirements check commit 6313d8fd19f70c41b7091511ca8d979859ddb10c Merge: 1b4092d5 a031cae4 Author: Eugene Burkov <e.burkov@adguard.com> Date: Fri May 14 19:46:57 2021 +0300 Merge branch 'master' into 2542-2462-imp-script commit 1b4092d5ee1de5b56c6252bf9debe8b90cdf954e Author: Eugene Burkov <e.burkov@adguard.com> Date: Fri May 14 19:46:09 2021 +0300 scripts: imp install.sh a little commit 0584b30b4648b88f542fff6f2879c4a7ae042af4 Merge: 22621c86 9d788a29 Author: Eugene Burkov <e.burkov@adguard.com> Date: Fri May 14 19:27:47 2021 +0300 Merge branch 'master' into 2542-2462-imp-script commit 22621c86a70e61f98850a10f0c5e450c8aeaa90f Author: Eugene Burkov <e.burkov@adguard.com> Date: Fri May 14 19:25:47 2021 +0300 all: imp code commit a38f4adc4688995ca515f8d0d8d271427365623c Author: Eugene Burkov <e.burkov@adguard.com> Date: Fri May 14 18:40:37 2021 +0300 all: fix url variable commit 238cb859184da4af025137d99216d51d3b481dc0 Author: Eugene Burkov <e.burkov@adguard.com> Date: Fri May 14 18:27:13 2021 +0300 imp code quality commit 0e36c125369d47612fd97c2841a2a688bed5841d Author: Eugene Burkov <e.burkov@adguard.com> Date: Fri May 14 16:34:49 2021 +0300 all: fix typos commit b20f0b72141f5abb5e598324a3f2bd750164e612 Author: Eugene Burkov <e.burkov@adguard.com> Date: Thu Apr 29 14:02:40 2021 +0300 all: imp installation script
2021-05-17 15:24:05 +03:00
Note that options `-r` and `-u` are mutually exclusive.
Merge: + install.sh Merge in DNS/adguard-home from install.sh to master Fix #995 Squashed commit of the following: commit 81a5b6385574fa5bc14f7e9cc8cd707fcdc491c3 Merge: 825062a9 fb7ca942 Author: Andrey Meshkov <am@adguard.com> Date: Wed Oct 7 20:40:30 2020 +0300 Merge branch 'master' into install.sh commit 825062a9cb77447bec0967635bde334218437e1f Author: Andrey Meshkov <am@adguard.com> Date: Wed Oct 7 20:04:04 2020 +0300 minor fixes commit 22205d80479a1f894fe6c72afe22ba555a9e611e Author: Andrey Meshkov <am@adguard.com> Date: Wed Oct 7 20:01:56 2020 +0300 * (home): fix install script commit 073b5fb8e27351094b95d85335dd3d08f65f9ee8 Author: Andrey Meshkov <am@adguard.com> Date: Wed Oct 7 19:59:07 2020 +0300 * (home): update readme and install script commit d4d2e4c35ca1ea1f365e40081098ee9398196ef3 Author: Andrey Meshkov <am@adguard.com> Date: Wed Oct 7 14:43:49 2020 +0300 disable parallel build commit a639b9ae44c534c7fdecd34894f5ad4ae6217472 Author: Andrey Meshkov <am@adguard.com> Date: Wed Oct 7 02:48:52 2020 +0300 * (home): improve install.sh commit 4c564da714850002d1810d4d10dce859f340e3ab Author: Simon Zolin <s.zolin@adguard.com> Date: Thu Oct 1 15:32:53 2020 +0300 minor commit 0ecc1a03a41201a632f650ba995f3b07a6539889 Author: Simon Zolin <s.zolin@adguard.com> Date: Thu Oct 1 15:08:07 2020 +0300 * install.sh: use /opt/AdGuardHome output directory commit fd3ad73606c69e8ede086e67bc557772f9e34406 Author: Simon Zolin <s.zolin@adguard.com> Date: Wed Sep 30 12:13:56 2020 +0300 * install.sh: prompt for an output directory commit 8917e8cb3d794cfa1fd7b358c89695ff719e7e4d Author: Simon Zolin <s.zolin@adguard.com> Date: Tue Sep 29 18:56:54 2020 +0300 + install.sh
2020-10-07 21:01:30 +03:00
2022-11-02 16:18:02 +03:00
### <a href="#alternative-methods" id="alternative-methods" name="alternative-methods">Alternative methods</a>
#### <a href="#manual-installation" id="manual-installation" name="manual-installation">Manual installation</a>
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.
#### <a href="#docker" id="docker" name="docker">Docker</a>
You can use our official Docker image on [Docker Hub].
#### <a href="#snap-store" id="snap-store" name="snap-store">Snap Store</a>
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
### <a href="#guides" id="guides" name="guides">Guides</a>
See our [Wiki][wiki].
[wiki]: https://github.com/AdguardTeam/AdGuardHome/wiki
### <a href="#api" id="api" name="api">API</a>
Merge: + install.sh Merge in DNS/adguard-home from install.sh to master Fix #995 Squashed commit of the following: commit 81a5b6385574fa5bc14f7e9cc8cd707fcdc491c3 Merge: 825062a9 fb7ca942 Author: Andrey Meshkov <am@adguard.com> Date: Wed Oct 7 20:40:30 2020 +0300 Merge branch 'master' into install.sh commit 825062a9cb77447bec0967635bde334218437e1f Author: Andrey Meshkov <am@adguard.com> Date: Wed Oct 7 20:04:04 2020 +0300 minor fixes commit 22205d80479a1f894fe6c72afe22ba555a9e611e Author: Andrey Meshkov <am@adguard.com> Date: Wed Oct 7 20:01:56 2020 +0300 * (home): fix install script commit 073b5fb8e27351094b95d85335dd3d08f65f9ee8 Author: Andrey Meshkov <am@adguard.com> Date: Wed Oct 7 19:59:07 2020 +0300 * (home): update readme and install script commit d4d2e4c35ca1ea1f365e40081098ee9398196ef3 Author: Andrey Meshkov <am@adguard.com> Date: Wed Oct 7 14:43:49 2020 +0300 disable parallel build commit a639b9ae44c534c7fdecd34894f5ad4ae6217472 Author: Andrey Meshkov <am@adguard.com> Date: Wed Oct 7 02:48:52 2020 +0300 * (home): improve install.sh commit 4c564da714850002d1810d4d10dce859f340e3ab Author: Simon Zolin <s.zolin@adguard.com> Date: Thu Oct 1 15:32:53 2020 +0300 minor commit 0ecc1a03a41201a632f650ba995f3b07a6539889 Author: Simon Zolin <s.zolin@adguard.com> Date: Thu Oct 1 15:08:07 2020 +0300 * install.sh: use /opt/AdGuardHome output directory commit fd3ad73606c69e8ede086e67bc557772f9e34406 Author: Simon Zolin <s.zolin@adguard.com> Date: Wed Sep 30 12:13:56 2020 +0300 * install.sh: prompt for an output directory commit 8917e8cb3d794cfa1fd7b358c89695ff719e7e4d Author: Simon Zolin <s.zolin@adguard.com> Date: Tue Sep 29 18:56:54 2020 +0300 + install.sh
2020-10-07 21:01:30 +03:00
2022-11-02 16:18:02 +03:00
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].
Merge: + install.sh Merge in DNS/adguard-home from install.sh to master Fix #995 Squashed commit of the following: commit 81a5b6385574fa5bc14f7e9cc8cd707fcdc491c3 Merge: 825062a9 fb7ca942 Author: Andrey Meshkov <am@adguard.com> Date: Wed Oct 7 20:40:30 2020 +0300 Merge branch 'master' into install.sh commit 825062a9cb77447bec0967635bde334218437e1f Author: Andrey Meshkov <am@adguard.com> Date: Wed Oct 7 20:04:04 2020 +0300 minor fixes commit 22205d80479a1f894fe6c72afe22ba555a9e611e Author: Andrey Meshkov <am@adguard.com> Date: Wed Oct 7 20:01:56 2020 +0300 * (home): fix install script commit 073b5fb8e27351094b95d85335dd3d08f65f9ee8 Author: Andrey Meshkov <am@adguard.com> Date: Wed Oct 7 19:59:07 2020 +0300 * (home): update readme and install script commit d4d2e4c35ca1ea1f365e40081098ee9398196ef3 Author: Andrey Meshkov <am@adguard.com> Date: Wed Oct 7 14:43:49 2020 +0300 disable parallel build commit a639b9ae44c534c7fdecd34894f5ad4ae6217472 Author: Andrey Meshkov <am@adguard.com> Date: Wed Oct 7 02:48:52 2020 +0300 * (home): improve install.sh commit 4c564da714850002d1810d4d10dce859f340e3ab Author: Simon Zolin <s.zolin@adguard.com> Date: Thu Oct 1 15:32:53 2020 +0300 minor commit 0ecc1a03a41201a632f650ba995f3b07a6539889 Author: Simon Zolin <s.zolin@adguard.com> Date: Thu Oct 1 15:08:07 2020 +0300 * install.sh: use /opt/AdGuardHome output directory commit fd3ad73606c69e8ede086e67bc557772f9e34406 Author: Simon Zolin <s.zolin@adguard.com> Date: Wed Sep 30 12:13:56 2020 +0300 * install.sh: prompt for an output directory commit 8917e8cb3d794cfa1fd7b358c89695ff719e7e4d Author: Simon Zolin <s.zolin@adguard.com> Date: Tue Sep 29 18:56:54 2020 +0300 + install.sh
2020-10-07 21:01:30 +03:00
2022-11-02 16:18:02 +03:00
[hassio]: https://www.home-assistant.io/integrations/adguard/
[openapi]: https://github.com/AdguardTeam/AdGuardHome/tree/master/openapi
[pyclient]: https://pypi.org/project/adguardhome/
2018-08-30 17:25:33 +03:00
Merge: + install.sh Merge in DNS/adguard-home from install.sh to master Fix #995 Squashed commit of the following: commit 81a5b6385574fa5bc14f7e9cc8cd707fcdc491c3 Merge: 825062a9 fb7ca942 Author: Andrey Meshkov <am@adguard.com> Date: Wed Oct 7 20:40:30 2020 +0300 Merge branch 'master' into install.sh commit 825062a9cb77447bec0967635bde334218437e1f Author: Andrey Meshkov <am@adguard.com> Date: Wed Oct 7 20:04:04 2020 +0300 minor fixes commit 22205d80479a1f894fe6c72afe22ba555a9e611e Author: Andrey Meshkov <am@adguard.com> Date: Wed Oct 7 20:01:56 2020 +0300 * (home): fix install script commit 073b5fb8e27351094b95d85335dd3d08f65f9ee8 Author: Andrey Meshkov <am@adguard.com> Date: Wed Oct 7 19:59:07 2020 +0300 * (home): update readme and install script commit d4d2e4c35ca1ea1f365e40081098ee9398196ef3 Author: Andrey Meshkov <am@adguard.com> Date: Wed Oct 7 14:43:49 2020 +0300 disable parallel build commit a639b9ae44c534c7fdecd34894f5ad4ae6217472 Author: Andrey Meshkov <am@adguard.com> Date: Wed Oct 7 02:48:52 2020 +0300 * (home): improve install.sh commit 4c564da714850002d1810d4d10dce859f340e3ab Author: Simon Zolin <s.zolin@adguard.com> Date: Thu Oct 1 15:32:53 2020 +0300 minor commit 0ecc1a03a41201a632f650ba995f3b07a6539889 Author: Simon Zolin <s.zolin@adguard.com> Date: Thu Oct 1 15:08:07 2020 +0300 * install.sh: use /opt/AdGuardHome output directory commit fd3ad73606c69e8ede086e67bc557772f9e34406 Author: Simon Zolin <s.zolin@adguard.com> Date: Wed Sep 30 12:13:56 2020 +0300 * install.sh: prompt for an output directory commit 8917e8cb3d794cfa1fd7b358c89695ff719e7e4d Author: Simon Zolin <s.zolin@adguard.com> Date: Tue Sep 29 18:56:54 2020 +0300 + install.sh
2020-10-07 21:01:30 +03:00
2019-02-24 20:13:58 +03:00
2022-11-02 16:18:02 +03:00
## <a href="#comparison" id="comparison" name="comparison">Comparing AdGuard Home to other solutions</a>
2019-02-24 20:13:58 +03:00
2022-11-02 16:18:02 +03:00
### <a href="#comparison-adguard-dns" id="comparison-adguard-dns" name="comparison-adguard-dns">How is this different from public AdGuard DNS servers?</a>
2022-11-02 16:18:02 +03:00
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:
2019-07-12 15:57:20 +03:00
2022-11-02 16:18:02 +03:00
* Choose what exactly the server blocks and permits.
2019-07-12 15:57:20 +03:00
2022-11-02 16:18:02 +03:00
* Monitor your network activity.
2019-06-06 16:00:35 +03:00
2022-11-02 16:18:02 +03:00
* Add your own custom filtering rules.
2019-06-06 16:00:35 +03:00
2022-11-02 16:18:02 +03:00
* **Most importantly, it's your own server, and you are the only one who's in
control.**
2019-06-06 16:00:35 +03:00
2022-11-02 16:18:02 +03:00
### <a href="#comparison-pi-hole" id="comparison-pi-hole" name="comparison-pi-hole">How does AdGuard Home compare to Pi-Hole</a>
2019-06-06 16:00:35 +03:00
2022-11-02 16:18:02 +03:00
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.
2019-06-06 16:00:35 +03:00
2022-11-02 16:18:02 +03:00
<aside>
We're not going to stop here. DNS sinkholing is not a bad starting point, but
this is just the beginning.
</aside>
2019-06-06 16:00:35 +03:00
2022-11-02 16:18:02 +03:00
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.
2019-06-06 16:00:35 +03:00
| Feature | AdGuard&nbsp;Home | Pi-Hole |
|-------------------------------------------------------------------------|-------------------|-----------------------------------------------------------|
| Blocking ads and trackers | ✅ | ✅ |
| Customizing blocklists | ✅ | ✅ |
| Built-in DHCP server | ✅ | ✅ |
| HTTPS for the Admin interface | ✅ | Kind of, but you'll need to manually configure lighttpd |
| Encrypted DNS upstream servers (DNS-over-HTTPS, DNS-over-TLS, DNSCrypt) | ✅ | ❌ (requires additional software) |
| Cross-platform | ✅ | ❌ (not natively, only via Docker) |
| Running as a DNS-over-HTTPS or DNS-over-TLS server | ✅ | ❌ (requires additional software) |
| Blocking phishing and malware domains | ✅ | ❌ (requires non-default blocklists) |
2023-11-13 17:39:48 +03:00
| Parental control (blocking adult domains) | ✅ | ❌ (requires non-default blocklists) |
| Force Safe search on search engines | ✅ | ❌ |
| Per-client (device) configuration | ✅ | ✅ |
| Access settings (choose who can use AGH DNS) | ✅ | ❌ |
2022-11-02 16:18:02 +03:00
| Running [without root privileges][wiki-noroot] | ✅ | ❌ |
[wiki-noroot]: https://github.com/AdguardTeam/AdGuardHome/wiki/Getting-Started#running-without-superuser
2019-06-06 16:00:35 +03:00
2022-11-02 16:18:02 +03:00
### <a href="#comparison-adblock" id="comparison-adblock" name="comparison-adblock">How does AdGuard Home compare to traditional ad blockers</a>
2019-06-06 16:00:35 +03:00
It depends.
2022-11-02 16:18:02 +03:00
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.
2022-11-02 16:18:02 +03:00
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).
2020-06-29 17:46:58 +03:00
2020-06-29 17:46:58 +03:00
2022-11-02 16:18:02 +03:00
### <a href="#comparison-limitations" id="comparison-limitations" name="comparison-limitations">Known limitations</a>
2020-06-29 17:46:58 +03:00
Here are some examples of what cannot be blocked by a DNS-level blocker:
2022-11-02 16:18:02 +03:00
* 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.
2020-06-29 17:46:58 +03:00
2022-11-02 16:18:02 +03:00
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.
2020-06-29 17:46:58 +03:00
2022-11-02 16:18:02 +03:00
[blog-adaway]: https://adguard.com/blog/adguard-vs-adaway-dns66.html
[issue-1228]: https://github.com/AdguardTeam/AdGuardHome/issues/1228
2019-06-06 16:00:35 +03:00
2022-11-02 16:18:02 +03:00
## <a href="#how-to-build" id="how-to-build" name="how-to-build">How to build from source</a>
### <a href="#prerequisites" id="prerequisites" name="prerequisites">Prerequisites</a>
Run `make init` to prepare the development environment.
You will need this to build AdGuard Home:
2018-09-20 18:15:52 +03:00
2023-08-02 16:26:34 +03:00
* [Go](https://golang.org/dl/) v1.20 or later;
2023-10-11 17:31:41 +03:00
* [Node.js](https://nodejs.org/en/download/) v16 or later;
* [npm](https://www.npmjs.com/) v8 or later;
2022-11-02 16:18:02 +03:00
* [yarn](https://yarnpkg.com/) v1.22.5 or later.
2020-08-03 18:39:19 +03:00
2018-09-20 18:15:52 +03:00
2022-11-02 16:18:02 +03:00
### <a href="#building" id="building" name="building">Building</a>
Open your terminal and execute these commands:
2018-09-20 18:15:52 +03:00
```sh
git clone https://github.com/AdguardTeam/AdGuardHome
cd AdGuardHome
make
```
2022-11-02 16:18:02 +03:00
**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.
2022-11-02 16:18:02 +03:00
#### <a href="#building-cross" id="building-cross" name="building-cross">Building for a different platform</a>
2019-06-06 16:00:35 +03:00
2022-11-02 16:18:02 +03:00
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:
```sh
Pull request: all: add a new Makefile and scripts, remove goreleaaser Merge in DNS/adguard-home from 2276-releases to master Updates #2276. Squashed commit of the following: commit 84961947c51477aae53606ec6e2e0cce0bdfc139 Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Wed Dec 30 14:36:13 2020 +0300 all: fix github build commit 54af2adbf2f433e80393fb142e66ba6b3a78b13e Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Wed Dec 30 14:34:02 2020 +0300 all: remove old Dockerfile, improve build scripts commit 99bb2f2ba1458d32074ac0911b5c02ce6669e43e Merge: 2292b677a 5e20ac7ed Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Wed Dec 30 13:47:19 2020 +0300 Merge branch 'master' into WIP-2276-releases commit 2292b677a20ce8e93d9e6e2bb042cd468606fec3 Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Wed Dec 30 13:30:10 2020 +0300 all: improve docker build commit 0bcc97c41f105ee4a4363f20fa4775c7643bf0cc Merge: c7d3f12ef aef4659e9 Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Tue Dec 29 17:47:45 2020 +0300 Merge branch 'master' into WIP-2276-releases commit c7d3f12ef2b63ddfa2acf46e3129fcbc56fb0a90 Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Tue Dec 29 16:28:25 2020 +0300 all: improve build scripts commit 55de1e5d7ef0fbdbd1a76cfb71362d16ca0a1966 Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Tue Dec 29 15:36:47 2020 +0300 all: fix Makefile commit d11b1fe28d0fde1efeaf6160a614951b19d0ef94 Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Tue Dec 29 14:16:19 2020 +0300 scripts: fix build-release commit ecc0577e2451afa86c37da7283a63a9d26fb37ba Merge: dde64ed8e 483f02c92 Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Tue Dec 29 13:59:32 2020 +0300 Merge branch 'master' into WIP-2276-releases commit dde64ed8e456f73559f21c2ca549dc3b46724add Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Fri Dec 25 18:04:46 2020 +0300 all: imp docs, other improvements commit be8574408db79901bb15c1d31916db3ca352a35f Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Fri Dec 25 14:48:30 2020 +0300 all: imp docker build commit fc1876f34b93d667bf166226f4bc666d394f10c7 Merge: fa5a304c8 955b735c8 Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Fri Dec 25 13:54:29 2020 +0300 Merge branch 'master' into WIP-2276-releases commit fa5a304c83d86145796a2de4141de6d18f7c56bf Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Thu Dec 24 19:10:51 2020 +0300 all: improve scripts commit 3f32e3fd5e658d058d5c5172519384efc6cfef83 Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Thu Dec 24 18:50:01 2020 +0300 all: improve scripts commit 2d38b81421acab4b90a7a19da7598c75063e8e93 Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Thu Dec 24 18:25:21 2020 +0300 all: fix shell for windows, improve go-lint.sh commit d695285cd6dc476c0d972cfe0c49bbeea5f5a049 Merge: 313b020e9 9fb6bf82c Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Thu Dec 24 18:14:38 2020 +0300 Merge branch 'master' into WIP-2276-releases commit 313b020e9dfcdab736670cee72b2171eac8c32b7 Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Thu Dec 24 18:13:31 2020 +0300 Makefile: use npm ci again commit 5acee9d6a6c8cd2a7dd04b173a73929650882bad Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Thu Dec 24 17:57:54 2020 +0300 all: try fixing windows build commit c63a2a54641ac8cd032a3306bb35e49b9ae74728 Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Thu Dec 24 17:39:30 2020 +0300 all: imp scripts, try another goproxy and direct commit 423229e8b63ee73caeee8e84c23f67d145aff9df Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Thu Dec 24 17:25:29 2020 +0300 all: imp HACKING.md, try a new proxy ... and 1 more commit
2020-12-30 18:26:25 +03:00
env GOOS='linux' GOARCH='arm64' make
```
or:
```sh
Pull request: all: add a new Makefile and scripts, remove goreleaaser Merge in DNS/adguard-home from 2276-releases to master Updates #2276. Squashed commit of the following: commit 84961947c51477aae53606ec6e2e0cce0bdfc139 Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Wed Dec 30 14:36:13 2020 +0300 all: fix github build commit 54af2adbf2f433e80393fb142e66ba6b3a78b13e Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Wed Dec 30 14:34:02 2020 +0300 all: remove old Dockerfile, improve build scripts commit 99bb2f2ba1458d32074ac0911b5c02ce6669e43e Merge: 2292b677a 5e20ac7ed Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Wed Dec 30 13:47:19 2020 +0300 Merge branch 'master' into WIP-2276-releases commit 2292b677a20ce8e93d9e6e2bb042cd468606fec3 Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Wed Dec 30 13:30:10 2020 +0300 all: improve docker build commit 0bcc97c41f105ee4a4363f20fa4775c7643bf0cc Merge: c7d3f12ef aef4659e9 Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Tue Dec 29 17:47:45 2020 +0300 Merge branch 'master' into WIP-2276-releases commit c7d3f12ef2b63ddfa2acf46e3129fcbc56fb0a90 Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Tue Dec 29 16:28:25 2020 +0300 all: improve build scripts commit 55de1e5d7ef0fbdbd1a76cfb71362d16ca0a1966 Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Tue Dec 29 15:36:47 2020 +0300 all: fix Makefile commit d11b1fe28d0fde1efeaf6160a614951b19d0ef94 Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Tue Dec 29 14:16:19 2020 +0300 scripts: fix build-release commit ecc0577e2451afa86c37da7283a63a9d26fb37ba Merge: dde64ed8e 483f02c92 Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Tue Dec 29 13:59:32 2020 +0300 Merge branch 'master' into WIP-2276-releases commit dde64ed8e456f73559f21c2ca549dc3b46724add Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Fri Dec 25 18:04:46 2020 +0300 all: imp docs, other improvements commit be8574408db79901bb15c1d31916db3ca352a35f Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Fri Dec 25 14:48:30 2020 +0300 all: imp docker build commit fc1876f34b93d667bf166226f4bc666d394f10c7 Merge: fa5a304c8 955b735c8 Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Fri Dec 25 13:54:29 2020 +0300 Merge branch 'master' into WIP-2276-releases commit fa5a304c83d86145796a2de4141de6d18f7c56bf Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Thu Dec 24 19:10:51 2020 +0300 all: improve scripts commit 3f32e3fd5e658d058d5c5172519384efc6cfef83 Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Thu Dec 24 18:50:01 2020 +0300 all: improve scripts commit 2d38b81421acab4b90a7a19da7598c75063e8e93 Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Thu Dec 24 18:25:21 2020 +0300 all: fix shell for windows, improve go-lint.sh commit d695285cd6dc476c0d972cfe0c49bbeea5f5a049 Merge: 313b020e9 9fb6bf82c Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Thu Dec 24 18:14:38 2020 +0300 Merge branch 'master' into WIP-2276-releases commit 313b020e9dfcdab736670cee72b2171eac8c32b7 Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Thu Dec 24 18:13:31 2020 +0300 Makefile: use npm ci again commit 5acee9d6a6c8cd2a7dd04b173a73929650882bad Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Thu Dec 24 17:57:54 2020 +0300 all: try fixing windows build commit c63a2a54641ac8cd032a3306bb35e49b9ae74728 Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Thu Dec 24 17:39:30 2020 +0300 all: imp scripts, try another goproxy and direct commit 423229e8b63ee73caeee8e84c23f67d145aff9df Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Thu Dec 24 17:25:29 2020 +0300 all: imp HACKING.md, try a new proxy ... and 1 more commit
2020-12-30 18:26:25 +03:00
make GOOS='linux' GOARCH='arm64'
```
2022-11-02 16:18:02 +03:00
#### <a href="#preparing-releases" id="preparing-releases" name="preparing-releases">Preparing releases</a>
2022-11-02 16:18:02 +03:00
You'll need [`snapcraft`] to prepare a release build. Once installed, run the
following command:
2020-07-10 23:24:43 +03:00
```sh
Pull request: all: add a new Makefile and scripts, remove goreleaaser Merge in DNS/adguard-home from 2276-releases to master Updates #2276. Squashed commit of the following: commit 84961947c51477aae53606ec6e2e0cce0bdfc139 Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Wed Dec 30 14:36:13 2020 +0300 all: fix github build commit 54af2adbf2f433e80393fb142e66ba6b3a78b13e Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Wed Dec 30 14:34:02 2020 +0300 all: remove old Dockerfile, improve build scripts commit 99bb2f2ba1458d32074ac0911b5c02ce6669e43e Merge: 2292b677a 5e20ac7ed Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Wed Dec 30 13:47:19 2020 +0300 Merge branch 'master' into WIP-2276-releases commit 2292b677a20ce8e93d9e6e2bb042cd468606fec3 Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Wed Dec 30 13:30:10 2020 +0300 all: improve docker build commit 0bcc97c41f105ee4a4363f20fa4775c7643bf0cc Merge: c7d3f12ef aef4659e9 Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Tue Dec 29 17:47:45 2020 +0300 Merge branch 'master' into WIP-2276-releases commit c7d3f12ef2b63ddfa2acf46e3129fcbc56fb0a90 Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Tue Dec 29 16:28:25 2020 +0300 all: improve build scripts commit 55de1e5d7ef0fbdbd1a76cfb71362d16ca0a1966 Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Tue Dec 29 15:36:47 2020 +0300 all: fix Makefile commit d11b1fe28d0fde1efeaf6160a614951b19d0ef94 Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Tue Dec 29 14:16:19 2020 +0300 scripts: fix build-release commit ecc0577e2451afa86c37da7283a63a9d26fb37ba Merge: dde64ed8e 483f02c92 Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Tue Dec 29 13:59:32 2020 +0300 Merge branch 'master' into WIP-2276-releases commit dde64ed8e456f73559f21c2ca549dc3b46724add Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Fri Dec 25 18:04:46 2020 +0300 all: imp docs, other improvements commit be8574408db79901bb15c1d31916db3ca352a35f Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Fri Dec 25 14:48:30 2020 +0300 all: imp docker build commit fc1876f34b93d667bf166226f4bc666d394f10c7 Merge: fa5a304c8 955b735c8 Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Fri Dec 25 13:54:29 2020 +0300 Merge branch 'master' into WIP-2276-releases commit fa5a304c83d86145796a2de4141de6d18f7c56bf Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Thu Dec 24 19:10:51 2020 +0300 all: improve scripts commit 3f32e3fd5e658d058d5c5172519384efc6cfef83 Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Thu Dec 24 18:50:01 2020 +0300 all: improve scripts commit 2d38b81421acab4b90a7a19da7598c75063e8e93 Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Thu Dec 24 18:25:21 2020 +0300 all: fix shell for windows, improve go-lint.sh commit d695285cd6dc476c0d972cfe0c49bbeea5f5a049 Merge: 313b020e9 9fb6bf82c Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Thu Dec 24 18:14:38 2020 +0300 Merge branch 'master' into WIP-2276-releases commit 313b020e9dfcdab736670cee72b2171eac8c32b7 Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Thu Dec 24 18:13:31 2020 +0300 Makefile: use npm ci again commit 5acee9d6a6c8cd2a7dd04b173a73929650882bad Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Thu Dec 24 17:57:54 2020 +0300 all: try fixing windows build commit c63a2a54641ac8cd032a3306bb35e49b9ae74728 Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Thu Dec 24 17:39:30 2020 +0300 all: imp scripts, try another goproxy and direct commit 423229e8b63ee73caeee8e84c23f67d145aff9df Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Thu Dec 24 17:25:29 2020 +0300 all: imp HACKING.md, try a new proxy ... and 1 more commit
2020-12-30 18:26:25 +03:00
make build-release CHANNEL='...' VERSION='...'
```
2022-11-02 16:18:02 +03:00
See the [`build-release` target documentation][targ-release].
2022-11-02 16:18:02 +03:00
#### <a href="#docker-image" id="docker-image" name="docker-image">Docker image</a>
2022-11-02 16:18:02 +03:00
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.
2020-07-10 14:57:53 +03:00
You may need to prepare before using these builds:
2022-11-02 16:18:02 +03:00
* (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].
#### <a href="#debugging-the-frontend" id="debugging-the-frontend" name="debugging-the-frontend">Debugging the frontend</a>
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.
2020-07-10 14:57:53 +03:00
2022-11-02 16:18:02 +03:00
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.
2020-07-10 14:57:53 +03:00
2022-11-02 16:18:02 +03:00
[`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
2019-06-06 16:00:35 +03:00
2022-11-02 16:18:02 +03:00
## <a href="#contributing" id="contributing" name="contributing">Contributing</a>
2022-11-02 16:18:02 +03:00
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.
2020-07-31 11:31:47 +03:00
2022-11-02 16:18:02 +03:00
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
### <a href="#test-unstable-versions" id="test-unstable-versions" name="test-unstable-versions">Test unstable versions</a>
2019-06-06 16:00:35 +03:00
There are two update channels that you can use:
2022-11-02 16:18:02 +03:00
* `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:
2022-11-02 16:18:02 +03:00
1. [Snap Store]: look for the `beta` and `edge` channels.
2022-11-02 16:18:02 +03:00
2. [Docker Hub]: look for the `beta` and `edge` tags.
2022-11-02 16:18:02 +03:00
3. Standalone builds. Use the automated installation script or look for the
available builds [on the Wiki][wiki-platf].
2022-11-02 16:18:02 +03:00
Script to install a beta version:
2022-11-02 16:18:02 +03:00
```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
2019-06-06 16:00:35 +03:00
2022-11-02 16:18:02 +03:00
### <a href="#reporting-issues" id="reporting-issues" name="reporting-issues">Report issues</a>
If you run into any problem or have a suggestion, head to [this page][iss] and
2023-07-26 13:18:44 +03:00
click on the “New issue” button. Please follow the instructions in the issue
form carefully and don't forget to start by searching for duplicates.
2022-11-02 16:18:02 +03:00
[iss]: https://github.com/AdguardTeam/AdGuardHome/issues
### <a href="#translate" id="translate" name="translate">Help with translations</a>
If you want to help with AdGuard Home translations, please learn more about
2022-11-02 16:18:02 +03:00
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
### <a href="#help-other" id="help-other" name="help-other">Other</a>
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
## <a href="#uses" id="uses" name="uses">Projects that use AdGuard Home</a>
<!--
TODO(a.garipov): Use reference links.
-->
* [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).
2023-06-07 20:04:01 +03:00
* [Terminal-based, real-time traffic monitoring and statistics for your AdGuard Home
instance](https://github.com/Lissy93/AdGuardian-Term) by
[@Lissy93](https://github.com/Lissy93)
2022-11-02 16:18:02 +03:00
* [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/).
## <a href="#acknowledgments" id="acknowledgments" name="acknowledgments">Acknowledgments</a>
<!--
TODO(a.garipov): Use reference links.
-->
This software wouldn't have been possible without:
2022-11-02 16:18:02 +03:00
* [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.
2022-11-02 16:18:02 +03:00
For the full list of all Node.js packages in use, please take a look at
[`client/package.json`][src-packagejson] file.
2022-11-02 16:18:02 +03:00
[CoreDNS]: https://coredns.io
[src-packagejson]: https://github.com/AdguardTeam/AdGuardHome/blob/master/client/package.json
2022-11-02 16:18:02 +03:00
## <a href="#privacy" id="privacy" name="privacy">Privacy</a>
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,
2022-11-02 16:18:02 +03:00
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