¿Cómo exponer un servicio web local desde un RPi?

¿Cómo exponer un servicio web local desde un RPi?
Louis Reed on Unsplash

Para variar, hace muuucho tiempo que no escribía por acá ????

Hoy vengo a hablar de un par de servicios que permiten disponibilizar un servicio web alojado en tu localhost (en mi caso RaspberryPi), a internet :D.

Primero que todo, ¿Cuál era mi necesidad?

Simple, tenía un servicio alojado en mi RaspberryPi y quería disponibilizarlo para poder acceder desde mi celular. Normalmente esto sería posible abriendo puertos en mi red, el inconveniente es que mi proveedor de internet no permite hacer esto de manera fácil. Entonces, decidí buscar una alternativa que me permitiera exponer mi servicio a internet sin necesidad de pagar.

Ngrok

Inicialmente me encontré con uno de los servicios más conocidos para esto, ngrok, el inconveniente era que siempre que se levantaba el servicio, cambiaba de dirección :/, esto no me servía mucho porque si por alguna razón se iba la luz o se cortaba el internet, ya no iba a poder acceder al servicio, entiendo que la alternativa paga me hubiera permitido definir un dominio estático pero no quería pagar una mensualidad.

Loophole

Buscando y buscando me encontré con Loophole, una alternativa gratuita que hacía justo lo que necesitaba. Usarlo fue sencillo, sólo necesité descargar el cliente y luego iniciarlo con

loophole http 8000 --hostname manre-hostname

Ventajas:

  • Permite exponer un servicio en un dominio de tipo https://dominio-custom.loophole.site/.
  • Facil de usar
  • Cliente en diferentes SO (funciona en RPi)

Desventajas:

  • Soporte. He tenido inconvenientes con disponibilidad ya que en ocasiones no levanta el tunnel
  • Ping. Por alguna razón, el ping al servicio es alto, aproximadamente 1000ms

Pagekite

Debido a los inconvenientes de disponibilidad con Loophole, seguí buscando más formas para disponibilizar un servicio web y encontré Pagekite. Similar a Loophole, levantar el servicio es supremamente sencillo, luego de tener el cliente, el servicio se puede levantar con

python3 pagekite.py 8000 mi-dominio.pagekite.me

Ventajas

  • Permite exponer dominio personalizado
  • Exponer subdominios de tu dominio inicial
  • Soporte. Como tiene una alternativa paga, alguien esta pendiente en caso que existan inconvenientes para usuarios de pago pero también para los gratuitos.
  • Ping. Tiene una mejora significativa, el ping aproximado es de 300ms
  • Facil de usar
  • Cliente en diferentes SO (funciona en RPi)
  • Esta hecho en python!

Desventajas

  • En cuentas gratuitas no se permite cambiar el dominio que inicialmente se asignó. Si creaste la cuenta con manre.pagekite.me, ya no podrás actualizarlo.

Conclusiones

Y bueno, quería escribir un poco de estos servicios para darlos a conocer ya que siento que son poco conocidos y deberían ser más populares.

Eso sería todo, hasta el momento tengo mi servicio web disponible en internet y este se puede acceder desde dos dominios (pagekite y loophole) :D.

¡Hasta la próxima!