brain/03 Bereiche/Heimnetz/Server/Nginx Proxy Manager.md

88 lines
2.1 KiB
Markdown

---
tags:
- upnote-import
---
# Nginx Proxy Manager (NPM)
Proxy für diverse Anwendungen auf dem NAS.
diverse Server-Anwendungen
[http://192.168.178.5:81/login](http://192.168.178.5:81/login)
Home-Assistant:
http://192.168.1.192:81/
[pakabu@straso.com](mailto:pakabu@straso.com)
## Konfiguration
- **IP aktuell:** 10.40.10.134
- **IP alt:** 192.168.178.5
- **Port:** 81 (WebUI)
- **Host:** NAS (Docker)
- **Pfad auf NAS:** `/volume1/docker/NginxProxyManager`
- **WebUI:** [http://10.40.10.134:81/login](http://10.40.10.134:81/login)
## Let's Encrypt Wildcard via IONOS DNS-Challenge
NPM kann Wildcard-/Standard-Zertifikate per DNS-01 Challenge über IONOS holen.
**Voraussetzung:** NPM-Image mit installiertem `certbot-dns-ionos` Plugin (z.B. `chaifeng/nginx-proxy-manager` oder custom Build mit `pip install certbot-dns-ionos`).
**API-Credentials bei IONOS erzeugen:**
- IONOS Developer Portal → API-Key anlegen → liefert *Prefix* + *Secret*
**In NPM neues Zertifikat anlegen:**
1. *SSL Certificates**Add SSL Certificate**Let's Encrypt*
2. Domain(s) eintragen — Wildcards möglich, z.B. `*.straso.com`
3. *Use a DNS Challenge* aktivieren
4. *DNS Provider:* `IONOS`
5. *Credentials File Content:*
```ini
dns_ionos_prefix = 6e66c90f824e47f7b9e57457256419cc
dns_ionos_secret = _XFGI18SFTfnR6zi19tnV-gKc0BeJuVEisBIeBFXcR9uNCrNMJ7nu8N-31npzGW_LtnrwAxcRTKcDiea2ejVZg
dns_ionos_endpoint = https://api.hosting.ionos.com
```
6. *Propagation Seconds* ggf. auf 60 erhöhen, falls TXT-Record zu spät sichtbar.
7. *Save* → NPM holt das Zertifikat per DNS-01.
Bestehende Credentials auf dem NAS: `/volume1/docker/NginxProxyManager/letsencrypt/credentials/credentials-6`
## Verwandt
- [[03 Bereiche/Heimnetz/Server/Nginx Proxy Manager für AppFlowy]]
## Backend-Netz für Proxy:
"proxiable" als Netz für den Proxy und weitere Services benutzen:
### Proxy-Manager
```
services:
...
networks:
- proxiable
networks:
proxiable:
name: proxiable
```
### bei weiteren Services
```
services:
...
networks:
- proxiable
networks:
proxiable:
name: proxiablenetworks:
proxiable:
name: proxiable
external: true
```