LANgenoten artikel

Nginx Proxy Manager: makkelijk meerdere selfhosted services bereikbaar maken

Lees of reageer op LANgenoten →

Als je thuis meerdere services draait, loop je al snel tegen hetzelfde probleem aan: je hebt maar één publiek IP-adres, maar wel meerdere applicaties die je netjes via een domeinnaam wilt bereiken.

Bijvoorbeeld:

- cloud.jouwdomein.nl voor Nextcloud

- media.jouwdomein.nl voor Jellyfin

- wiki.jouwdomein.nl voor Wiki.js

- recipes.jouwdomein.nl voor Mealie

Je wilt natuurlijk niet voor elke service losse poorten openen zoals :8080, :9443 of :5000. Dat is onoverzichtelijk, minder gebruiksvriendelijk en vaak ook minder veilig.

Daar komt Nginx Proxy Manager om de hoek kijken.

Wat is Nginx Proxy Manager?

Nginx Proxy Manager, vaak afgekort als NPM, is een gebruiksvriendelijke webinterface bovenop Nginx. Met Nginx kun je verkeer van buitenaf doorsturen naar interne services. Nginx Proxy Manager maakt dat proces een stuk eenvoudiger, omdat je geen losse Nginx-configuratiebestanden hoeft te schrijven.

In plaats daarvan beheer je alles via een webinterface.

Je kunt hiermee bijvoorbeeld instellen:

https://jellyfin.jouwdomein.nl  →  http://192.168.1.50:8096
https://mealie.jouwdomein.nl    →  http://192.168.1.60:9000
https://wiki.jouwdomein.nl      →  http://192.168.1.70:3000

Voor bezoekers lijkt het alsof elke applicatie netjes op zijn eigen domeinnaam draait, terwijl alles achter de schermen gewoon op je eigen netwerk staat.

Waarom zou je dit gebruiken?

Nginx Proxy Manager is vooral handig als je meerdere selfhosted applicaties draait en die via HTTPS beschikbaar wilt maken.

De belangrijkste voordelen zijn:

1. Eén centrale toegangspoort

Je hoeft op je router meestal alleen poort 80 en 443 door te sturen naar Nginx Proxy Manager.

Dat betekent:

Internet → Router → Nginx Proxy Manager → Interne service

Je hoeft dus niet voor elke applicatie een aparte poort open te zetten.

2. Mooie domeinnamen in plaats van poorten

Zonder reverse proxy krijg je vaak adressen zoals:

http://jouwdomein.nl:8096
http://jouwdomein.nl:9000
http://jouwdomein.nl:3000

Met Nginx Proxy Manager maak je daar nette adressen van:

https://jellyfin.jouwdomein.nl
https://mealie.jouwdomein.nl
https://wiki.jouwdomein.nl

Dat is niet alleen mooier, maar ook makkelijker te onthouden.

3. Gratis SSL-certificaten via Let’s Encrypt

Nginx Proxy Manager kan automatisch gratis SSL-certificaten aanvragen via Let’s Encrypt.

Daardoor kun je je services veilig via HTTPS aanbieden zonder handmatig certificaten te beheren.

4. Simpel beheer via een webinterface

In plaats van handmatig Nginx-configuratiebestanden te maken, klik je in de webinterface een nieuwe proxy host aan.

Je vult in:

- De domeinnaam

- Het interne IP-adres

- De interne poort

- Of HTTPS gebruikt moet worden

- Eventuele extra opties

Dat maakt NPM veel toegankelijker voor homelabbers en beginners.

Hoe werkt een reverse proxy?

Een reverse proxy zit tussen de bezoeker en je interne applicatie.

Stel: iemand bezoekt:

https://cloud.jouwdomein.nl

Dan gebeurt ongeveer dit:

- De bezoeker gaat naar jouw domeinnaam.

- DNS wijst naar jouw publieke IP-adres.

- Je router stuurt poort 443 door naar Nginx Proxy Manager.

- NPM ziet dat het verkeer bedoeld is voor cloud.jouwdomein.nl.

- NPM stuurt het verkeer intern door naar bijvoorbeeld 192.168.1.40:11000.

- De bezoeker krijgt netjes de juiste applicatie te zien.

De bezoeker hoeft niet te weten welk intern IP-adres of welke poort jouw service gebruikt.

Basisinstallatie met Docker Compose

Nginx Proxy Manager installeren met Docker Compose [Guides & tutorials](/c/guides-tutorials/8)

Nginx Proxy Manager, vaak afgekort als NPM, is een webinterface voor Nginx waarmee je makkelijk reverse proxies en SSL-certificaten kunt beheren. Met NPM kun je selfhosted services bereikbaar maken via domeinnamen zoals: https://jellyfin.example.nl https://nextcloud.example.nl https://status.example.nl zonder handmatig Nginx-configuratiebestanden te schrijven. Doel Na deze guide heb je:

Nginx Proxy Manager geïnstalleerd met Docker Compose

een nette mappenstructuur onder /opt/stacks

Een proxy host aanmaken

In Nginx Proxy Manager ga je naar:

Hosts → Proxy Hosts → Add Proxy Host

Daar vul je bijvoorbeeld in:

Domain Names: jellyfin.jouwdomein.nl
Scheme: http
Forward Hostname / IP: 192.168.1.50
Forward Port: 8096

Daarna kun je onder het tabblad SSL kiezen voor:

Request a new SSL Certificate
Force SSL
HTTP/2 Support

Na opslaan zou je service bereikbaar moeten zijn via:

https://jellyfin.jouwdomein.nl

Belangrijke beveiligingstips

Nginx Proxy Manager maakt publiceren makkelijk, maar dat betekent niet dat je zomaar alles open moet zetten.

Zet alleen poort 80 en 443 open

In de meeste gevallen hoef je alleen deze poorten vanaf internet naar NPM door te sturen:

80/tcp
443/tcp

Poort 81, de beheerinterface van NPM, houd je intern.

Gebruik sterke wachtwoorden

De NPM-beheerinterface is krachtig. Wie daar toegang toe heeft, kan verkeer naar je interne services aanpassen.

Gebruik dus een sterk wachtwoord en wijzig direct het standaardaccount na installatie.

Publiceer niet alles

Niet elke service hoeft vanaf internet bereikbaar te zijn.

Voor beheerinterfaces, dashboards en adminpanelen is een VPN vaak verstandiger. Denk bijvoorbeeld aan WireGuard of Tailscale.

Goede kandidaten om niet publiek te zetten:

- Proxmox

- Router/firewall beheer

- Nginx Proxy Manager admininterface

- Grafana

- Portainer

- Database-tools

- Interne monitoring

Gebruik extra authenticatie waar mogelijk

Sommige services hebben zelf geen sterke login of helemaal geen authenticatie. Zet die niet zomaar open.

Overweeg dan extra bescherming via:

- Access Lists in NPM

- Basic Authentication

- VPN-only toegang

- Single Sign-On via bijvoorbeeld Authelia, Authentik of Pocket ID

Let op met echte client-IP’s

Sommige applicaties zien standaard alleen het IP-adres van Nginx Proxy Manager, niet het echte IP-adres van de bezoeker.

Voor logging, beveiliging en rate limiting kan het handig zijn om te zorgen dat je applicatie headers zoals X-Forwarded-For goed verwerkt.

Wanneer is Nginx Proxy Manager een goede keuze?

Nginx Proxy Manager is vooral een goede keuze als je:

- Meerdere selfhosted services draait

- Nette subdomeinen wilt gebruiken

- Gratis HTTPS-certificaten wilt

- Geen zin hebt om handmatig Nginx-configuraties te schrijven

- Een overzichtelijke webinterface prettig vindt

Voor veel homelabs is NPM een prima middenweg tussen gemak en controle.

Wanneer is het minder geschikt?

Nginx Proxy Manager is niet altijd de beste keuze.

Als je heel complexe Nginx-configuraties nodig hebt, veel maatwerk doet of alles volledig als code wilt beheren, dan kun je beter kijken naar alternatieven zoals:

- Caddy

- Traefik

- Handmatige Nginx-configuratie

- HAProxy

- OPNsense HAProxy plugin

Voor de meeste thuisgebruikers en kleine selfhosted omgevingen is Nginx Proxy Manager echter ruim voldoende.

Conclusie

Nginx Proxy Manager is één van de makkelijkste manieren om meerdere selfhosted services netjes en veilig via HTTPS beschikbaar te maken.

Het grootste voordeel is dat je geen Nginx-expert hoeft te zijn. Je krijgt een duidelijke webinterface, automatische Let’s Encrypt-certificaten en overzichtelijk beheer van je reverse proxies.

Wel blijft het belangrijk om kritisch te zijn op wat je openbaar maakt. Een reverse proxy is handig, maar geen magische beveiligingslaag. Zet alleen services online die daar geschikt voor zijn en houd beheerinterfaces liever achter een VPN.

Voor een homelab of selfhosted server is Nginx Proxy Manager daarom een hele praktische eerste stap richting nettere en veiligere toegang tot je eigen diensten.

Lees of reageer op LANgenoten →

← Terug naar het logboek