¿Como funciona Ngrok?
Ngrok es una herramienta con la que hacer público tu localhost de forma fácil y rápida. ngrok nos permite exponer a internet una URL generada dinámicamente, la cual apunta a un servicio web que se está ejecutando en nuestra máquina local. Por ejemplo: si tenemos un servicio web arrancado en http://localhost:8080, ngrok genera dinámicamente una URL del tipo http://xxxxxx.ngrok.io visible en internet, y que apunta directamente a nuestro localhost.
Además, lo mejor de todo es que solo hay que ejecutar un comando desde el terminal. ngrok también nos puede ayudar en otras situaciones, como, por ejemplo:- Testing en dispositivos móviles: podremos probar nuestro sitio web en desarrollo desde cualquier dispositivo móvil o tablet de forma rápida y sencilla.
- Acceso ssh: podremos tener una forma pública de acceder a un dispositivo dentro de nuestra red privada de forma segura.
- Demos con cliente: poder mostrar al cliente el estado en el que se encuentra el desarrollo de una aplicación.
Está disponible para Linux, Mac y Windows, y tiene una documentación oficial bastante clara y completa: https://ngrok.com/docs
¿Como usar ngrok?
Lo primero que debemos hacer es crear una cuenta en ngrok.com, para lo cual solo necesitamos un email y una contraseña. El hecho de registrarnos nos proporciona un token que es el que nos permitirá generar de manera segura nuestros servicios y que no los pueda "secuestrar" otro usuario, además de darnos acceso a información de estado de los "túneles" que creemos entre nuestro equipo e Internet.
Una vez que terminamos de hacer nuestra cuenta procedemos a bajar el softwares.
Cuando bajamos el programa nos baja comprimido lo único que tenemos que hacer es descomprimirlo en la carpeta en donde lo vamos a usar.
Luego ejecutamos el programa
ngrok.exe es un programa auto-contenido, es decir, no tiene otras dependencias y puede funcionar por si solo. De todos modos lo más recomendable es añadir el ejecutable a tu "path" del sistema, de modo que el comando ngrok lo tengas disponible desde cualquier ventana de línea de comandos. Para ello, dependerá de cada sistema operativo. En Windows la manera más sencilla es abrir una línea de comandos con permisos de administrador y escribir:
setx path "%path%;C:\ngrok\"
Una vez hecho esto podemos abrir una línea de comandos (buscando cmd) y podremos usar el comando ngrok en cualquier carpeta del sistema.
Lo único que tenemos que hacer para configurarlo y poder empezar a usarlo es asignarle nuestro token personalizado. Como comentaba antes, este token nos identifica ante la herramienta de modo que nuestros túneles a la Web sean exclusivamente nuestros. Este token lo obtenemos desde la propia portada de la web (ver figura anterior a la animación) o bien, mejor, yendo al apartado "Auth" en el lateral:
Se nos muestra el token (que es una cadena de caracteres muy larga) y podemos copiarlo al portapapeles directamente. También se nos muestra el comando que tenemos que utilizar para asignarlo a la herramienta en nuestra máquina y poder empezar a usarlo.(El token lo oculto por razones obvias).
Dicha orden generará el archivo de configuración por defecto “ngrok.yml” en tu carpeta de usuario dentro de la carpeta del usuario ver imagen abajo.
Podemos ver que ya tenemos dos URLs disponibles que realizan el redireccionamiento a nuestro localhost, una http y otra https. Cuando nos encontramos en esta situación, también podemos ver en nuestro panel de control web de ngrok cómo están nuestros redireccionamientos en alta y funcionamiento:
Para hacer un nuevo proyecto de desarrollo en el que necesitábamos integrarnos con SmartSheet, una plataforma donde los usuarios comparten y modifican en la nube información. Requeríamos que, ante determinados cambios de los usuarios, se ejecutasen ciertos procesos que trataran y modificaran la información en la propia plataforma de SmartSheet. Plataforma que ofrece una API y un sistema de webhooks que nos permiten ejecutar servicios externos ante determinados eventos. Además, proporcionan SDKs para diferentes lenguajes como C#, Java o Node.js, entre otros.
Durante el desarrollo, para poder probar los servicios que eran llamados por estos webhooks, hicimos uso de ngrok. De esta forma, cuando se producía un evento en SmartSheet, se notificaba vía webhook a una URL generada por ngrok, que apuntaba a un servicio arrancado en el localhost de nuestra máquina. Finalmente, este ofrecía la posibilidad de depurar y probar lo que estábamos desarrollando.
Referencias
Comentarios