Skip to main content

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.

Screenshot von Pangolin (von docs.digpangolin.com)

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