Chiunque abbia provato a esporre un servizio self-hosted dietro una connessione domestica conosce la solita sequenza di ostacoli: porte da aprire sul router, DNS dinamico da configurare, un reverse proxy come Nginx o Caddy da mantenere. La risposta più comune degli ultimi anni è stata Cloudflare Tunnel: gratuita, comoda, ma totalmente dipendente da un’infrastruttura terza che vede transitare ogni byte del traffico. Pangolin nasce per coprire la stessa funzione, restituendo il pieno controllo a chi gestisce la propria infrastruttura.
È un reverse proxy tunneled identity-aware costruito su WireGuard e Traefik, sviluppato da Fossorial, una società Y Combinator del 2025 finanziata con un seed da 4,7 milioni di dollari. In pochi mesi ha superato i 20.000 stelle su GitHub, segnale che il problema da risolvere era piuttosto sentito.
La procedura è semplice: installi Pangolin su un VPS economico con IP pubblico, esegui un client leggero chiamato Newt sulla macchina di casa o nel container, e ottieni un reverse proxy completo con certificati Let’s Encrypt automatici, autenticazione integrata e zero porte aperte sul router.
Per chi gestisce un homelab serio, una piccola rete distribuita o semplicemente non vuole esporre il proprio IP nei record DNS, la versione 1.18 rilasciata in questi giorni rende Pangolin uno dei progetti più maturi della categoria.
Quattro animali e un docker-compose
Pangolin non è un singolo binario ma una piccola flotta di servizi orchestrati via Docker Compose, ciascuno con un nome che richiama un animale fossore, coerente con l’idea di scavare tunnel attraverso le reti.
Sul VPS pubblico vivono tre componenti. Pangolin (il pangolino è un mammifero squamoso che scava gallerie nel terreno) stesso gestisce il pannello di amministrazione, le API e la logica di autenticazione. Gerbil (il gerbillo è un piccolo roditore fossore del deserto) si occupa delle interfacce WireGuard ed è scritto in Go. Traefik agisce come reverse proxy, terminando TLS e gestendo i certificati Let’s Encrypt.
Sulla macchina remota, che sia il server di casa, una VM, un container o un Raspberry Pi lontano da casa, gira Newt (un tritone anfibio che vive tra terra e acqua) : un client WireGuard userspace che non richiede privilegi di root e stabilisce un tunnel cifrato in uscita verso Gerbil.
Esiste poi Olm (l’olm è un anfibio cavernicolo cieco che vive nelle grotte sotterranee dell’Europa centrale), il client desktop e mobile per accedere a risorse private come SSH, RDP, database e share di rete, con un tunnel WireGuard autenticato dallo stesso provider d’identità.
Il fatto che la connessione parta sempre dall’interno è ciò che permette al sistema di funzionare anche dietro NAT restrittivi, CGNAT o DS-Lite. Se la rete di casa può raggiungere internet, può raggiungere Pangolin.
Il flusso di una richiesta è lineare: il browser raggiunge il VPS in HTTPS, Traefik termina la cifratura e instrada nel tunnel WireGuard gestito da Gerbil. Dall’altro capo Newt riceve i pacchetti e li inoltra al servizio locale tramite proxy TCP/UDP virtuali. L’IP di casa non viene mai esposto e nessuna regola di port forwarding tocca il router.
Setup minimo: un VPS economico e un client che scava
Per portare Pangolin online basta un VPS Linux con almeno 1 GB di RAM, un dominio sotto controllo e le porte 80, 443 e 51820/udp aperte. La distribuzione più collaudata è Ubuntu 22.04 o successive, e il sistema gira senza problemi anche su provider economici come Hetzner, RamNode o Hosthatch, a partire da pochi euro al mese.
Una volta puntato un record A wildcard (per esempio *.lab.tuo-dominio.it) all’IP del VPS, l’installazione si riduce a un comando e a qualche risposta interattiva nel wizard. Il tool genera autonomamente la configurazione di Traefik, le credenziali admin e il file docker-compose.yml. Lo scheletro che ne risulta è simile al seguente:
services:
pangolin:
image: fosrl/pangolin:1.18.2
volumes:
- ./pangolin/config:/app/config
gerbil:
image: fosrl/gerbil:latest
cap_add: [NET_ADMIN]
ports:
- 51820:51820/udp
- 80:80/tcp
- 443:443/tcp
traefik:
image: traefik:v3.5
network_mode: service:gerbilSul lato homelab installa il client Newt, disponibile come binario, container o pacchetto, usando l’ID e il secret generati dalla dashboard quando crei il primo Site. Da quel momento ogni risorsa interna, che sia Home Assistant sulla porta 8123, Nextcloud o una share Samba, diventa esponibile in pochi click.
Puoi scegliere se renderla pubblica, protetta da PIN, da password condivisa o da SSO. Il VPS può convivere senza attriti con altri servizi già gestiti da Traefik, riusando la rete Docker esistente.
Identity-aware: dove Pangolin si stacca dai rivali
Se Pangolin si limitasse a fare da Cloudflare Tunnel self-hosted, sarebbe già un progetto valido. Ma la differenza la fa il modello di accesso. Ogni risorsa pubblicata può essere protetta da un livello di autenticazione granulare, tra cui account locali con MFA, password condivise, PIN temporanei o un Identity Provider esterno via OIDC.
Authentik, Keycloak, Pocket ID, Google Workspace o Azure AD si integrano in pochi minuti. Dopodiché ogni richiesta verso una risorsa privata viene intercettata, il richiedente è redirezionato al provider, autenticato, e riceve un cookie firmato che Traefik valida prima di inoltrare il traffico al backend. È il modello che le aziende pagano a Cloudflare Access o Twingate, ricostruito dietro un Compose.

Per accedere a risorse non-web come SSH, RDP, share SMB o interi range di rete, entra in gioco Olm. Il client porta sul dispositivo un tunnel WireGuard puntuale verso le sole risorse autorizzate. Da qualche release Pangolin gestisce anche SSH con autenticazione a certificati e integrazione PAM, una funzione che pochi prodotti commerciali offrono nativamente.
Pangolin: da semplice progetto a infrastruttura di produzione
Mettere Pangolin online significa esporre un punto di ingresso unificato verso tutta l’infrastruttura, e questo richiede attenzione.
Il primo passo sensato è integrare CrowdSec sul VPS. Per un VPS homelab o un setup personale, CrowdSec si usa al 100% gratis: installi l’agent, aggiungi il bouncer per Traefik, e ottieni rilevamento comportamentale + la community blocklist senza spendere un centesimo.
L’agent legge i log di Traefik, identifica pattern abusivi (scansioni, brute-force sui login, scraper aggressivi) e popola una blocklist condivisa che blocca gli IP malevoli a monte del proxy. La configurazione richiede una decina di righe nel Compose.
Vale poi la pena esporre i metric endpoint di Traefik e CrowdSec verso un Prometheus locale e costruire una piccola dashboard Grafana con ban, codici di risposta e banda consumata per tunnel.
La versione 1.18 ha introdotto due funzionalità rilevanti. La prima è il routing multi-site con high availability: definisci più Newt sullo stesso resource e Pangolin sceglie il path con la minor latenza. La seconda è un sistema di alerting basato su email e webhook, con health check HTTP e TCP integrati.
Per backup e disaster recovery, conserva tre directory: la configurazione di Pangolin, quella di Traefik (incluso acme.json) e /var/lib/crowdsec/data/ per non perdere lo storico delle decisioni.
Una nota : il client Newt gira in user space, quindi le prestazioni del tunnel sono leggermente inferiori rispetto alla WireGuard kernel-mode. Su connessioni casalinghe la differenza è trascurabile, ma se devi spingere centinaia di Mbit/s sostenuti, attiva il flag che usa l’implementazione kernel.
Una soluzione per chi non vuole dipendenze esterne
Pangolin risolve un problema specifico, ovvero esporre servizi self-hosted senza dipendere da terze parti, senza aprire porte e con un controllo granulare degli accessi, facendolo con scelte tecniche conservative e ben note: WireGuard per i tunnel, Traefik per il reverse proxy, OIDC per l’autenticazione.
La dual-license AGPL-3 / Fossorial Commercial è gratuita per uso personale e per aziende sotto i 100.000 dollari di fatturato annuo, a pagamento solo quando la scala lo giustifica. Per chi gestisce un homelab, uno studio di sviluppo o un piccolo team non c’è alcun vincolo pratico, e la Community Edition include già praticamente tutto.
Se la tua alternativa attuale è Cloudflare Tunnel, con tutto ciò che implica in termini di terminazione TLS lato Cloudflare e visibilità sul tuo traffico, vale la pena dedicargli un po’ di tempo.













