Pangolin
Im Moment ist dies noch eine etwas wilde Ansammlung an Informationen die ich im Laufe der nächsten Tage verfeinern und auch mehr kommentieren werde.
Pangolin ist ein Reverse-Proxy, VPN Gateway und Auth-Provider - aufgebaut auf traefik und wireguard.
Persönlicher Aufbau
Bei mir ist dies folgendermaßen eingesetzt, grob dargestellt:

Eckpunkte
- VM bei Hetzner verfügt über IPv4 & IPv6
- pangolin läuft als kompletter Stack mit diversen zusätzlichen Containern
- Metriken von traefik und crowdsec werden von prometheus gescraped
- Demnächste auch pangolin
- newt ist selbst ein Container in einem isolierten Docker Netzwerk, worin sich auch nur die Frontend-Container der Dienste befinden
- Container verfügen über Label und werden automatisch bei Pangolin als Resource angelegt
- Auth, wenn notwendig, gegen Keycloak von UCS
Blueprints
Pangolin Blueprints ist eine Variante um deklarativ die Konfiguration von Resourcen zu definieren. Bei mir ist dies mittels Docker Labels bzw. Container-Labels im Einsatz.
Der newt-Container hat dabei Zugriff auf den Docker-Socket am Host und kann dadurch die Labels der anderen Container auslesen.
Hier habe ich ein paar Labels nieder geschrieben, die ich öfters verwende.
labels:
- pangolin.proxy-resources.<id>.name=test.minifisch.at
- pangolin.proxy-resources.<id>.full-domain=test.minifisch.at
- pangolin.proxy-resources.<id>.protocol=http
- pangolin.proxy-resources.<id>.targets[0].method=http
- pangolin.proxy-resources.<id>.targets[0].port=8080
- pangolin.proxy-resources.<id>.auth.sso-enabled=true
- pangolin.proxy-resources.<id>.auth.sso-roles[0]=Member