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
- Créez un site dans l’interface Pangolin
- Récupérez le token de connexion
- 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 :
- Créez une ressource (ex:
vaultwarden) - Assignez un hostname (ex:
passwords.votredomaine.com) - Sélectionnez le site où tourne l’app
- 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
| Feature | Pangolin | WireGuard | Cloudflare Tunnels | Tailscale |
|---|---|---|---|---|
| Auto-hébergé | ✅ | ✅ | ❌ | ❌ |
| Open source | ✅ | ✅ | ❌ | ❌ |
| Reverse proxy intégré | ✅ | ❌ | ✅ | ❌ |
| Auth intégrée | ✅ | ❌ | ✅ | ❌ |
| NAT traversal auto | ✅ | ❌ | ✅ | ✅ |
| Prix | Gratuit | Gratuit | Freemium | Freemium |
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
- GitHub Pangolin
- Documentation officielle
- DigitalOcean Marketplace (one-click install)
- Discord communautaire
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.