Zum Inhalt

Nginx Proxy Manager API

Stand: 2026-05-25

Ziel

Nginx Proxy Manager wird für Reverse-Proxy, TLS-Zertifikate und Access Lists genutzt. Agenten dürfen NPM lesen und bei explizitem Auftrag kontrolliert ändern.

Zugriff

Feld Wert
Host 10.222.50.10
UI http://10.222.50.10:81
API http://10.222.50.10:81/api
Credential Vaultwarden: Lanstyle / Nginx Proxy Manager API
Standard Access List Max (id=1)

Secrets werden nicht in Git, Wiki oder Prompts gespeichert. Agenten holen Zugangsdaten bei Bedarf aus Vaultwarden.

Empfohlenes Werkzeug

Für Bash-basierte Automationen kann das Projekt Erreur32/nginx-proxy-manager-Bash-API genutzt werden:

  • Repository: https://github.com/Erreur32/nginx-proxy-manager-Bash-API
  • Script: npm-api.sh
  • Funktionen: Proxy Hosts listen/anzeigen/anlegen, SSL aktivieren, Access Lists verwalten, API-Export.

Lokale Konfiguration nur in einem nicht versionierten Arbeitsverzeichnis ablegen, zum Beispiel:

NGINX_IP="10.222.50.10"
NGINX_PORT="81"
API_USER="<aus Vaultwarden>"
API_PASS="<aus Vaultwarden>"

Vor produktiven Aenderungen immer:

  1. NPM-Datenbank sichern: /data/database.sqlite.
  2. Ziel-Host per API lesen und dokumentieren.
  3. Nur die nötigen Felder ändern.
  4. OpenResty-Syntax prüfen.
  5. HTTP, TLS und Backend testen.

Direkte API-Beispiele

Token holen:

curl -sS -X POST http://10.222.50.10:81/api/tokens \
  -H 'Content-Type: application/json' \
  --data '{"identity":"<user>","secret":"<pass>","scope":"user"}'

Proxy Host anzeigen:

curl -sS http://10.222.50.10:81/api/nginx/proxy-hosts/<id> \
  -H "Authorization: Bearer $NPM_TOKEN"

n8n Proxy Host

Feld Wert
Proxy Host ID 45
Domain n8n.lanstyle.de
Forward http://10.222.40.35:5678
Zertifikat 49
SSL Force aktiv
HTTP/2 aktiv
WebSocket aktiv
Block Common Exploits aktiv
Access List 0

Stand 2026-05-27 wurde der Proxy Host per NPM-API wieder mit TLS aktiviert, nachdem OpenResty nur eine Port-80-Konfiguration ausgeliefert hatte. HTTP leitet seitdem per 301 auf HTTPS um, https://n8n.lanstyle.de/ liefert HTTP 200.

search.lanstyle.de Canary

Stand: 2026-05-25

Feld Wert
Proxy Host ID 48
Domain search.lanstyle.de
Forward vorher http://10.0.1.240:8888
DNS-Canary http://searxng.ad.lanstyle.de:8888
Forward aktiv http://10.222.70.12:8888
Access List unverändert 0
Zertifikat unverändert 52
SSL Force aktiv seit 2026-05-27
HTTP/2 aktiv seit 2026-05-27
Block Common Exploits aktiv

Die Umstellung erfolgte per NPM-API, damit NPM die generierte OpenResty-Konfiguration korrekt aktualisiert. Direkte SQLite-Änderungen allein reichen nicht aus, weil /data/nginx/proxy_host/*.conf dabei nicht zuverlässig neu erzeugt wird.

Der DNS-Upstream searxng.ad.lanstyle.de:8888 wurde wegen intermittierender NPM/OpenResty-Resolver-Fehler verworfen. Der aktive Canary nutzt die direkte interne Upstream-IP 10.222.70.12. Getestet wurden Root-Aufruf, mehrere Suchabfragen, 18 parallele Suchabfragen und eine Nachbeobachtung. NPM Access Logs müssen für diesen Canary Sent-to 10.222.70.12 zeigen.

ollama.lanstyle.de Canary

Stand: 2026-05-25

Feld Wert
Proxy Host ID 41
Domain ollama.lanstyle.de
Forward vorher http://10.222.70.11:11434
Forward aktiv http://10.222.70.11:11434
DNS-Canary verworfen http://ollama.ad.lanstyle.de:11434
Access List unverändert 4
Zertifikat unverändert 43
SSL Force aktiv
HTTP/2 aktiv
WebSocket aktiv
Block Common Exploits aktiv

Der aktive Canary erfolgte ausschließlich per NPM-API und nutzt die direkte interne Upstream-IP 10.222.70.11. Vor der Änderung wurde der Proxy Host exportiert und nach der Änderung wurden /api/tags, /v1/models, Streaming-Generierung, Embeddings und parallele Requests getestet. Der DNS-Upstream ollama.ad.lanstyle.de wurde verworfen, weil OpenResty ihn zeitweise auf 80.155.133.58:11434 auflöste und HTTP 502 erzeugte.

litellm.lanstyle.de Canary

Stand: 2026-05-25

Feld Wert
Proxy Host ID 46
Domain litellm.lanstyle.de
Forward vorher http://10.0.1.243:4000
Forward aktiv http://10.222.70.20:4000
Access List unverändert 0
Zertifikat unverändert 50
SSL Force aktiv seit 2026-05-27
HTTP/2 aktiv seit 2026-05-27
WebSocket aktiv
Block Common Exploits aktiv

Der Canary erfolgte ausschließlich per NPM-API und nutzt die direkte interne Upstream-IP 10.222.70.20. Getestet wurden erwartetes HTTP 401 auf /health ohne Key, /v1/models, Chat Completions, Streaming, Embeddings und parallele Requests. NPM Access Logs muessen fuer diesen Canary Sent-to 10.222.70.20 zeigen.

mcphub.lanstyle.de Canary

Stand: 2026-05-25

Feld Wert
Proxy Host ID 47
Domain mcphub.lanstyle.de
Forward vorher http://10.0.1.243:3000
Forward aktiv http://10.222.70.20:3000
Access List unverändert 0
Zertifikat unverändert 51
SSL Force aktiv seit 2026-05-27
HTTP/2 aktiv seit 2026-05-27
WebSocket aktiv
Block Common Exploits aktiv

Der Canary erfolgte ausschließlich per NPM-API und nutzt die direkte interne Upstream-IP 10.222.70.20. Getestet wurden Root, /health, geschützte API-/MCP-Pfade mit erwarteter HTTP-401-Antwort ohne Token, Open-WebUI-Erreichbarkeit und parallele Requests. NPM Access Logs muessen fuer diesen Canary Sent-to 10.222.70.20 zeigen.

ai.lanstyle.de Canary

Stand: 2026-05-26

Feld Wert
Proxy Host ID 40
Domain ai.lanstyle.de
Forward vorher http://10.0.0.250:8080
Forward aktiv http://10.222.70.10:8080
Access List unverändert 3
Zertifikat unverändert 44
SSL Force aktiv
HTTP/2 aktiv
WebSocket aktiv
Block Common Exploits aktiv

Der Canary erfolgte ausschließlich per NPM-API und nutzt die direkte interne Upstream-IP 10.222.70.10. Getestet wurden Root, /api/config, erwartetes HTTP 401 auf /api/models ohne Token, authentifizierte Modellliste mit 11 Modellen, Browser-Session-Persistenz, Chat mit litellm.lanstyle/agent-stable, parallele Modelllisten-Requests sowie Open-WebUI-Endpunkte für Terminals, Tools und Functions. NPM Access Logs muessen fuer diesen Canary Sent-to 10.222.70.10 zeigen.

Rollback: Proxy Host ID 40 per NPM-API zurück auf 10.0.0.250:8080.

Bekannte Hinweise

  • API-Backups ersetzen kein vollständiges NPM-Backup. Zusätzlich /data und /etc/letsencrypt sichern.
  • Wenn ein neuer Proxy Host in der UI angelegt wurde und TLS mit tlsv1 unrecognized name fehlschlägt, prüfen ob OpenResty die neue Konfiguration geladen hat.
  • Syntaxcheck vor Reload/Restart:
/usr/local/openresty/nginx/sbin/nginx -t