Pangolin : Le Reverse Proxy qui Va Vous Faire Oublier WireGuard et Cloudflare

Pangolin : Le Reverse Proxy qui Va Vous Faire Oublier WireGuard et Cloudflare

J'ai passé des heures à configurer WireGuard, des jours à débugger des tunnels qui tombent. Puis j'ai découvert Pangolin.

J’ai passé un weekend entier à configurer WireGuard pour accéder à mon homelab depuis l’extérieur. Des règles iptables bizarres, des problèmes de NAT, des certificats SSL qui expiraient sans raison. Ça marchait… parfois. Le matin. Pas le soir.

Puis j’ai découvert Cloudflare Tunnels. Mieux, mais dépendant d’un service tiers. Et quand Cloudflare avait un problème (ce qui arrive), mon accès tombait avec.

Je voulais quelque chose de simple, auto-hébergé, et qui marche tout le temps. Pangolin a été ma réponse.

Qu’est-ce que Pangolin ?

Pangolin est une plateforme de remote access open-source qui combine VPN WireGuard et reverse proxy dans un seul outil. Vous exposez vos applications web via un tunnel sécurisé, avec authentification et contrôle d’accès granulaire.

Le génie ? Il s’occupe du NAT traversal automatiquement. Pas besoin d’IP publique, de ports ouverts sur votre routeur, ou de configuration DNS compliquée.

Vous déployez un “site connector” sur votre réseau (un simple container Docker), il crée un tunnel sortant vers votre serveur Pangolin, et voilà — vos apps sont accessibles depuis n’importe où.

Pourquoi pas WireGuard / Cloudflare Tunnels ?

WireGuard pur : Rapide, mais complexe à maintenir. Règles de routage, DNS split, reconnexion manuelle quand ça déconne. Parfait pour les puristes, horrible pour les humains normaux.

Cloudflare Tunnels : Simple, mais propriétaire. Vous dépendez de leur infrastructure. Et leur modèle freemium devient restrictif quand vous scalez.

Pangolin : Le meilleur des deux mondes. Simplicité Cloudflare + contrôle WireGuard. Auto-hébergé, gratuit, open-source (AGPL-3).

Cas d’usage parfaits

  • Accès homelab : Dashboard, apps, fichiers depuis n’importe où
  • Multi-sites : Connecter plusieurs bureaux/branches simplement
  • Développement : Exposer localtunnel proprement pour démos
  • IoT/Edge : Accéder à des devices sur des réseaux restrictifs

J’utilise Pangolin pour accéder à mon homelab depuis mon téléphone, partout dans le monde. Sans VPN client à configurer sur chaque appareil. Juste un navigateur.

Installation Docker Compose

Pangolin se compose de deux parties : le serveur (hub) et les sites (agents). Pour un setup simple avec un seul site :

mkdir -p ~/pangolin
cd ~/pangolin

docker-compose.yml :

version: "3.8"

services:
  pangolin:
    image: fosrl/pangolin:latest
    container_name: pangolin
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
      - "51820:51820/udp"
    volumes:
      - ./data:/data
    environment:
      - TZ=Europe/Paris
    networks:
      - pangolin-network

  # Site connector (si sur la même machine)
  pangolin-agent:
    image: fosrl/pangolin-agent:latest
    container_name: pangolin-agent
    restart: unless-stopped
    environment:
      - PANGOLIN_SERVER=http://pangolin:80
      - SITE_ID=default
    networks:
      - pangolin-network
    depends_on:
      - pangolin

networks:
  pangolin-network:
    driver: bridge

Déployez :

docker-compose up -d

Accédez à l’interface d’administration : https://localhost

Configuration des sites

  1. Créez un site dans l’interface Pangolin
  2. Récupérez le token de connexion
  3. Déployez l’agent sur le réseau cible :
version: "3.8"

services:
  pangolin-agent:
    image: fosrl/pangolin-agent:latest
    restart: unless-stopped
    environment:
      - PANGOLIN_SERVER=https://votre-serveur-pangolin.com
      - SITE_TOKEN=votre-token-secret
      - SITE_NAME=homelab

L’agent se connecte automatiquement. Vos apps sur ce réseau sont maintenant exposables via Pangolin.

Exposition d’applications

Dans l’interface Pangolin :

  1. Créez une ressource (ex: vaultwarden)
  2. Assignez un hostname (ex: passwords.votredomaine.com)
  3. Sélectionnez le site où tourne l’app
  4. Définissez l’URL interne (ex: http://192.168.1.50:8080)

Pangolin gère automatiquement :

  • ✅ DNS et résolution
  • ✅ Certificats SSL (Let’s Encrypt)
  • ✅ Authentification (OIDC/SAML intégré)
  • ✅ Contrôle d’accès (par utilisateur/groupe)

Fonctionnalités avancées

Authentification identity-aware

Pangolin peut forcer l’authentification avant d’accéder à une ressource. Supporte :

  • Google OAuth
  • GitHub OAuth
  • SAML (Okta, Azure AD, etc.)
  • Authentik/Authelia

Contrôle d’accès granulaire

  • Par utilisateur
  • Par groupe
  • Par IP source
  • Par time-based access

Audit et logs

Toutes les connexions sont loguées. Qui a accédé à quoi, quand, depuis où.

Comparaison avec les alternatives

FeaturePangolinWireGuardCloudflare TunnelsTailscale
Auto-hébergé
Open source
Reverse proxy intégré
Auth intégrée
NAT traversal auto
PrixGratuitGratuitFreemiumFreemium

Dépannage courant

L’agent ne se connecte pas

  • Vérifiez le token
  • Assurez-vous que le port 51820/UDP est ouvert
  • Vérifiez les logs : docker logs pangolin-agent

Certificats SSL qui ne génèrent pas

  • Vérifiez que votre domaine pointe vers le serveur
  • Port 80 doit être accessible pour le challenge HTTP

Latence élevée

  • Choisissez un serveur proche géographiquement
  • WireGuard est rapide, mais la distance compte

Conclusion

Pangolin m’a fait gagner des heures de configuration réseau. Plus de tunnels qui tombent, plus de certificats à renouveler manuellement, plus de dépendance à des services tiers.

Un reverse proxy moderne, identity-aware, et complètement sous mon contrôle. C’est ce que l’auto-hébergement devrait toujours être.

Si vous en avez marre de jongler entre WireGuard, Nginx, et Certbot — essayez Pangolin. Votre futur vous remerciera.

Liens utiles


Vous utilisez déjà Pangolin ou un autre outil de tunneling ? Partagez votre expérience sur notre Discord !

Stay in the loop 📬

Get self-hosting tutorials, tool reviews, and infrastructure tips delivered to your inbox. No spam, unsubscribe anytime.

Join 0 self-hosters. Free forever.