Ga naar inhoud

🔀 Nginx Proxy Manager

Nginx Proxy Manager (NPM) is een reverse proxy die alle .hub domeinen mogelijk maakt.

Algemene Info

Item Waarde
Container nginx-proxy-manager
Image jc21/nginx-proxy-manager:latest
HTTP Poort 80
HTTPS Poort 443
Admin Poort 81
Admin URL npm.hub of 192.168.1.13:81

Functies

  • ✅ Reverse proxy - Routeert .hub domeinen naar containers
  • ✅ SSL/TLS - HTTPS met Let's Encrypt (indien nodig)
  • ✅ Access Lists - Toegangscontrole per host
  • ✅ Redirects - URL doorverwijzingen
  • ✅ Custom locations - Geavanceerde routing

Hoe het Werkt

Browser → pihole.hub → NPM (:80) → pihole container (:8080)
  1. Je typt pihole.hub in browser
  2. Pi-hole DNS vertaalt naar 192.168.1.13
  3. NPM ontvangt request op poort 80
  4. NPM kijkt naar hostname (pihole.hub)
  5. NPM routeert naar pihole:80 (container naam)

Geconfigureerde Proxy Hosts

Domein Forward Host Forward Port Websockets
dashboard.hub homer 8080 Nee
pihole.hub pihole 80 Nee
status.hub uptime-kuma 3001 Ja
portainer.hub portainer 9000 Ja
npm.hub nginx-proxy-manager 81 Nee
guacamole.hub guacamole 8080 Ja
duplicati.hub duplicati 8200 Nee
docs.hub mkdocs 8000 Nee

Forward Host

De Forward Host is de container naam, niet het IP adres. Docker DNS zorgt voor de vertaling.

Proxy Host Toevoegen

  1. Ga naar npm.hub of 192.168.1.13:81
  2. Login met je credentials
  3. Klik Proxy Hosts → Add Proxy Host

Details Tab

Veld Waarde Voorbeeld
Domain Names Je .hub domein nieuw.hub
Scheme http (meestal) http
Forward Hostname Container naam mijn-container
Forward Port Container poort 8080
Block Exploits Aanvinken ✅
Websockets Als nodig Afhankelijk van service

SSL Tab (optioneel)

Voor lokale services meestal niet nodig. Voor externe toegang:

  1. Selecteer "Request a new SSL Certificate"
  2. Vink "Force SSL" aan
  3. Vul email in
  4. Agree to Terms

Websockets

Zet Websockets AAN voor: - Uptime Kuma - Portainer
- Guacamole - Elke real-time service

Eerste Keer Inloggen

Standaard credentials: - Email: admin@example.com - Password: changeme

Wijzig direct!

Wijzig deze credentials direct na eerste login!

Troubleshooting

502 Bad Gateway

Symptomen

  • "502 Bad Gateway" error
  • Service draait wel

Oorzaken en oplossingen:

  1. Verkeerde Forward Host:
  2. Gebruik container naam, niet IP
  3. Check: docker ps voor container naam

  4. Verkeerde poort:

  5. Check de interne poort van de container
  6. Niet de gemapte host poort!

  7. Container niet in zelfde netwerk:

    # Check netwerken
    docker network inspect proxy-net
    
    # Voeg toe indien nodig
    docker network connect proxy-net mijn-container
    

  8. Container down:

    docker ps | grep mijn-container
    docker start mijn-container
    

504 Gateway Timeout

Symptomen

  • Pagina laadt lang, dan timeout
  • Grote bestanden uploaden mislukt

Oplossing:

  1. Bewerk de proxy host
  2. Ga naar Advanced tab
  3. Voeg toe:
    proxy_connect_timeout 300;
    proxy_send_timeout 300;
    proxy_read_timeout 300;
    

SSL Certificaat Errors

Voor lokale services: - SSL is niet nodig voor .hub domeinen - Gebruik gewoon HTTP

Bij "NET::ERR_CERT_AUTHORITY_INVALID": - Certificaat is self-signed - Klik "Advanced" → "Proceed" in browser - Of: vraag Let's Encrypt certificaat aan (vereist publiek domein)

.hub Domein Werkt Niet

  1. Check DNS:

    nslookup nieuw.hub 192.168.1.13
    

  2. Voeg toe aan Pi-hole:

  3. Pi-hole → Local DNS → DNS Records
  4. Domein: nieuw.hub
  5. IP: 192.168.1.13

  6. Check NPM proxy host config

Access Lists

Beperk toegang tot bepaalde hosts:

  1. Access Lists → Add Access List
  2. Geef naam (bijv. "Alleen Thuis")
  3. Voeg toegestane IP ranges toe:
  4. 192.168.1.0/24
  5. 192.168.10.0/24
  6. Pas toe op proxy host

Custom Nginx Config

Voor geavanceerde configuratie, gebruik de Advanced tab:

# Voorbeeld: grotere uploads
client_max_body_size 100M;

# Voorbeeld: custom headers
proxy_set_header X-Real-IP $remote_addr;

Docker Compose

nginx-proxy-manager:
  image: jc21/nginx-proxy-manager:latest
  container_name: nginx-proxy-manager
  restart: unless-stopped
  ports:
    - "80:80"
    - "443:443"
    - "81:81"
  volumes:
    - ./nginx-proxy-manager/data:/data
    - ./nginx-proxy-manager/letsencrypt:/etc/letsencrypt
  networks:
    - proxy-net

Gerelateerd