El despligue de aplicaciones Web es uno de los temas que suscitan más preguntas por parte de quienes han de realizar el proceso por primera vez; y si bien en una entrada anterior ya se indicaba como desplegar las aplicaciones web bajo servidor Linux (algo en lo que ahondaremos en próximas entradas), en esta veremos como podemos hacerlo en los servidores NAS Synology.
Los servidores NAS Synology son tremendamente versátiles, al proporcionar en un único conjunto no sólo las capacidades de almacenamiento en red sino también una serie de servicios realmente interesantes para nosotros como desarrolladores, desde el servidor Git hasta la capacidad de servir bases de datos MariaDB/MySQL, e incluso nuestros propios sitios web.
Además, también es posible utilizarlos para servir nuestras aplicaciones Web creadas con Xojo… siempre y cuando no utilicemos una release posterior a Xojo 2014r3.2.
Preparar el producto Web
Para desplegar las aplicaciones web creadas con Xojo en servidores Synology has de tener en cuenta que sólo es posible en aquellos modelos del NAS que utilicen procesadores Intel, algo que puedes comprobar fácilmente consultando las características técnicas de los diferentes modelos. Por ejemplo, el Synology DS415 utiliza procesador Intel. Adicionalmente, todos los servidores Synology que utilicen sistema operativo Linux también son compatibles con el despliegue de aplicaciones web Xojo.
Lo anterior ya nos da dos pistas fundamentales sobre las opciones de compilación que hemos de elegir para realizar el despliegue sobre estos dispositivos: Linux e Intel de 32 bits. Sin embargo existe una limitación fundamental sobre la versión de Xojo que podrás utilizar a la hora de crear y preparar el desplegable, y por tanto sobre las capacidades y características que puedes emplear en el desarrollo de tu aplicación Web.
No podrás utilizar Xojo 2015 y posteriores, dado que con la primera Release de Xojo 2015 las aplicaciones web precisan que la librería LibICU esté presente en el sistema operativo Linux de destino; y no es el caso en los servidores Synology. Esto también es lo que limita los despliegues a la arquitectura de 32 bits de Intel, puesto que las releases de 2014 y anteriores no pueden compilar para 64 bits.
Teniendo lo anterior en cuenta, la creación del producto en Xojo y el despliegue son realmente sencillos. Del lado del IDE sólo has de asegurarte de marcar Linux como plataforma de destino en el apartado Build Settings del Navegador de Proyecto. Posteriormente selecciona el elemento Shared bajo el mismo apartado y, en el Panel Inspector, asegúrate de elegir “Stand Alone” en el apartado “Deployment Type”, así como el puerto en el que nuestra aplicación web debe de escuchar las peticiones del usuario.
Hay que tener en cuenta que si se elige el puerto 80 indicado por omisión, entonces entrará en conflicto con cualquier otra opción de servidor (Apache) que pueda estar activada en el Synology. Si no es el caso, entonces todas las peticiones HTTP aceptadas por el servidor Synology se tramitarán a través del puerto 80 estándar y, por tanto, serán recibidas por la aplicación Web.
Adicionalmente, asegúrate de que el evento Open del objeto App incluya la siguiente línea:
Call Daemonize
De este modo, una vez que ejecutes la aplicación web desde el servidor Synology no será preciso que mantengas abierta la sesión de terminal (Shell) o la sesión SSH, en función de cuál de las dos vías hayas utilizado para acceder al servidor.
Copiar los archivos al servidor Synology
Si se tienen activados los servicios de archivos compartidos para OS X y/o Windows en el NAS Synology, entonces la copia de los archivos es algo tan sencillo como arrastrar la carpeta que contiene el ejecutable, las librerías y recursos desde su ubicación original hacia la carpeta de destino en el Synology.
Este proceso de copia debería de respetar los privilegios de los archivos esenciales; es decir, tanto el ejecutable propiamente dicho como las librerías guardadas en la carpeta “nombre-aplicacion Libs”, Esto mismo también es válido en el caso de utilizar un cliente FTP moderno, capaz de conmutar entre los modos de transferencia Binario y ASCII en función de cual sea el tipo de archivo a transferir.
Ejecutar y acceder a la app en Synology
Una vez copiados los archivos, es preciso habilitar el acceso por SSH en el NAS Synology, de modo que se pueda poner en funcionamiento la aplicación propiamente dicha. Esto es algo que s epuede hacer en
Por último, sólo restará abrir una ventana de terminal para establecer una sesión SSH con el NAS Synology, navegar hasta el directorio que contiene la aplicación en cuestión y ejecutarla; utilizando generalmente la sintaxis:
> ./miAplicacion
Si se ha utilizado “Call Daemonize” en el evento Open de la aplicación Web Xojo, entonces se ejecutará en segundo plano devolviendo el símbolo del cursor. Esto nos permitirá finalizar la sesión SSH y salir del terminal al tiempo que se mantiene la ejecución de la aplicación.
Ahora, al abrir una ventana del navegador sólo tendremos que introducir la dirección IP del NAS Synology en combinación con el puerto que hayamos indicado para nuestra aplicación y esta responderá a las peticiones.
[…] una entrada anterior ya vimos de qué forma tan sencilla se pueden desplegar las aplicaciones web Standalone creadas con […]
[…] ganar la capacidad de crear y desplegar nuestras aplicaciones Web autónomas (Standalone) sobre los servidores Synology compatibles (basados en Linux y procesadores Intel, por […]
Hola Javier, sé que llego un poco tarde respecto a la fecha de publicación de este artículo, pero a día de hoy me gustaría preguntarte si sabes si existe compatibilidad con los nuevos NAS de Synology para instalar aplicaciones web de Xojo.
He estado investigando y no he encontrado casi nada de información al respecto en la web, hay poca cosa tanto en español como en inglés.
Quiero comprar la licencia para desarrollo web de Xojo, pero no me atrevo sin confirmar que me van a funcionar en un NAS, ya que es para desarrollo personal.
Muchas gracias por todo, un saludote 😉
En principio debería, siempre y cuando el procesador sea Intel y el sistema operativo subyacente sea Linux (que la mayoría lo son). Además, y creo que desde 2016, los Synology tienen la capacidad de crear máquinas virtuales con Linux, macOS y Windows… de modo que podría ser otra opción: crear una máquina virtual Linux sobre el Syno y desplegar las apps web sobre ella.
¿En qué modelo Syno estás pensando?
Por otro lado, recuerda que siempre cuentas con un periodo de devolución de la licencia de 60 días; de modo que si no funcionase de ninguna de las maneras estarías cubierto. Pero vamos, que si me funciona en mi caso con un Syno bastante más antiguo… 🙂
Por otra parte, ¿tiene que ser un Syno? Si vas a comprar el hw sólo para ejecutar las apps web, creo que te saldría más barato y tendrías probablemente más control comprando un equipo torre y montando cualquiera de las distros Linux compatibles en él.
Puedes consultar los requerimientos mínimos para ejecutar el IDE de Xojo, y también los de despliegue de las aplicaciones (Desktop, Web, Consola e iOS) en este enlace: http://docs.xojo.com/Resources:System_Requirements