Skip to content
BotServBotServ
NginxReverse ProxyWeb UILets EncryptDockerSelf-Hosting

Nginx Proxy Manager: Reverse Proxy einfach

Nginx Proxy Manager: Web-UI für Reverse Proxy, Lets Encrypt und Zugriffskontrolle. Einfacher Einstieg.

S

schutzgeist

8 min read
Nginx Proxy Manager

Nginx Proxy Manager: Reverse Proxy einfach

Was dieser Artikel behandelt

  • Was der Nginx Proxy Manager ist und weshalb er Anfängern hilft
  • Wie Du mit wenigen Klicks einen Reverse Proxy in Docker einrichtest
  • Wie automatische Let’s Encrypt Zertifikate funktionieren
  • Welche Sicherheitsoptionen für Deine KI-Services verfügbar sind
  • Wo die grössten Einsteigerfallen liegen und wie Du sie vermeidest

Einleitung

Wenn Du lokale KI-Tools wie Ollama, Webseiten oder andere Services im Heimnetz betreiben möchtest, stösst Du früher oder später auf den Begriff Reverse Proxy. Ein Reverse Proxy nimmt Anfragen aus dem Internet entgegen und leitet sie an den passenden internen Service weiter. Das klingt technisch, ist aber die Grundlage für saubere Domains, HTTPS und eine bessere Sicherheit.

Der Nginx Proxy Manager, kurz NPM, ist eine grafische Weboberfläche für genau diese Aufgabe. Dahinter steckt der bekannte Nginx Webserver, aber Du musst keine Konfigurationsdateien per Hand schreiben. Stattdessen klickst Du Dich durch Eingabemasken, lässt Dir kostenlose TLS Zertifikate über Let’s Encrypt ausstellen und verwaltest Access Lists. Für Self-Hosting ist das ein echter Vorteil, weil es viel Zeit spart.

In diesem Artikel lernst Du, wie Du Nginx Proxy Manager mit Docker installierst, eine erste Domain einrichtest und Deinen Ollama oder anderen KI Service sicher nach aussen erreichbar machst. Themen wie TLS Zertifikate und Netzwerk findest Du bei uns in den passenden Kategorien. Eine Alternative, die ganz ohne Port-Forwarding auskommt, ist Tailscale.

Warum Nginx Proxy Manager?

Nginx Proxy Manager vereinfacht die Arbeit mit einem Reverse Proxy erheblich. In klassischen Setups bearbeitest Du Textdateien, testest die Syntax und startest den Dienst neu. Bei NPM erledigst Du das alles in einem Browserfenster. Du legst einen Proxy Host an, wählst die Domain, gibst die interne Adresse und den Port ein und entscheidest, ob SSL aktiv sein soll.

Der Clou: Let’s Encrypt Zertifikate lassen sich direkt aus der Weboberfläche beantragen und verlängern. Du bekommst damit für Deine Subdomains gültige HTTPS Verbindungen, ohne selbst Zertifikate kaufen oder manuell verwalten zu müssen. Für KI-Services wie Ollama bedeutet das, dass Deine Browserverbindung verschlüsselt bleibt und Du gleichzeitig hübsche Domains wie ollama.example.de nutzen kannst.

Nginx Proxy Manager kurz erklärt

Nginx ist ein sehr beliebter Webserver und Reverse Proxy. Der Nginx Proxy Manager ist ein Docker Container, der Nginx, ein grafisches Backend und eine Datenbank zusammenpackt. Nach dem Start rufst Du die Weboberfläche über einen Browser auf. Dort verwaltest Du Hosts, Zertifikate, Redirects und Access Lists.

Jeder Proxy Host besteht aus einer Domain, einer Weiterleitungszieladresse und optionalen Einstellungen wie SSL, HSTS oder erweiterten Locations. Sobald ein Eintrag gespeichert ist, erzeugt NPM im Hintergrund die passende Nginx Konfiguration und lädt sie neu. Du merkst davon nichts, ausser dass Dein Service erreichbar ist.

Für wen ist dieser Artikel gedacht?

Der Artikel richtet sich an Einsteiger im Bereich Self-Hosting, die bereits Docker kennen oder schnell kennenlernen wollen. Du solltest einen eigenen Server, ein NAS oder einen Raspberry Pi mit Linux und Docker haben. Grundkenntnisse in Linux und Docker helfen, sind aber nicht zwingend notwendig. Falls Du Docker noch nicht eingerichtet hast, wirf einen Blick auf unsere Docker Grundlagen.

Wer lieber auf Cloudflares Infrastruktur setzt, findet bei uns auch den Artikel Cloudflare Tunnel. NPM ist dagegen die richtige Wahl, wenn Du eine eigene Domain mit eigenen TLS Zertifikaten nutzen möchtest.

Wichtige Begriffe

BegriffBedeutung
Reverse ProxyEin Dienst, der externe Anfragen an interne Services weiterleitet.
NginxEin vielseitiger Webserver und Reverse Proxy, der auch als Load Balancer dient.
Let’s EncryptEin kostenloser Anbieter für TLS Zertifikate.
SSL/TLSVerschlüsselung für HTTPS Verbindungen.
Proxy HostEin Eintrag im NPM, der Domain und internes Ziel verbindet.
Access ListEine Regel, die festlegt, wer auf einen Proxy Host zugreifen darf.
DockerEine Plattform, um Anwendungen in Containern zu isolieren.
ComposeEine Möglichkeit, mehrere Docker Container per YAML Datei zu starten.

Voraussetzungen für die Installation

Du brauchst ein Linux System mit installiertem Docker und Docker Compose. Viele Einsteiger nutzen Ubuntu, Debian oder ein NAS mit Container Unterstützung. Stelle sicher, dass Dein Benutzer zur Docker Gruppe gehört oder Du Befehle mit sudo ausführst. Dein Server sollte aus dem Internet erreichbar sein, also öffentliche Ports 80 und 443 haben. Dafür benötigst Du in Deinem Router ein Port-Forwarding.

Zusätzlich benötigst Du eine eigene Domain, deren DNS auf Deine öffentliche IP zeigt. Das kann bei Cloudflare, Hetzner, INWX oder jedem anderen Registrar sein. Du solltest mindestens eine Subdomain wie ollama.example.de anlegen, die auf Deine öffentliche IP Adresse verweist. Wenn Du eine dynamische IP hast, nutze einen DynDNS Dienst.

Solltest Du noch unsicher beim Thema Netzwerk sein, findest Du Grundlagen im Artikel Netzwerk. Für Sicherheitsthemen empfehlen wir Netzwerksicherheit.

Installation über Docker Compose

Die sauberste Installation von Nginx Proxy Manager läuft über Docker. Erstelle auf Deinem Server einen Ordner und darin eine Datei namens docker-compose.yml mit folgendem Inhalt:

version: "3.8"
services:
  npm:
    image: jc21/nginx-proxy-manager:latest
    container_name: npm
    restart: unless-stopped
    ports:
      - "80:80"
      - "81:81"
      - "443:443"
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
    environment:
      - DB_SQLITE_FILE=/data/database.sqlite

Speichere die Datei und starte den Container:

cd /opt/npm
docker compose up -d

Der erste Start kann ein paar Sekunden dauern. Anschliessend ist die Weboberfläche unter http://DEINE_SERVER_IP:81 erreichbar. Die Standardanmeldedaten sind admin@example.com und changeme. Du wirst beim ersten Login aufgefordert, ein neues Passwort zu setzen.

Erstellen Deines ersten Proxy Hosts

Melde Dich im Nginx Proxy Manager an. Klicke auf Hosts und dann auf Proxy Hosts. Dort wählst Du Add Proxy Host. Im Formular trägst Du folgende Werte ein:

  • Domain Names: ollama.example.de
  • Forward Hostname / IP: Die IP oder der Name Deines Ollama Containers, zum Beispiel ollama oder localhost
  • Forward Port: 11434
  • Block Common Exploits: einschalten
  • Websockets Support: optional einschalten

Speichere den Eintrag. Der interne Service ist nun unter Deiner Domain erreichbar, allerdings noch ohne HTTPS.

HTTPS mit Let’s Encrypt aktivieren

Bearbeite den gerade angelegten Proxy Host und wechsle zum Reiter SSL. Wähle Request a new SSL Certificate. Stelle sicher, dass die Domain wirklich auf Deine öffentliche IP zeigt, denn Let’s Encrypt muss den Besitz prüfen. Akzeptiere die Nutzungsbedingungen und speichere.

Nach wenigen Sekunden solltest Du ein gültiges Zertifikat erhalten. Schalte zusätzlich Force SSL an, damit alle unverschlüsselten Anfragen automatisch auf HTTPS weitergeleitet werden. Optional aktivierst Du HTTP/2 Support und HSTS.

Ab sofort ist Ollama unter https://ollama.example.de erreichbar. Deine Daten werden verschlüsselt übertragen und der Browser zeigt das Schloss Symbol an.

Zugriffskontrolle einrichten

Nicht jeder Service sollte öffentlich im Netz stehen. Bei NPM legst Du Access Lists an, um den Zugriff einzuschränken. Das geht über IP Adressen, Benutzername und Passwort oder eine Kombination aus beidem. Besonders empfohlen ist die HTTP Basic Auth, bei der der Browser nach Benutzername und Passwort fragt.

Richte für jeden öffentlichen KI Service, der nicht für die ganze Welt gedacht ist, mindestens ein Passwort ein. Behalte im Hinterkopf, dass reine IP Whitelisting bei mobilen oder wechselnden IPs schwierig ist. Benutzer und Passwort sind da deutlich flexibler.

Typische Stolpersteine

  1. Standardpasswort nicht geändert: Der Nginx Proxy Manager startet mit admin@example.com und changeme. Ändere es sofort, sonst öffnest Du im Prinzip Dein System für jeden.

  2. Port 81 nicht freigegeben: Für die Weboberfläche brauchst Du Port 81. Wenn Du nur 80 und 443 freigegeben hast, erreichst Du das Dashboard nicht.

  3. Domain zeigt noch nicht auf die IP: Let’s Encrypt funktioniert nur, wenn der DNS Eintrag korrekt und bereits verbreitet ist. Geduld und DNS Prüfung helfen.

  4. Interner Service nicht erreichbar: Wenn localhost:11434 nicht funktioniert, liegt Ollama vielleicht in einem anderen Docker Netzwerk. Nutze den Container Namen mit der richtigen Bridge.

  5. Let’s Encrypt Rate Limits: Wenn Du zu oft fehlschlägst, blockiert Let’s Encrypt Deine Domain vorübergehend. Teste DNS und Erreichbarkeit, bevor Du erneut antragst.

  6. Cloudflare Proxy stört Let’s Encrypt: Wenn Deine Domain über Cloudflare läuft und auf proxied steht, kann Let’s Encrypt die IP nicht validieren. Schalte kurzzeitig auf DNS only um.

  7. Firewall blockt Ports: Stelle sicher, dass Deine Server Firewall eingehenden Traffic auf 80, 443 und 81 erlaubt. Andernfalls scheitert HTTPS und das Web UI.

  8. Docker Volume Berechtigungen: NPM speichert Zertifikate und Daten in Volumes. Falsche Berechtigungen können dazu führen, dass Zertifikate nicht geschrieben werden.

  9. HTTPS im Browser rot: Wenn ein Browser ein rotes Warnzeichen zeigt, ist meist das Zertifikat abgelaufen, das HSTS falsch gesetzt oder die Domain passt nicht.

  10. Cache verhindert Änderungen: Nach Konfigurationsänderungen kann es helfen, den Container neu zu starten oder den Browser Cache zu leeren.

Hardware, Kosten und Sicherheit

Nginx Proxy Manager ist sehr ressourcenschonend. Auf einem Raspberry Pi 4, einem kleinen VPS oder einem NAS läuft er problemlos. Deutlich mehr Leistung brauchst Du nur, wenn Du sehr viele parallele Anfragen oder zusätzliche Container betreibst. Für ein normales Heimnetz reicht ein Pi oder ein günstiger Server.

Kosten entstehen durch die Domain, ggf. DynDNS und Deinen Strom. Let’s Encrypt Zertifikate sind kostenlos. Wenn Du bei Cloudflare oder einem anderen Anbieter hostest, zählst Du noch eventuelle Domainpreise. Sicherheitstechnisch ist NPM eine gute Lösung, wenn Du gleich HTTPS, Access Lists und Block Common Exploits aktivierst.

Vergiss nicht, Deine lokale Firewall zu konfigurieren und nur die Ports zu öffnen, die wirklich nötig sind. Ein regelmässiges Update des Containers ist ebenso wichtig wie sichere Passwörter.

FAQ

  1. Kostet Nginx Proxy Manager etwas?
    Nein, das Projekt ist Open Source und kostenlos nutzbar. Kosten entstehen höchstens für die Domain oder Hosting.

  2. Brauche ich Port-Forwarding?
    Ja, wenn Du externe Domains direkt nutzen möchtest. Alternativ bietet sich Cloudflare Tunnel an.

  3. Funktioniert NPM mit Ollama?
    Ja. Leite einfach Port 11434 auf eine hübsche Domain weiter.

  4. Wie oft erneuert Let’s Encrypt Zertifikate?
    NPM prüft automatisch in regelmässigen Abständen und erneuert Zertifikate vor Ablauf.

  5. Ist NPM für Anfänger geeignet?
    Ja, die grafische Oberfläche erleichtert den Einstieg erheblich.

  6. Kann ich mehrere Domains nutzen?
    Ja, Du kannst beliebig viele Proxy Hosts mit unterschiedlichen Domains und Zielen anlegen.

  7. Was passiert, wenn meine IP dynamisch ist?
    Nutze DynDNS. NPM selbst übernimmt keine DNS Aktualisierung.

  8. Sind meine Daten dann verschlüsselt?
    Mit aktiviertem SSL ja, zumindest zwischen Browser und Nginx Proxy Manager. Interner Traffic läuft im Docker Netz.

  9. Kann ich externe Nutzer aussperren?
    Ja, über Access Lists mit Passwort oder IP Whitelisting.

  10. Was ist der Unterschied zu Nginx selbst?
    NPM ist Nginx mit einer grafischen Oberfläche und zusätzlichen Verwaltungsfunktionen.

  11. Muss ich Nginx Konfigurationen schreiben?
    Nein, das erledigt NPM automatisch im Hintergrund. Fortgeschrittene können aber eigene Snippets einbinden.

  12. Wie starte ich NPM neu, ohne Daten zu verlieren?
    Verwende docker compose restart im Projektordner. Daten bleiben in den Volumes erhalten.

Quellen

  • Nginx Proxy Manager Dokumentation: nginxproxymanager.com
  • Nginx offizielle Dokumentation: nginx.org
  • Let’s Encrypt Dokumentation: letsencrypt.org
  • Docker Compose Referenz: docker.com
  • Ollama offizielle Dokumentation: ollama.com
  • Cloudflare Community Guides zur DNS Konfiguration
Zurück zum KI Blog
Share:

Ähnliche Beiträge