AdGuard Home Docker Installation

Aus Laub-Home Wiki

AdGuard Home ist eine gute Alternative für Pi-hole. Dieser blockiert ebenfalls Werbung für das gesamte Netzwerk auf DNS Basis. Man kann AdGuard Home super einfach als Docker Container starten und somit das gesamte Netzwerk vor Werbung und Tracking schützen. Ebenfalls print es eine Kindersicherungs Lösung mit, was sicherlich ein super interessantes Feature ist. Man kann auch ganze Dienste wie YouTube, Facebook WhatsApp und viele mehr komplett im Netzwerk blockieren. Die gesamte Applikation lässt sich über eine WebGui sehr einfach konfigurieren. Das WebGui Dashboard zeigt einem einen guten Überblick darüber was im Netzwerk los ist und was alles von AdGuard Home blockiert wurde. Via Black and Whitelist kann man Regeln hinzufügen.

Mehr Informationen findet ihr hier:

Hardware

Ich habe AdGuard Home bei mir auf folgender Hardware am laufen:

Wie man auf einem Raspberry Pi Docker und Docker Compose installiert könnt ihr hier nachlesen:

Docker Compose Projekt

Als erstes legen wir unser Compose Projekt an und wechseln in dieses:

mkdir -p /opt/adguardhome/data/adguardhome/conf/
cd /opt/adguardhome/

Nun legen wir unser Configfile mit folgendem Inhalt an:

.env

# Config File for AdguardHome Application

# Exposed Port Configuration
DASHBOARDPORT=3000
HTTPPORT=80

# Timezone
TZ=Europe/Berlin

und nun noch das docker-compose.yml:

/opt/adguardhome/docker-compose.yml

version: "3.7"

services:
  adguardhome:
    image: adguard/adguardhome
    container_name: adguardhome
    # For DHCP it is recommended to remove these ports and instead add: network_mode: "host"
    restart: always
    ports:
      # DNS Ports
      - "53:53/tcp"
      - "53:53/udp"
      # DNS over HTTPs
      #- "443:443/tcp"
      # DNS over TLS
      #- "853:853/tcp"
      # DNS over QUIC
      #- "784:784/udp"
      # DNS Crypt
      #- "5443:5443/tcp"
      #- "5443:5443/udp"
      # DHCP Ports
      #- "67:67/udp"
      #- "68:68/tcp"
      #- "68:68/udp"
      # Dashboard
      - "${DASHBOARDPORT}:3000/tcp"
      - "${HTTPPORT}:80/tcp"
    environment:
      TZ: ${TZ}
    volumes:
      - data_adguardhome:/opt/adguardhome/work
      - ./data/adguardhome/conf:/opt/adguardhome/conf
    labels:
      - "com.centurylinklabs.watchtower.enable=true"
    networks:
      - app-nw

volumes:
  data_adguardhome:

networks:
  app-nw:
    internal: false
    driver: bridge
    driver_opts:
      com.docker.network.bridge.name: br-adguard

Nun können wir den AdGuard Home starten:

docker-compose up -d

Konfiguration

Nachdem Starten des Containers greifen wir nun auf das Dashboard zu:

  • http://yourservername:3000

Es begrüßt uns hier nun ein Setup Assistent. Einfach den Anweisungen folgen.

Nachdem AdGuard Home nun grundkonfiguriert ist, müsst ihr diesen via Router DHCP Konfiguration oder manueller Client Konfiguration als DNS Server eintragen.

Local DNS

Möchte man die Lokale DNS Auflösung ebenfalls aktivieren, damit interne Clients auch aufgelöst werden, muss man die den DNS und rDNS für das lokale Netzwerk einrichten. Dies geschieht einfach mittels Regel bei den Upstream DNS Servern. Hier einfach eure Lokale Einstellung einfügen.

Upstream DNS Server Konfiguration:

[/domain.loc/]192.168.0.1
[/0.168.192.in-addr.arpa/]192.168.0.1

Hier werden nun alle Abfragen an die Domain domain.loc und die reverse DNS Abfragen für 192.168.0 an den Nameserver 192.168.0.1 gesendet.

Dies sorgt ebenfalls dazu, das im Dashboard die Clients nach einiger Zeit auch als Name angezeigt werden.

Test

Will man sehen was alles durch adguard geblockt wird, kann man dies über die folgende Seite machen:

Backup

Ein Backup kann entweder händisch oder aber Script gesteuert gemacht werden. Schaut einfach die folgenden Artikel durch:

Update

Möchtet ihr dann später ein Update von AdGuard machen, dann könnt ihr dies entweder automatisch durch Watchtower erledigen lassen:

Oder ihr macht es manuell:

docker-compose pull
docker-compose up -d

Quellen