Skip to main content

Practical architecture for combining AdGuard Home and Nginx Proxy Manager

Below

is a clear, actionable, scalable way to combine AdGuard Home mitwith Nginx Proxy Manager zuthat kombinierenmirrors the analogreasoning zurand Qualitätquality undof Logikthe des Pi-hole + NPM-Setups,NPM dassetup duyou bereitsalready kennst,reviewed aber angepasstbut anadapted diefor architektonischenthe undarchitectural protokollbedingtenand Unterschiedeprotocol vondifferences that AdGuard Home.Home introduces.(adguard.com)

KurzIn gesagt:short:

  • AdGuard Home wirdbecomes deine maßgebliche DNS-Quelle (optional auch mit verschlüsseltemyour DNS source of truth (and optionally encrypted DNS — DoH/DoT)
  • Nginx Proxy Manager (NPM) übernimmthandles HTTP/HTTPS fürfor alleweb Web-Oberflächeninterfaces undand Diensteservices
  • You separate DNS undfrom Web-Trafficweb werdentraffic sauberand getrenntavoid port keine Port-Konflikteconflicts

GrundprinzipienCore Principles

1) Let AdGuard Home nurhandle fürDNS, DNS nutzen, nicht fürnot HTTP

Die Stärke von AdGuard HomeHome’s liegtstrength inis netzwerkweitemnetwork-wide DNS + Filter-/Kindersicherungs-Funktionen.filter/parental Escontrol unterstütztfeatures. nativIt dienatively verschlüsseltensupports DNS-Protokolleencrypted DNS protocols DNS-over-HTTPS (DoH) undand DNS-over-TLS (DoT), wennif duyou sieenable aktivierst. them.(Virtualization Howto)

  • DNS-Dienste:DNS Portservices: port 53 (UDP/TCP), DoH, DoT
  • DieDo Admin-Web-Oberflächenot vonexpose AdGuard Home’s admin web UI directly on 80/443 → NPM should own ports 80/443 so web traffic is centralized

2) Run AdGuard Home niemalsAdmin direktUI aufon Porta 80/443different exponieren
port

By NPM soll die Ports 80/443 exklusiv besitzen, damit der gesamte Web-Traffic zentralisiert wird

2)default AdGuard Home Admin-binds its web UI aufon einenports anderenlike Port80/3000/any legen

custom

Standardmäßig bindetthis can conflict with NPM. Run AdGuard HomeHome’s seineweb Web-Oberflächeinterface aufon Portsa wie 80/3000 oder benutzerdefiniert – das kollidiert mit NPM.
→ AdGuard Home Web-Interface auf einen Portport außerhalbother vonthan 80/443 betreiben (z. B.e.g., 8080, 3000, 8443). (Reddit)

Später leitetLater NPM diesenwill internenproxy Portthat weiter,internal sodassport duso externexternal sauberaccess übercan einebe schönevia Domaina mitfriendly HTTPSdomain, zugreifenwith kannst.clean HTTPS.


3) Lokale Hostnamen über DNS-Rewrites inUse AdGuard HomeHome’s DNS rewrites for local hostnames

StattInstead Wildcard-of wildcard DNS (daswhich beican cause SSL undand Routingservice zurouting Unklarheitenambiguity), führenexplicitly kann)configure explizitlocal lokaleDNS DNS-Einträgeentries ininside AdGuard Home konfigurieren:Home:

myservice.lab.zn80.net   → 192.168.10.105
adguard.pihole.lab.zn80.net     → 192.168.10.105

DieseThese Rewritesrewrites entsprechenare denequivalent A-Records beito Pi-holehole’s undA sagenrecords denand Clientstell genau,clients wohinexactly diewhere Anfragento gehensend sollenrequests without ohnerelying Wildcard-Unschärfe.on wildcard responses. (AdGuard Home nutztsupports dafürrewrites but not exactly the same UI as Pi-hole — you use DNS Rewrite Rules – die Oberfläche ist etwas anders als bei Pi-hole..) (Chris Kirby)


4) Let NPM fürhandle HTTP/HTTPS undand Zertifikate verantwortlich machencertificates

DerAll gesamteexternal externeweb Web-Zugriffaccess, (Admin-Panelsincluding +admin Dienste)panels läuftand überservice frontends, should go through NPM:

FürFor jedeneach Dienst:service:

ÖffentlichePublic URL NPM Proxy Host Konfigurationconfig InterneInternal AdresseAddress
https://adguard.lab.zn80.net Proxy zumto interneninternal AdGuard Home Admin-Portadmin port (z. B.e.g., 8080) z. B.e.g., 192.168.10.105:8080
https://grafana.lab.zn80.net Proxy zuto Grafana z. B.e.g., 192.168.10.110:3000
usw.etc.

DasThis bringt:achieves:

  • EinenSingle einzigenentry Einstiegspunktpoint fürfor alleall Web-Oberflächenweb UIs
  • ZentraleCentralized SSL-ZertifikatsverwaltungSSL certificate generation & -Erneuerungrenewal (Let’s Encrypt)
  • SaubereClean interneinternal Dienststrukturservice structure

🔧 Schritt-für-Schritt-EinrichtungStep-by-Step Setup

A) Configure AdGuard Home DNS konfigurieren

  1. Install and run AdGuard Home aufon deinemyour Homelab-Hosthomelab installieren und starten. host.(adguard.com)

  2. In den AdGuard Home Einstellungen:settings:

    • NormalesEnable normal DNS auf Porton 53 aktivieren
    • OptionalOptionally enable DoH/DoT aktivieren,if wennyou duwant verschlüsselteencrypted Auflösung möchtestresolution
    • TrustedSet Proxiestrusted setzen,proxies fallsif duusing a reverse proxy for DoH über Reverse Proxy nutzt (fortgeschritten) advanced)(GitHub)
  3. Create DNS Rewritesrewrites fürfor deineyour interneninternal Dienste anlegenserviceslokalelocal Hostnamenhostnames zeigenmap aufto dieNPM NPM-IP.

Clients imon Netzwerkyour solltennetwork should use AdGuard Home alsas DNS-Servertheir nutzenDNS server (pervia DHCP oderor Router-Einstellung)router config). SoThis lösenensures siethey interneresolve Domainsinternal auf,domains bevorbefore siegoing upstreamupstream.

gehen.


B) Change AdGuard Home Admin-UI-Admin UI Port ändern

AdGuard Home erlaubtlets dieyou Konfigurationconfigure desits HTTP-Admin-PortsHTTP admin port — do nichtnot aufleave it on 80/443 belassen, wennif NPM dieseis Portsgoing übernimmt.to Häufigmanage genutzt:those. It’s common to use something like:

192.168.10.105:8080

(NPM leitetwill dasproxy späterthis weiter.later.)


C) Configure Nginx Proxy Manager (NPM) konfigurieren

C.1 – Proxy Host RegelnRules

FürFor jedeneach Dienstservice/web /UI jedeyou Web-Oberfläche,want dieexternally extern erreichbar sein soll:reachable:

  1. NeuenCreate a Proxy Host in NPM anlegen
  2. Domain: z. B.e.g., adguard.lab.zn80.net
  3. Forward Hostname / IP:hostname: 192.168.10.105
  4. Forward Port:port: deinyour AdGuard Home Admin-Portadmin UI port (z. B.e.g., 8080)
  5. Enable SSL aktivierenZertifikatrequest/renew certificate via Let’s Encrypt anfordern/erneuern

DasRepeat fürfor alleall weiterenother Dienste wiederholenservices (Home Assistant, JellyfinJellyfin, usw.etc.).

NPM lauschtwill exklusivlisten aufon ports 80/443 undexclusively terminiertand terminate HTTPS.


D) DNS-Avoid Proxying DNS Port niemals proxyn

Do Portnot proxy port 53 niemals überthrough NPM leiten – DNS istis keinnot HTTP-Dienstan undHTTP mussservice direktand erreichbarmust bleiben.stay direct.


E) SSL-ZertifikateSSL Certificates

  • Für alle öffentlich erreichbaren Subdomains

    Use Let’s Encrypt überthrough NPM nutzen.for all publicly reachable subdomains.

  • Bei rein

    If internenyou Namenwant internal-only names (z. B.e.g., .lab.zn80.net), beiwith denenvalid TLS and Let’s Encrypt scheitert:fails:

    • EntwederEither DNS-Challengeuse verwendena DNS challenge
    • OderOr lokale/interneuse a local/internal CA nutzen,trusted dieby aufyour den Clients vertraut wirdclients
  • Zertifikate müssen

    Certificates exaktmust zummatch imthe Browserhostname verwendetenused Hostnamenin passenthe (sonstbrowser Sicherheitswarnungen).to avoid security warnings.


🧠 WarumWhy dasThis dieIs bestethe LösungBest istSetup

DNS-FunktionenDNS bleibenfeatures mächtigremain undpowerful flexibeland flexible

AdGuard Home kanncan serve DNS, including local rewrites, redirection, and encrypted DNS inkl.protocols lokaler Rewrites,all Umleitungenwithout undconflicting verschlüsselterwith Protokolleyour (DoH/DoT)web bereitstellenreverse – ohne Konflikt mit dem Web-Reverse-Proxy. proxy.(Virtualization Howto)

✅ NPM wirdbecomes diethe einzigesingle sicheresource Web-Zugangsstellefor secure web access

AlleAll interneninternal OberflächenUIs undand Appsapps sindare überaccessible schönethrough friendly URLs mitwith korrektenproper Zertifikaten erreichbar.certificates.

KlareSeparation Aufgabentrennungof concerns

  • DNS →DNS: AdGuard Home
  • HTTP/HTTPS →HTTPS: NPM This simplifies maintenance and improves security and debugging.

Das vereinfacht Wartung, erhöht Sicherheit und erleichtert die Fehlersuche.


🧩 ZusätzlicheAdditional HinweiseNotes

DNS over HTTPS (DoH) / DNS over TLS (DoT)

WennIf duyou dieseenable these in AdGuard Home aktivierstand undwant Clientsclients sieto nutzenuse sollen,them, laufenthey sieare unabhängighandled vonindependently of NPM. NPM kanncan proxy HTTP-basierterelated Admin-Oberflächenadmin proxyen,UIs, aberbut verschlüsselteencrypted DNS-PfadeDNS sindpaths keinare klassischesnot HTTP in duthe solltestsame DoH-Endpunktesense nur bewusstyou exponieren,won’t wennreverse-proxy duthem dasunless wirklichyou willst.deliberately expose DoH endpoints.

Trusted Reverse-Proxy-Headerreverse proxy headers

WennIf duyou proxy AdGuard Home überthrough NPM proxyand unduse Funktionenfeatures nutzt,tied dieto echteclient Client-IPs brauchen(e.g., logging real client IPs), consider enabling forwarding headers (z. B. Logging), dann X-Real-IP, &etc.) Co.and weiterleitenconfiguring undtrusted Trusted Proxies in AdGuard Home konfigurieren. proxies.(GitHub)

Lokale

Local DNS-AuflösungDNS resolution in NPM

MancheSome Setupssetups (besondersreport Container)issues haben Probleme, wennwhen NPM selbstresolves lokalelocal DNS vonfrom AdGuard Home auflösenin sollcertain container stelleenvironments sicher, dassmake Containersure deinencontainers DNS-Servercan erreichenreach oderyour konfiguriereDNS Fallback-Resolver.server or configure fallback resolvers.(forums.truenas.com)


📌 FinaleFinal empfohleneArchitecture Architektur(Recommended)

[Router DHCP] → vergibtgives clients DNS of AdGuard Home als DNS an Clients

[Client] 
   |
   +-- DNS-AnfrageDNS anquery to AdGuard Home --> löstresolves lokalelocal Dienste aufservices
   |
   +-- HTTP(S)-Anfrage anrequest to NPM (80/443) -->    
        |
        +-- Reverse Proxyproxy zuto interneninternal Dienstenservices (AdGuard UI, Apps)apps)

DiesesThis Musterpattern hältkeeps dieDNS DNS-Auflösungresolution stabilstable undand dieweb/HTTPS Web-/HTTPS-Verwaltunghandling sicher,secure, zentralisiertcentralized, undand skalierbar,scalable währendas deineyour Diensteservices wachsen.grow.


If you want, I can provide a concrete example NPM proxy configuration for AdGuard Home (with headers and SSL settings) along with how to handle DoH/DoT clients on Android or browsers — just let me know your priorities.