Hoy, muchos de nosotros nos encontramos trabajando desde nuestros hogares, debido a nuestro nuevo gran enemigo: el coronavirus. Las medidas tomadas por la administración pública han provocado un hecho excepcional en los entornos laborales: las empresas se enfrentan a un teletrabajo masivo de sus empleados que nunca antes se había producido. Probablemente, durante varias semanas cambien nuestros hábitos y comiencen a existir ciertos miedos por parte de los empresarios. Nos enfrentamos a un desafío que nos abre nuevas oportunidades, por eso debemos adaptarnos a esta nueva situación.
¿Qué es ngrok?
Por ello, hoy quiero hablar de una herramienta que puede ayudarnos en estos días: Ngrok. Ngrok nos permite exponer nuestro servidor web local a una URL pública. Ngrok abre un túnel en nuestro equipo, el cual genera una URL aleatoria que apunta al puerto que le indiquemos. Dicha URL será accesible públicamente desde cualquier otro dispositivo de una manera muy sencilla.
¿Cómo se usa Ngrok?
Exponer nuestro servidor web es muy sencillo. Simplemente con esta línea, expondríamos nuestro puerto 80:
ngrok http 80
Este comando nos establecerá una url al cual podremos acceder de manera pública.
ngrok by @inconshreveable Tunnel Status online Version 2.0/2.0 Web Interface http://127.0.0.1:4040 Forwarding http://92832de0.ngrok.io -> localhost:80 Forwarding https://92832de0.ngrok.io -> localhost:80 Connnections ttl opn rt1 rt5 p50 p90 0 0 0.00 0.00 0.00 0.00
¿En qué puede ayudarnos Ngrok?
Esta herramienta puede ser muy útil en estos días tan extraños, por ello quiero plantear algunos escenarios interesantes:
- Quiero compartir el desarrollo frontend en el que estoy trabajando con otro compañero que está trabajando en remoto. Exponiendo el puerto en el que estamos desarrollando podemos mostrar en tiempo real la aplicación con los cambios realizados en nuestro desarrollo permitiéndonos depurar, hacer pair programming.
- Estamos desarrollando una aplicación móvil, pero el backend solo es accesible por VPN. En vez de instalarte un cliente VPN en el dispositivo, podemos exponer el backend con un puerto a través de Ngrok y conectar nuestra aplicación a este. Esto nos ha venido bien para que nuestra compañera de QA pudiera probar la aplicación sin instalarse ninguna dependencia y desde cualquier lugar.
- Quiero probar un webhook o llamada remota de una pasarela de pago. Comúnmente hay servicios que pueden configurarse webhooks que nos llamaran notificando de cambios. Si queremos probarlos en nuestra etapa de desarrollo, podemos exponer nuestro endpoint de manera pública para poder depurar las llamadas reales del servicio de terceros.
- Tengo linux o macos y quiero probar mi último cambio frontend en Edge o Internet Explorer para validar que la maquetación no se rompe.
Conclusión
Además de estas ventajas, Ngrok ofrece una multitud de utilidades que puedes leer en su documentación (https://ngrok.com/docs). Entre ellas, pueden estar inspeccionar el tráfico entrante, exponer conexiones por websockets, proteger el túnel con autenticación o exponer dominios propios.
Como has podido comprobar, esta herramienta nos puede ayudar bastante en estos días en los que la mayoría de nuestros compañeros trabaja en remoto. Si no conocías esta herramienta, espero que te resulte útil.
Y a ti, ¿qué otras herramientas te ayudan en estos días?