Practical architecture for combining AdGuard Home and Nginx Proxy Manager
Belowis 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
wirdbecomesdeine 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/HTTPSfürforallewebWeb-OberflächeninterfacesundandDiensteservices - You separate DNS
undfromWeb-Trafficwebwerdentrafficsauberandgetrenntavoid→portkeine 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:DNSPortservices: port 53 (UDP/TCP), DoH, DoTDieDoAdmin-Web-Oberflächenotvonexpose 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:
| NPM Proxy Host |
||
|---|---|---|
https://adguard.lab.zn80.net |
Proxy |
192.168.10.105:8080 |
https://grafana.lab.zn80.net |
Proxy |
192.168.10.110:3000 |
| … | … |
DasThis bringt:achieves:
EinenSingleeinzigenentryEinstiegspunktpointfürforalleallWeb-Oberflächenweb UIsZentraleCentralizedSSL-ZertifikatsverwaltungSSL certificate generation &-Erneuerungrenewal (Let’s Encrypt)SaubereCleaninterneinternalDienststrukturservice structure
🔧 Schritt-für-Schritt-EinrichtungStep-by-Step Setup
A) Configure AdGuard Home DNS konfigurieren
-
Install and run AdGuard Home
aufondeinemyourHomelab-Hosthomelabinstallieren und starten.host.(adguard.com) -
In
denAdGuard HomeEinstellungen:settings:NormalesEnable normal DNSauf Porton 53aktivierenOptionalOptionally enable DoH/DoTaktivieren,ifwennyouduwantverschlüsselteencryptedAuflösung möchtestresolutionTrustedSetProxiestrustedsetzen,proxiesfallsifduusing a reverse proxy for DoHüber Reverse Proxy nutzt(fortgeschritten)advanced)(GitHub)
-
Create DNS
RewritesrewritesfürfordeineyourinterneninternalDienste anlegenservices →lokalelocalHostnamenhostnameszeigenmapauftodieNPMNPM-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.
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:
NeuenCreate a Proxy Host in NPManlegen- Domain:
z. B.e.g.,adguard.lab.zn80.net - Forward
Hostname / IP:hostname:192.168.10.105 - Forward
Port:port:deinyour AdGuard HomeAdmin-Portadmin UI port (z. B.e.g., 8080) - Enable SSL
aktivieren→Zertifikatrequest/renew certificate via Let’s Encryptanfordern/erneuern
DasRepeat fürfor alleall weiterenother Dienste wiederholenservices (Home Assistant, JellyfinJellyfin, usw.etc.).
NPM
lauschtwillexklusivlistenaufon ports 80/443undexclusivelyterminiertand 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üralle öffentlich erreichbaren SubdomainsUse Let’s Encrypt
überthrough NPMnutzen.for all publicly reachable subdomains.BeireinIf
internenyouNamenwant internal-only names (z. B.e.g.,.lab.zn80.net),beiwithdenenvalid TLS and Let’s Encryptscheitert:fails:EntwederEitherDNS-Challengeuseverwendena DNS challengeOderOrlokale/interneuse a local/internal CAnutzen,trusteddiebyaufyourden Clients vertraut wirdclients
ZertifikatemüssenCertificates
exaktmustzummatchimtheBrowserhostnameverwendetenusedHostnameninpassenthe(sonstbrowserSicherheitswarnungen).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)
LokaleLocal 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.
