Pangolin: Plataforma SASE de código abierto para acceso seguro y conectividad
Construida sobre WireGuard, unifica redes y seguridad en una sola plataforma autoalojable con VPN zero-trust, proxy inverso, PAM y gateway IA
Vídeo tutorial en YouTube
Mira el vídeo completo sobre cómo instalar y usar Pangolin: Plataforma SASE de código abierto para acceso seguro y conectividad en el canal GENBYTE:
¿Qué es Pangolin: Plataforma SASE de código abierto para acceso seguro y conectividad?
Pangolin es una plataforma SASE (Secure Access Service Edge) de código abierto, construida sobre WireGuard, con una misión simple: conectar y proteger a los usuarios, dondequiera que estén. Reúne redes y seguridad en un solo sistema que incluye una VPN zero-trust, un proxy inverso zero-trust, gestión de acceso privilegiado (PAM) y un gateway IA consciente de la identidad, todos compartiendo un mismo modelo de identidad y políticas. Es la misma idea detrás de plataformas como Cloudflare One, Zscaler y Prisma, pero abierta, autoalojable y diseñada para mantenerse ligera y fácil de desplegar.
Características principales
Conectar redes remotas con sitios y traversia NAT
Los conectores de sitio de Pangolin proporcionan puertas de enlace a redes para acceder a cualquier recurso en red. Los sitios usan túneles salientes y traversia NAT inteligente para hacer disponibles redes detrás de firewalls restrictivos sin IPs públicas ni puertos abiertos. Despliegue fácil como binario o contenedor en cualquier plataforma. Conector ligero en espacio de usuario, atraviesa cualquier firewall, no requiere puertos abiertos ni IP pública, segmentación estricta de red, basado en WireGuard, alertas cuando un dispositivo o recurso de red cae.
Acceso por proxy inverso basado en navegador
Expone aplicaciones web HTTPS y conecta a VNC, RDP y SSH completamente en el navegador a través de proxies inversos tunelizados conscientes de identidad y contexto. Los usuarios acceden a recursos con autenticación y control de acceso granular sin instalar cliente. Pangolin maneja enrutamiento, balanceo de carga, health checks y certificados SSL automáticos sin exponer la red directamente a internet. Acceso a paneles web en cualquier lugar, SSO único en todos los recursos, recursos HTTPS, escritorio remoto en navegador con VNC y RDP, terminal SSH en navegador con PAM, códigos PIN, passcodes, email OTP, geobloqueo, allow-lists.
Acceso a recursos privados basado en cliente
Accede a recursos privados como servidores SSH, bases de datos, RDP y rangos de red completos a través de clientes Pangolin. La traversia NAT inteligente permite conexiones incluso a través de firewalls restrictivos, mientras que los alias DNS proporcionan nombres amigables y conexiones rápidas a recursos en todos los sitios. Redundancia enrutando tráfico a través de múltiples conectores. Peer-to-peer con traversia NAT inteligente, hosts/IPs y rangos de puertos, rangos de red/CIDR, alias DNS amigables, PAM con recursos SSH, recursos HTTPS privados solo accesibles en red privada.
Gateway IA consciente de identidad
Pon un proxy consciente de identidad frente a modelos en la nube pública (OpenAI, Anthropic, Gemini, etc.) y servidores de modelos autoalojados (Ollama, vLLM, Mistral, etc.) para que agentes de código y clientes IA llamen a una sola URL de Pangolin. Publícalo como recurso público con claves API personales, o mantenlo privado en un túnel de cliente donde el cliente conectado es la credencial para acceso sin claves. Presupuestos, historial de sesiones y analíticas de uso frente a cada llamada. Acceso a modelos autoalojados y en la nube en un solo lugar, acceso sin claves autenticando usuarios con el cliente de escritorio Pangolin, claves API personales, control de costos y uso de tokens con presupuestos, auditoría con historial de sesiones detallado y analíticas, integración con clientes IA y agentes de código (Claude Code, Codex, OpenCode, etc.).
Dar acceso a usuarios y roles a recursos
Usa los usuarios integrados de Pangolin o trae tu propio proveedor de identidad y configura control de acceso basado en roles (RBAC). Otorga a usuarios acceso a recursos específicos, no a redes enteras. A diferencia de VPNs tradicionales que exponen acceso completo a la red, el modelo zero-trust de Pangolin asegura que los usuarios solo puedan alcanzar las aplicaciones, servicios y rutas que definas explícitamente. Trae tu IdP existente o usa identidades Pangolin, sincroniza usuarios y roles desde tu IdP, control de acceso basado en usuario y rol, auditoría completa de red y logs de acceso.
Encontrar y lanzar recursos desde una página de inicio personalizada
Da a los usuarios una página de aterrizaje para encontrar y abrir rápidamente los recursos a los que pueden acceder. Los recursos se agrupan por sitio o etiqueta, son buscables y filtrables, con vistas de cuadrícula o lista. Las vistas guardadas capturan filtros, agrupación y diseño como valores predeterminados personales o de toda la organización. Un solo lugar para admins y no-admins para ver recursos accesibles, crea vistas reutilizables para patrones de acceso comunes.
Requisitos del sistema
- Docker y Docker Compose
- Node.js 24.18.1 (para builds desde fuente)
- Python 3, make, g++ (dependencias de build)
- curl, tzdata (runtime)
- Base de datos: SQLite (por defecto) o PostgreSQL
- Arquitectura: linux/amd64, linux/arm64 (imagen multiarch)
Instalación con Docker Compose
Despliegue rápido con Docker Compose (producción)
La imagen oficial se publica en Docker Hub como fosrl/pangolin. Para producción se recomienda usar la imagen preconstruida con base de datos PostgreSQL y volúmenes persistentes. El siguiente compose.yaml de ejemplo está adaptado de la documentación oficial para autoalojamiento.
pangolin:
image: fosrl/pangolin:latest
container_name: pangolin
ports:
– "443:443"
– "80:80"
– "51820:51820/udp"
environment:
– ENVIRONMENT=prod
– DATABASE_URL=postgresql://pangolin:password@db:5432/pangolin
volumes:
– pangolin_data:/app/data
– ./config:/app/config
depends_on:
– db
restart: unless-stopped
db:
image: postgres:16-alpine
container_name: pangolin_db
environment:
– POSTGRES_USER=pangolin
– POSTGRES_PASSWORD=password
– POSTGRES_DB=pangolin
volumes:
– postgres_data:/var/lib/postgresql/data
restart: unless-stopped
volumes:
pangolin_data:
postgres_data:
Despliegue de desarrollo con Docker Compose
El repositorio incluye un compose.yaml para desarrollo con hot reload montando el código fuente. Útil para contribuir o probar cambios locales.
app:
build:
context: .
dockerfile: Dockerfile.dev
container_name: dev_pangolin
ports:
– "3000:3000"
– "3001:3001"
– "3002:3002"
– "3003:3003"
environment:
– NODE_ENV=development
– ENVIRONMENT=dev
volumes:
– ./src:/app/src
– ./server:/app/server
– ./public:/app/public
– ./messages:/app/messages
– ./components.json:/app/components.json
– ./next.config.mjs:/app/next.config.mjs
– ./tsconfig.json:/app/tsconfig.json
– ./tailwind.config.js:/app/tailwind.config.js
– ./postcss.config.mjs:/app/postcss.config.mjs
– ./eslint.config.js:/app/eslint.config.js
– ./config:/app/config
restart: no
Instalación en DigitalOcean Marketplace
Instalación con un clic preconfigurada disponible en DigitalOcean Marketplace para Pangolin Community Edition.
Pangolin Cloud (gestionado)
Servicio totalmente gestionado sin infraestructura requerida. Regístrate en app.pangolin.net para empezar gratis.
Acceder al proyecto
Interfaz web (producción)
Por defecto en puertos 80 (HTTP) y 443 (HTTPS) del host. La UI del dashboard y el portal de recursos están disponibles en https://<tu-dominio-o-ip>.
Puerto WireGuard
Puerto UDP 51820 expuesto para tráfico de túnel WireGuard entre clientes y conectores de sitio.
Interfaz de desarrollo
En modo desarrollo (compose.yaml del repo) la UI está en http://localhost:3000, con puertos adicionales 3001-3003 para servicios auxiliares.
Casos de uso
- Acceso remoto zero-trust a infraestructura y aplicaciones internas sin VPN tradicional
- Exposición segura de paneles de administración, bases de datos y servicios internos via proxy inverso con autenticación y SSO
- Escritorio remoto en navegador (VNC/RDP) y terminal SSH con gestión de acceso privilegiado (PAM)
- Conexión de redes completas detrás de CGNAT o firewalls restrictivos sin IPs públicas ni puertos abiertos
- Gateway unificado para modelos IA (OpenAI, Anthropic, Ollama, vLLM, Mistral) con control de costos, auditoría y acceso sin claves
- Sustitución de VPNs legacy por modelo zero-trust con RBAC y auditoría completa de acceso
- Portal de recursos personalizado para usuarios finales con vistas guardadas y agrupación por sitio/etiqueta
Configuración avanzada
Tipos de build (OSS, Enterprise, SaaS)
El Dockerfile soporta tres variantes de build controladas por ARG BUILD: oss (Community Edition, AGPL-3), enterprise (open-core, Fossorial Commercial License) y saas (Pangolin Cloud). Cada variante usa tsconfig distinto y puede incluir/excluir código privado (server/private).
# Opciones: BUILD=oss|enterprise|saas, DATABASE=sqlite|pg
Base de datos: SQLite vs PostgreSQL
Por defecto usa SQLite (archivo local). Para producción multi-instancia o alta concurrencia se recomienda PostgreSQL. Controlado por ARG DATABASE en build y variable DATABASE_URL en runtime.
docker build –build-arg BUILD=oss –build-arg DATABASE=pg -t pangolin:oss-pg .
# Runtime con PostgreSQL
environment:
– DATABASE_URL=postgresql://user:pass@host:5432/dbname
Configuración mediante archivo YAML
La configuración principal reside en config/config.yml (copia de config/config.example.yml). Incluye ajustes de servidor, base de datos, autenticación, certificados, sitios, recursos, IA gateway, etc. Montar como volumen en /app/config.
– ./config:/app/config
# config/config.example.yml existe en el repo como plantilla
Bases de datos MaxMind GeoIP (solo builds SaaS)
Los builds saas incluyen bases de datos MaxMind (GeoLite2-Country.mmdb, GeoLite2-ASN.mmdb) para geolocalización. En builds oss/enterprise se eliminan al final del build para reducir tamaño.
ARG BUILD=oss
RUN if [ "$BUILD" != "saas" ]; then rm -rf ./maxmind; fi
CLI pangctl incluida en la imagen
El wrapper cli/wrapper.sh se instala en /usr/local/bin/pangctl dentro del contenedor para administración vía línea de comandos.
Gestión y mantenimiento
Actualizar imagen
Descargar la última imagen y recrear contenedores preservando volúmenes de datos.
docker compose up -d
Migraciones de base de datos
Las migraciones se ejecutan automáticamente al iniciar el contenedor (dist/migrations.mjs). Para forzar o inspeccionar:
Logs de la aplicación
Usa winston con rotación diaria. Logs en stdout/stderr del contenedor y archivos en volumen de datos.
# Archivos en /app/data/logs dentro del contenedor
Backup de base de datos SQLite
Si usas SQLite, el archivo de base de datos está en el volumen pangolin_data (/app/data). Copia en frío o usa sqlite3 .backup.
Backup de PostgreSQL
Usa pg_dump desde el contenedor de base de datos.
Comandos de desarrollo (desde repo)
Scripts definidos en package.json para desarrollo local sin Docker.
npm run dev:setup
# Desarrollo con hot reload
npm run dev
# Build de producción
npm run build
# Lint y type-check
npm run dev:check
# Formateo
npm run format
Stack técnico
- TypeScript 7.0
- Next.js 16.4 (App Router, React 19)
- React 19.3 con Radix UI, Tailwind CSS 4.3
- Express 5.2 (API backend)
- Drizzle ORM 0.45 (SQLite / PostgreSQL)
- Better-sqlite3 11.9 / pg 8.23
- WireGuard (userspace via wgctrl/go)
- Node.js 24.18 (runtime)
- Docker multi-stage build (node:24.18-slim)
- ESBuild para bundling CLI y server
- Zod 4.6 (validación)
- Winston 3.19 (logging)
- Arctic 3.7 (OAuth/OIDC)
- Acme-client 5.4 (certificados SSL automáticos)
- PostHog (analytics opcional)
- Stripe (billing Enterprise/SaaS)
Referencias oficiales
- Repositorio oficial en GitHub: https://github.com/fosrl/pangolin
- Sitio web oficial: https://pangolin.net
- Documentación completa: https://docs.pangolin.net
- Guía de instalación rápida autoalojada: https://docs.pangolin.net/self-host/quick-install
- Pangolin Cloud (registro): https://app.pangolin.net/auth/signup
- DigitalOcean Marketplace: https://marketplace.digitalocean.com/apps/pangolin-ce-1?refcode=edf0480eeb81
- Docker Hub – fosrl/pangolin: https://hub.docker.com/r/fosrl/pangolin
- Comunidad Discord: https://discord.gg/HCJR8Xhme4
- Comunidad Slack: https://pangolin.net/slack
- Canal YouTube: https://www.youtube.com/@pangolin-net
- Licencia Fossorial Commercial License: https://pangolin.net/fcl
- Descargas de clientes (Mac, Windows, Linux, iOS, Android): https://pangolin.net/downloads
Apoya el canal GENBYTE
¿Te ha sido útil este contenido?
Suscríbete a YouTube
Newsletter GENBYTE
Ko-fi
Contacto: [email protected]
