ngrok

Típico problema. Estás desarrollando para un cliente o tu jefe pero él sólo ve el resultado cuando has subido a producción o cuando le subes una captura de pantalla o bien cuando te visita (obvio). A veces esto no basta. Si eres freelance es pésima idea pasar a producción cambios sólo para que un cliente los vea. ¿Entonces qué hacer? Lo lógico es que tu ambiente de desarrollo sea visible de alguna manera, darle alguna ip, etc. Y si estás trabajando en tu PC? Le das la IP de tu PC? Mmm…

Ngrok es un servicio basado en un pequeño script apoyado en infraestructura que te permite fácilmente sacar puertos que tienes en tu PC hacia internet. Está disponible para todas las plataformas y es un archivo que se ejecuta en la consola o símbolo de sistema en el caso de Windows. Puedes crear túneles http específicamente o también túneles TCP o TLS (para tráfico encriptado) para todo tipo de contenido.

Por ejemplo, en Laravel el servidor de desarrollo utiliza el puerto 8000. Para mostrar ese puerto fácilmente, una vez que hayas iniciado el servidor de desarrollo te vas a la ubicación de ngrok y escribes:

./ngrok http 8000 

o

ngrok.exe http 8000 

Y eso se va a convertir en una url pública (p. ej. https://84dfjdf2.ngrok.io). Si pagas una membresía hasta puedes tener una url de ngrok con tu usuario, fija para que otros no tengan que pedírtela a cada rato. En cuanto hayas terminado puedes cerrar el proceso.

Lo bueno es que si creas un túnel http te crea tanto el acceso http como el https y eso te puede servir también en caso de que tu servidor de desarrollo no tenga SSL y necesites habilitarlo para alguna cosa (por ejemplo, para probar alguna api como la de Google Maps necesitas SSL habilitado), aunque lo recomendable es que tengas algún servidor instalado (un XAMPP) con SSL funcionando.

Así que con ngrok he solucionado los dos tipos de problemas.