Nginx Proxy Manager 16-bit illustratie - Home Server Labs
netwerk · portier

Nginx Proxy Manager: één portier voor al je diensten

Heb je meerdere diensten op je server draaien — Nextcloud, Vaultwarden, Jellyfin — dan heb je al snel een chaos van poortnummers en losse adressen. Nginx Proxy Manager is de portier die al dat verkeer netjes naar het juiste deurtje stuurt, met één simpel, herkenbaar adres per dienst.

Wat is Nginx Proxy Manager nou eigenlijk, in gewone taal?

Normaal bereik je elke dienst op je server via een eigen "poortnummer" — bijvoorbeeld http://192.168.1.50:8096 voor Jellyfin en http://192.168.1.50:8080 voor iets anders. Onthouden welk nummer bij welke dienst hoort is onhandig, en die adressen tonen ook nog eens geen slotje (HTTPS) in je browser.

Nginx Proxy Manager (kortweg NPM) is een soort receptioniste die vóór al je andere diensten staat. Jij geeft elke dienst een herkenbare naam, bijvoorbeeld films.mijnhuis.nl voor Jellyfin, en de receptioniste stuurt bezoekers die daarnaartoe gaan automatisch door naar het juiste poortnummer erachter — inclusief een geldig, gratis beveiligingscertificaat (dat groene slotje in je browser), volledig automatisch geregeld via Let's Encrypt.

Dit is precies de dienst die andere diensten op deze pagina nodig hebben om ook buiten je huis veilig bereikbaar te zijn — zoals we bij Vaultwarden al even aanstipten.

Wat heb je nodig?

  • vereistDocker geïnstalleerd op je server
  • let opWil je diensten ook van buiten je huis bereikbaar maken? Dan heb je een eigen domeinnaam nodig, en moet je poort 80 en 443 op je router doorverwijzen naar je server

Handmatig installeren, stap voor stap

  1. Zorg dat Docker draait

    Nginx Proxy Manager draait als Docker-container. Staat Docker nog niet op je server, installeer het dan eerst.

  2. Maak een instellingenbestand aan

    Maak een bestand genaamd docker-compose.yml aan met de volgende inhoud — dit vertelt Docker precies hoe de container gebouwd moet worden:

    docker-compose.yml
    services:
      app:
        image: 'jc21/nginx-proxy-manager:latest'
        restart: unless-stopped
        ports:
          - '80:80'
          - '443:443'
          - '81:81'
        volumes:
          - ./data:/data
          - ./letsencrypt:/etc/letsencrypt
  3. Start de container

    start-npm.sh
    $ docker compose up -d
  4. Open het beheerscherm

    Ga naar http://<ip-adres-van-je-server>:81. Log in met het standaard e-mailadres admin@example.com en wachtwoord changeme, en wijzig dit meteen bij de eerste keer inloggen.

De snelle weg: installeren met een community-script

Draai je Proxmox? Dan bouwt een gratis community-script — gemaakt door vrijwilligers en gebruikt door duizenden zelfhosters — in een paar minuten een eigen, afgeschermd hokje ("container") met Nginx Proxy Manager er al kant-en-klaar in, zonder dat je zelf een instellingenbestand hoeft te schrijven.

proxmox-shell — community-script
$ bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/nginxproxymanager.sh)"
even opletten

Bekijk bij twijfel altijd eerst wat een script doet — dat kan gratis op GitHub. De grote, actieve gemeenschap achter deze scripts maakt ze relatief betrouwbaar, maar blijf kritisch: het draait met volledige rechten op je systeem.

Hoe gebruik je het?

In het beheerscherm maak je per dienst een nieuwe "Proxy Host" aan: je vult de naam in die je wilt gebruiken (bijvoorbeeld films.mijnhuis.nl) en het interne adres met poortnummer van de dienst erachter (bijvoorbeeld 192.168.1.50:8096 voor Jellyfin). Met één vinkje regelt Nginx Proxy Manager er automatisch een gratis, geldig beveiligingscertificaat bij via Let's Encrypt.

tips

Wijzig altijd meteen het standaardwachtwoord na installatie — dit programma staat straks aan de voordeur van al je andere diensten. Gebruik voor elke dienst een aparte, herkenbare naam, zodat je nooit meer een poortnummer hoeft te onthouden.

Bronnen