• Estudié Ingeniería Informática en la Universidad de Sevilla y me dedico profesionalmente a ser Backend Developer desde el 2016. Me apasiona la tecnología y el Desarrollo Software, así como el baloncesto y la música.

¡Compártelo!
Share on facebook
Share on google
Share on twitter
Share on linkedin

Comparte tu local en Spring Boot

El pasado jueves, nuestro compañero Francisco Javier Delgado, impartió una pequeña pero interesante charla sobre cómo compartir tu localhost con el exterior, es decir, cómo hacer que alguien desde su equipo acceda al tuyo a través de una URL.
Entre las distintas alternativas que existen están ngrok, localhost.run o Teleconsole, que sirve para compartir consola de comandos.
Todos ellos tienen una forma similar de ser usados: a través de un comando por consola, indicas el puerto local que quieres compartir y en un momento tienes una URL para compartir de manera sencilla tu entorno local.
Sin embargo, para hacerlo aún más fácil, existen proyectos como ngrok-spring-boot-starter. Se trata de una librería que, con una sencilla configuración, hace el trabajo por ti. Es decir, cuando la aplicación Spring Boot se levanta, esta misma ya te ofrece una URL para compartir tu local mediante ngrok.
Spring Boot
Es una librería muy sencilla pero muy útil a su vez. Sin embargo, ngrok tiene un par de pequeños inconvenientes: tiene funciones de pago y requiere de instalación.
Por ello, se me ocurrió la idea de que se pudiera hacer algo similar, pero con otra herramienta más sencilla y que hiciera exactamente lo mismo: Serveo.
Esta herramienta no requiere de instalación y se utiliza con un simple comando:
ssh -R 80:localhost:3000 serveo.net
También te permite elegir tus propios subdominios para compartir.
Para ello desarrollé la librería spring-boot-starter-serveo, una utilidad similar a la anteriormente mencionada y que, con muy poquitas líneas de código y algo de configuración, nos ofrece el mismo resultado. Se puede añadir a cualquier proyecto Spring Boot usando Maven o Gradle.
El proceso que lleva a cabo la librería es muy sencillo e igual a la anteriormente mencionada de ngrok, solo con la diferencia de que ésta no necesita instalar nada para poder ser usada. Una vez añadimos la dependecia, cuando la aplicación está arrancada, se ejecuta un evento por el cual, si tenemos añadida una propiedad en nuestra configuación que indique que queremos compartir nuestro local, se lleva a cabo la ejecución del comando y, si todo va correctamente, nos mostrará en una línea de log la URL que se ha generado para poder compartirla.
com.github.migangqui.spring.serveo.ServeoExecutor – Remote access to application with url -> https://myapp.serveo.net/portemp/api
Ahora mismo está liberada la versión 1.1 y se trabaja en posibles mejoras. A su vez, estamos abiertos a nuevas ideas.

Artículos relacionados

Cómo ejecutar una aplicación Spring Boot como un servicio Linux

Cómo ejecutar una aplicación Spring Boot como un servicio Linux

En este post veremos cómo ejecutar una aplicación Spring Boot como un servicio Linux configurado desde un bash con configuración externa. Empaquetado, configuración y construcción del proyecto En primer lugar, explicaremos las opciones de empaquetado, la configuración del proyecto y la construcción de este. Empaquetado

Configurar Verdaccio para tener un registro privado de paquetes npm

Configurar Verdaccio: registro privado de paquetes npm

En este post veremos cómo configurar Verdaccio con una configuración básica de permisos para disponer de un registro privado de paquetes npm. ¿Que es Verdaccio? Verdaccio es una herramienta ligera y de código abierto para disponer de un registro privado de paquetes npm. Siendo compatible

Comparativa codigo de barras vs codigo qr

Código de barras vs. Código QR: diferencias para saber cuál elegir

Un código de barras y un código QR son dos opciones muy interesantes para codificar la información de tus productos o servicios. En este post, te explicamos qué son, para qué sirven y sus principales ventajas, desventajas y diferencias, para que sepas cuál utilizar según