mirror of
https://github.com/tborychowski/self-hosted-cookbook.git
synced 2025-12-23 20:11:44 +00:00
more
This commit is contained in:
101
apps/ad-blockers/adguard.md
Normal file
101
apps/ad-blockers/adguard.md
Normal file
@@ -0,0 +1,101 @@
|
||||
# Adguard Home
|
||||
|
||||
## Overview
|
||||
|
||||
- [Homepage](https://adguard.com/en/adguard-home/overview.html)
|
||||
- [Overview blog post](https://adguard.com/en/blog/in-depth-review-adguard-home.html)
|
||||
- [Github repo](https://github.com/AdguardTeam/AdguardHome)
|
||||
- [DockerHub repo](https://hub.docker.com/r/adguard/adguardhome)
|
||||
|
||||
|
||||
## `docker-compose.yml`
|
||||
```yml
|
||||
---
|
||||
version: '3.7'
|
||||
services:
|
||||
adguard:
|
||||
container_name: adguard
|
||||
image: adguard/adguardhome
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "53:53/tcp"
|
||||
- "53:53/udp"
|
||||
- "853:853/tcp"
|
||||
- "9001:80/tcp"
|
||||
- "9002:443/tcp"
|
||||
- "9003:3000/tcp"
|
||||
# not sure what this is for,but everything works without it
|
||||
# - "67:67/udp"
|
||||
# - "68:68/tcp"
|
||||
# - "68:68/udp"
|
||||
volumes:
|
||||
- ./conf:/opt/adguardhome/conf
|
||||
- ./data:/opt/adguardhome/work
|
||||
- ./certs:/opt/adguardhome/certs # remember to put this path in the UI too
|
||||
```
|
||||
Admin panel should be available at https://localhost:9002
|
||||
|
||||
|
||||
## Tips & tricks
|
||||
|
||||
### Reset UI password
|
||||
1. Generate hash
|
||||
```sh
|
||||
htpasswd -B -n -b <USERNAME> <PASSWORD>
|
||||
```
|
||||
It will print `<USERNAME>:<HASH>` to the terminal.
|
||||
2. Open AdGuardHome.yaml
|
||||
```sh
|
||||
nano adguard/conf/AdGuardHome.yaml
|
||||
```
|
||||
3. In the `users:` section update:
|
||||
```yml
|
||||
users:
|
||||
- name: username
|
||||
password: <HASH>
|
||||
```
|
||||
4. Save & restart AdguardHome
|
||||
|
||||
|
||||
### How to map IP -> Hostname
|
||||
Add `extra_hosts` node to the `docker-compose.yml` with the mapping, like so:
|
||||
```yml
|
||||
extra_hosts:
|
||||
- "HomeServer:192.168.1.20"
|
||||
```
|
||||
This will inject the map to the `/etc/hosts` file of the container,
|
||||
which **AdGuard** will use to show the nice names.
|
||||
|
||||
Alternatively this can be done through the Admin UI.
|
||||
|
||||
|
||||
### Ensure that port 53 is available for the container
|
||||
1. First, disable and stop Ubuntu's DNS resolver using the following two commands:
|
||||
```sh
|
||||
sudo systemctl disable systemd-resolved.service
|
||||
sudo systemctl stop systemd-resolved.service
|
||||
```
|
||||
2. Next, open network manager configuration using the following command for editing:
|
||||
```sh
|
||||
sudo nano /etc/NetworkManager/NetworkManager.conf
|
||||
```
|
||||
3. Add `dns=default` under `[main]` so that the file contents look like this:
|
||||
```ini
|
||||
[main]
|
||||
plugins=ifupdown,keyfile
|
||||
dns=default
|
||||
```
|
||||
4. Then either remove or rename `/etc/resolv.conf` (it's a symbolic link) using the the following command:
|
||||
```sh
|
||||
sudo mv /etc/resolv.conf /etc/resolv.conf.bak
|
||||
```
|
||||
5. In case there is a problem, you can rename the file back to `/etc/resolv.conf`.
|
||||
6. Finally, restart your network manager using the following command:
|
||||
```sh
|
||||
sudo service network-manager restart
|
||||
```
|
||||
7. If that doesn't work, use this:
|
||||
```sh
|
||||
ps aux | grep dns # get the PID of the dns process
|
||||
sudo kill -9 <PID> # kill it
|
||||
```
|
||||
Reference in New Issue
Block a user