69c5f175e8
* commit '79b0fac01a544e35207420fed78e1c2a63d428d8': * control: move /install handlers to a separate file + add technical document * app: move code for http server loop to a separate function * client: fixed getDefaultAddresses structure - client: npm audit fix * client: validate form on load * client: installation wizard additional checks * update openapi.yaml + service install: a post-install guide of what to do next * control: /install/configure: validate port number * control: /install/configure: reset configuration back to its current state on error + control: /install/*: test TCP port availability for DNS server + control: /install/check_config: Check and deactivate DNSStubListener * control: /install/configure: refactor + control: add /install/check_config handler * control: /install/get_addresses: don't check if ports are available + app: unix, windows: require root user on first launch * setRlimit(): move OS-specific code to separate files |
||
---|---|---|
client | ||
dhcpd | ||
dnsfilter | ||
dnsforward | ||
openapi | ||
scripts | ||
.codecov.yml | ||
.gitattributes | ||
.gitignore | ||
.golangci.yml | ||
.gometalinter.json | ||
.travis.yml | ||
AGHTechDoc.md | ||
app.go | ||
build_docker.sh | ||
clients.go | ||
config.go | ||
control.go | ||
control_install.go | ||
control_test.go | ||
control_tls.go | ||
dhcp.go | ||
dns.go | ||
Dockerfile | ||
Dockerfile.travis | ||
filter.go | ||
go.mod | ||
go.sum | ||
helpers.go | ||
helpers_test.go | ||
i18n.go | ||
issue_template.md | ||
LICENSE.txt | ||
Makefile | ||
os_unix.go | ||
os_windows.go | ||
README.md | ||
release.sh | ||
service.go | ||
syslog_others.go | ||
syslog_windows.go | ||
upgrade.go | ||
upgrade_test.go | ||
version.json |
Privacy protection center for you and your devices
Free and open source, powerful network-wide ads & trackers blocking DNS server.
AdGuard.com |
Wiki |
Reddit |
Twitter |
Telegram
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.
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 servers -- both share a lot of common code.
Getting Started
Please read the Getting Started article on our Wiki to learn how to install AdGuard Home, and how to configure your devices to use it.
Alternatively, you can use our official Docker image.
Guides
- Configuration
- AdGuard Home as a DNS-over-HTTPS or DNS-over-TLS server
- How to install and run AdGuard Home on Raspberry Pi
- How to install and run AdGuard Home on a Virtual Private Server
How to build from source
Prerequisites
You will need:
You can either install it via the provided links or use brew.sh if you're on Mac:
brew install go node
Building
Open Terminal and execute these commands:
git clone https://github.com/AdguardTeam/AdGuardHome
cd AdGuardHome
make
Contributing
You are welcome to fork this repository, make your changes and submit a pull request — https://github.com/AdguardTeam/AdGuardHome/pulls
How to update translations
If you want to help with AdGuard Home translations, please learn more about translating AdGuard products here: https://kb.adguard.com/en/general/adguard-translations
Here is a direct link to AdGuard Home project: http://translate.adguard.com/collaboration/project?id=153384
Before updating translations you need to install dependencies:
cd scripts/translations
npm install
Create file oneskyapp.json
in scripts/translations
folder.
Example of oneskyapp.json
{
"url": "https://platform.api.onesky.io/1/projects/",
"projectId": <PROJECT ID>,
"apiKey": <API KEY>,
"secretKey": <SECRET KEY>
}
Upload translations
node upload.js
Download translations
node download.js
Reporting issues
If you run into any problem or have a suggestion, head to this page and click on the New issue
button.
Acknowledgments
This software wouldn't have been possible without:
- Go and it's libraries:
- Node.js and it's libraries:
- whotracks.me data
You might have seen that CoreDNS was mentioned here before — we've stopped using it in AdGuardHome. While we still use it on our servers for AdGuard DNS service, it seemed like an overkill for Home as it impeded with Home features that we plan to implement.
For a full list of all node.js packages in use, please take a look at client/package.json file.