Praktische Anleitung: AdGuard Home und Nginx Proxy Manager zusammen betreiben
BelowHier isist aeine clear,klare, actionable,umsetzbare scalableund wayskalierbare Methode, to combineum AdGuard Home withmit Nginx Proxy Manager thatzu mirrorskombinieren the– reasoninganalog andzur qualityQualität ofund theLogik des Pi-hole + NPMNPM-Setups, setupdas youdu alreadybereits reviewedkennst, —aber butangepasst adaptedan fordie thearchitektonischen architecturalund andprotokollbedingten protocolUnterschiede differences thatvon AdGuard HomeHome. introduces.(adguard.com)
InKurz short:gesagt:
- AdGuard Home
becomeswirdyourdeine maßgebliche DNS-Quelle (optional auch mit verschlüsseltem DNSsource of truth (and optionally encrypted DNS —– DoH/DoT) - Nginx Proxy Manager (NPM)
handlesübernimmt HTTP/HTTPSforfürweballeinterfacesWeb-OberflächenandundservicesDienste You separateDNSfromundwebWeb-Traffictrafficwerdenandsauberavoidgetrenntport→conflictskeine Port-Konflikte
✅ Core PrinciplesGrundprinzipien
1) LetAdGuard Home nur für DNS nutzen, nicht für HTTP
Die Stärke von AdGuard Home handleliegt DNS,in not HTTP
AdGuard Home’s strength is network-widenetzwerkweitem DNS + filter/parentalFilter-/Kindersicherungs-Funktionen. controlEs features.unterstützt Itnativ nativelydie supportsverschlüsselten encrypted DNS protocolsDNS-Protokolle DNS-over-HTTPS (DoH) andund DNS-over-TLS (DoT), ifwenn youdu enablesie them.aktivierst. (Virtualization Howto)
DNSDNS-Dienste:services: portPort 53 (UDP/TCP), DoH, DoTDoDienotAdmin-Web-Oberflächeexposevon AdGuardHome’sHomeadminniemalswebdirekt auf Port 80/443 exponieren
→ NPM soll die Ports 80/443 exklusiv besitzen, damit der gesamte Web-Traffic zentralisiert wird
2) AdGuard Home Admin-UI directlyauf oneinen anderen Port legen
Standardmäßig bindet AdGuard Home seine Web-Oberfläche auf Ports wie 80/3000 oder benutzerdefiniert – das kollidiert mit NPM.
→ AdGuard Home Web-Interface auf einen Port außerhalb von 80/443 → NPM should own ports 80/443 so web traffic is centralized
2) Run AdGuard Home Admin UI on a different port
By default AdGuard Home binds its web UI on ports like 80/3000/any custom — this can conflict with NPM. Run AdGuard Home’s web interface on a port other than 80/443betreiben (e.g.,z. B. 8080, 3000, 8443). (Reddit)
LaterSpäter leitet NPM willdiesen proxyinternen thatPort internalweiter, portsodass sodu externalextern accesssauber canüber beeine viaschöne aDomain friendlymit domain,HTTPS withzugreifen clean HTTPS.kannst.
3) UseLokale Hostnamen über DNS-Rewrites in AdGuard Home’s DNS rewrites for local hostnamesHome
InsteadStatt of wildcard Wildcard-DNS (whichdas can causebei SSL andund serviceRouting routingzu ambiguity),Unklarheiten explicitlyführen configurekann) localexplizit DNSlokale entriesDNS-Einträge insidein AdGuard Home:Home konfigurieren:
myservice.lab.zn80.net → 192.168.10.105
pihole.adguard.lab.zn80.net → 192.168.10.105
TheseDiese rewritesRewrites areentsprechen equivalentden toA-Records bei Pi-hole’shole Aund recordssagen andden tellClients clientsgenau, exactlywohin wheredie toAnfragen sendgehen requestssollen without– relyingohne on wildcard responses.Wildcard-Unschärfe. (AdGuard Home supportsnutzt rewrites but not exactly the same UI as Pi-hole — you usedafür DNS Rewrite Rules. – die Oberfläche ist etwas anders als bei Pi-hole.) (Chris Kirby)
4) Let NPM handlefür HTTP/HTTPS andund certificatesZertifikate verantwortlich machen
AllDer externalgesamte webexterne access,Web-Zugriff including(Admin-Panels admin+ panelsDienste) andläuft service frontends, should go throughüber NPM:
ForFür eachjeden service:Dienst:
| 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 |
| … | … |
ThisDas achieves:bringt:
SingleEinenentryeinzigenpointEinstiegspunktforfürallalleweb UIsWeb-OberflächenCentralizedZentraleSSL certificate generationSSL-Zertifikatsverwaltung &renewal-Erneuerung (Let’s Encrypt)CleanSaubereinternalinterneservice structureDienststruktur
🔧 Step-by-Step SetupSchritt-für-Schritt-Einrichtung
A) Configure AdGuard Home DNS konfigurieren
Install and runAdGuard HomeonaufyourdeinemhomelabHomelab-Hosthost.installieren und starten. (adguard.com)- In
Einstellungen:Inden AdGuard Homesettings:Enable normalNormales DNSonauf Port 53 aktivierenOptionally enableOptional DoH/DoTifaktivieren,youwennwantduencryptedverschlüsselteresolutionAuflösung möchtestSetTrustedtrustedProxiesproxiessetzen,iffallsusing a reverse proxy fordu DoH über Reverse Proxy nutzt (advanced)fortgeschritten) (GitHub)
CreateDNSrewritesRewritesforfüryourdeineinternalinternenservicesDienste anlegen →locallokalehostnamesHostnamenmapzeigentoaufNPMdie NPM-IP.
Clients onim yourNetzwerk network should usesollten AdGuard Home asals theirDNS-Server DNS servernutzen (viaper DHCP oroder router config)Router-Einstellung). ThisSo ensureslösen theysie resolveinterne internalDomains domainsauf, beforebevor goingsie upstream.upstream gehen.
B) Change AdGuard Home AdminAdmin-UI-Port UI Portändern
AdGuard Home letserlaubt youdie configureKonfiguration itsdes HTTPHTTP-Admin-Ports admin port — do– notnicht leave it onauf 80/443 ifbelassen, wenn NPM isdiese goingPorts toübernimmt. manageHäufig those. It’s common to use something like:genutzt:
192.168.10.105:8080
(NPM willleitet proxydas thisspäter later.weiter.)
C) Configure Nginx Proxy Manager (NPM) konfigurieren
C.1 – Proxy Host RulesRegeln
ForFür eachjeden service/webDienst UI/ youjede wantWeb-Oberfläche, externallydie reachable:extern erreichbar sein soll:
Create aNeuen Proxy Host in NPM anlegen- Domain:
e.g.,z. B.adguard.lab.zn80.net - Forward
hostname:Hostname / IP:192.168.10.105 - Forward
port:Port:yourdein AdGuard Homeadmin UI portAdmin-Port (e.g.,z. B. 8080) EnableSSLSSLaktivieren →request/renew certificateZertifikat via Let’s Encrypt anfordern/erneuern
RepeatDas forfür allalle otherweiteren servicesDienste wiederholen (Home Assistant, Jellyfin,Jellyfin etc.usw.).
NPM
willlauschtlistenexklusivon portsauf 80/443exclusivelyundand terminateterminiert HTTPS.
D) AvoidDNS-Port Proxyingniemals proxyn
Port 53 niemals über NPM leiten – DNS Portist
Dokein notHTTP-Dienst proxyund portmuss 53direkt througherreichbar NPM — DNS is not an HTTP service and must stay direct.bleiben.
E) SSL CertificatesSSL-Zertifikate
- Für
Usealle öffentlich erreichbaren Subdomains Let’s Encryptthroughüber NPMfor all publicly reachable subdomains.nutzen. - Bei
scheitert:Ifreinyouinternenwant internal-only namesNamen (e.g.,z. B..lab.zn80.net),withbeivalid TLS anddenen Let’s Encryptfails:EitherEntwederuseDNS-Challengea DNS challengeverwendenOrOderuse a local/internallokale/interne CAtrustednutzen,bydieyouraufclientsden Clients vertraut wird
- Zertifikate
CertificatesmüssenmustexaktmatchzumtheimhostnameBrowserusedverwendeteninHostnamenthepassenbrowser(sonstto avoid security warnings.Sicherheitswarnungen).
🧠 WhyWarum Thisdas Isdie thebeste BestLösung Setupist
✅ DNSDNS-Funktionen featuresbleiben remainmächtig powerfulund and flexibleflexibel
AdGuard Home can serve DNS, including local rewrites, redirection, and encryptedkann DNS protocolsinkl. —lokaler allRewrites, withoutUmleitungen conflictingund withverschlüsselter yourProtokolle web(DoH/DoT) reversebereitstellen proxy.– ohne Konflikt mit dem Web-Reverse-Proxy. (Virtualization Howto)
✅ NPM becomeswird thedie singleeinzige sourcesichere for secure web accessWeb-Zugangsstelle
AllAlle internalinternen UIsOberflächen andund appsApps aresind accessibleüber through friendlyschöne URLs withmit properkorrekten certificates.Zertifikaten erreichbar.
✅ SeparationKlare of concernsAufgabentrennung
DNS:DNS → AdGuard Home- HTTP/
HTTPS:HTTPS → NPMThis simplifies maintenance and improves security and debugging.
Das vereinfacht Wartung, erhöht Sicherheit und erleichtert die Fehlersuche.
🧩 AdditionalZusätzliche NotesHinweise
DNS over HTTPS (DoH) / DNS over TLS (DoT)
IfWenn youdu enable thesediese in AdGuard Home andaktivierst wantund clientsClients tosie usenutzen them,sollen, theylaufen aresie handledunabhängig independently ofvon NPM. NPM can proxykann HTTP-relatedbasierte adminAdmin-Oberflächen UIs,proxyen, butaber encryptedverschlüsselte DNSDNS-Pfade pathssind arekein notklassisches HTTP in– thedu samesolltest senseDoH-Endpunkte —nur youbewusst won’texponieren, reverse-proxywenn themdu unlessdas youwirklich deliberately expose DoH endpoints.willst.
Trusted reverse proxy headersReverse-Proxy-Header
IfWenn you proxydu AdGuard Home throughüber NPM andproxy useund featuresFunktionen tiednutzt, todie clientechte Client-IPs brauchen (e.g.z. B. Logging), loggingdann real client IPs), consider enabling forwarding headers (X-Real-IP, etc.)& andCo. configuringweiterleiten trustedund proxies.Trusted Proxies in AdGuard Home konfigurieren. (GitHub)
LocalLokale DNS resolutionDNS-Auflösung in NPM
SomeManche setupsSetups report(besonders issuesContainer) whenhaben Probleme, wenn NPM resolvesselbst locallokale DNS fromvon AdGuard Home inauflösen certainsoll container– environmentsstelle —sicher, makedass sureContainer containersdeinen canDNS-Server reacherreichen youroder DNSkonfiguriere serverFallback-Resolver. or configure fallback resolvers.(forums.truenas.com)
📌 FinalFinale Architectureempfohlene (Recommended)Architektur
[Router DHCP] → gives clients DNS ofvergibt AdGuard Home als DNS an Clients
[Client]
|
+-- DNSDNS-Anfrage query toan AdGuard Home -->→ resolveslöst locallokale servicesDienste auf
|
+-- HTTP(S)-Anfrage request toan NPM (80/443) -->→
|
+-- Reverse proxyProxy tozu internalinternen servicesDiensten (AdGuard UI, apps)Apps)
ThisDieses patternMuster keepshält DNSdie resolutionDNS-Auflösung stablestabil andund web/HTTPSdie handlingWeb-/HTTPS-Verwaltung secure,sicher, centralized,zentralisiert andund scalableskalierbar, aswährend yourdeine servicesDienste grow.wachsen.
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.