Pangolin ist eine identity-basierte Remote-Access Plattform auf Basis von WireGuard. Du kannst damit Webanwendungen per Reverse Proxy veröffentlichen und bei Bedarf auch ganze Netzwerke oder einzelne Services sicher per Tunnel erreichbar machen. In dieser Anleitung zeige ich dir die Installation der Community Edition auf einem Hetzner Cloud Server, Docker ist bereits vorhanden

Disclaimer

Mit Pangolin veröffentlichst du Anwendungen und baust Tunnel in dein Netzwerk. Damit wird dein VPS ein Teil deiner Sicherheitsgrenze. Arbeite mit starken Passwörtern, halte den Server aktuell und öffne nur die Ports, die du wirklich brauchst. Prüfe nach der Installation bewusst, welche Ressourcen du freigibst und wer Zugriff bekommt. Am besten sichere auch deinen Admin Account mit MFA ab. Dies kannst du über dein Benutzerprofil (oben rechts) aktivieren.


Voraussetzungen

Bevor du startest, brauchst du Folgendes:

• Linux Server mit Root oder Sudo Zugriff und öffentlicher IP (ich habe hier DietPi auf meinem Hetzner Server)

• Eine Domain, die du per DNS verwalten kannst, idealerweise mit Wildcard DNS

• Eine E Mail Adresse für Let’s Encrypt Zertifikate und den Admin Login

• Offene Ports für HTTP, HTTPS und WireGuard Tunnel (Details weiter unten) 

Hinweis: Pangolin belegt standardmäßig Port 80 und 443. Wenn auf dem Server bereits Nginx, Apache oder ein anderes Reverse Proxy Setup läuft, musst du das vorher abschalten oder auf einen anderen Host verlagern, sonst gibt es Port Konflikte.

Schritt 1: System kurz vorbereiten

Ich gehe hier von Debian oder Ubuntu aus.

Aktualisiere zuerst das System und stelle sicher, dass curl installiert ist:

apt update && apt upgrade -y
apt install -y curl


Optional kannst du prüfen, ob Docker Compose verfügbar ist:

docker compose version

Schritt 2: DNS vorbereiten

Pangolin arbeitet sehr komfortabel, wenn deine Subdomains alle auf den VPS zeigen. Dafür nutzt man in der Regel einen Wildcard DNS Record.

Lege bei deinem DNS Provider folgenden Eintrag an:

Type: A
Name: *
Value: DEINE_VPS_IP
TTL: 300 (oder Standard)


Optional, nur falls du auch die Root Domain als Resource nutzen willst:

Type: A
Name: @
Value: DEINE_VPS_IP


Damit lösen später auch beliebige Subdomains auf deinen Server auf, zum Beispiel app.deinedomain.tld oder intranet.deinedomain.tld.  Dies ist meine bevorzugte Konfiguration, da man für zukünftige dienste keine DNS Einstellungen durchführen muss.

Praxis Tipp: Wenn du kein Wildcard für deine Hauptdomain setzen willst, nutze am besten eine separate Domain nur für Pangolin und deine Ressourcen.

Schritt 3: Firewall Ports öffnen

Pangolin benötigt standardmäßig folgende Ports:

• TCP 80 für Let’s Encrypt Validierung und unverschlüsselte Ressourcen

• TCP 443 für Dashboard und HTTPS Ressourcen

• UDP 51820 für Site Tunnels (Newt zu Gerbil)

• UDP 21820 für Client Tunnels (nur nötig, wenn du Clients nutzt) 

Hetzner Cloud Firewall

Wenn du in Hetzner Cloud Firewalls nutzt, lege Inbound Regeln für diese Ports an und weise sie dem Server zu. Dies ist nur relevant, wenn du in der Hetzner Console die firewall aktiviert hast.

UFW auf dem Server

Falls du UFW auf deinem VPS nutzt, kannst du die Ports so freigeben:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 51820/udp
sudo ufw allow 21820/udp
sudo ufw enable

Schritt 4: Pangolin installieren

Die offizielle Doku nutzt einen Installer, der dir die Konfiguration abnimmt und direkt die Docker Container startet. 

Ich empfehle, vorher ein eigenes Verzeichnis anzulegen, damit später alles sauber an einem Ort liegt:

mkdir -p /opt/pangolin
cd /opt/pangolin

Installer herunterladen

curl -fsSL https://static.pangolin.net/get-installer.sh | bash


Installer starten

sudo ./installer

Der Installer fragt dich nach den wichtigsten Punkten:

• Welche Version (nimm nicht die Enterprise, installiere die comnunity Edition

• Base Domain: deine Root Domain ohne Subdomains, z. B. example.com

• Dashboard Domain: Standard ist pangolin.example.com, du kannst hier auch etwas anderes setzen

• Let’s Encrypt Email: wird für Zertifikate genutzt und ist gleichzeitig dein Admin Login

• Tunneling: hier entscheidest du, ob Gerbil mitinstalliert wird, Standard ist ja

• SMTP und CrowdSec sind optional und können später nachgezogen werden  

Am Ende zieht der Installer die Images und startet die Container automatisch.

Schritt 5: Ersteinrichtung im Dashboard

Nach der Installation bekommst du eine URL für die initiale Einrichtung angezeigt. Sie sieht so aus:

https://DEIN_DASHBOARD_DOMAIN/auth/initial-setup

Optional: Updates sauber einspielen

Pangolin läuft als Docker Stack. Updates bestehen in der Praxis aus Pull und Neustart, plus dem Anpassen der Image Versionen in deiner Compose Datei. Wichtig ist, vorher das config Verzeichnis zu sichern.

sudo docker compose down
sudo docker compose pull
sudo docker compose up -d

Troubleshooting

Dashboard ist nicht erreichbar

• Prüfe, ob DNS wirklich auf die Server IP zeigt

• Prüfe Hetzner Firewall und UFW Regeln

• Prüfe, ob Port 80 und 443 frei sind

Zertifikate werden nicht ausgestellt

• Port 80 muss für die Validierung erreichbar sein

• Wildcard DNS muss korrekt auflösen

• Warte kurz, bis DNS überall bekannt ist 

Tunnels verbinden nicht

• UDP 51820 muss offen sein

• Wenn du Clients nutzt, muss zusätzlich UDP 21820 offen sein 


Links

Pangolin Quick Install Guide: https://docs.pangolin.net/self-host/quick-install

Pangolin DNS & Networking: https://docs.pangolin.net/self-host/dns-and-networking

Pangolin How to Update: https://docs.pangolin.net/self-host/how-to-update


Falls Du noch keinen Hetzner Account hast bekommst du mit meinem Link 20 EUR Startguthaben

https://hetzner.cloud/?ref=zjjtxtgQnryl