Cómo instalar el Framework Sails.js en Ubuntu 22.04
Sails es un framework MVC en tiempo real para crear aplicaciones empresariales Node.js listas para producción. Es una herramienta excelente para ayudarte a crear rápidamente prototipos de sitios web. Está construido sobre Node JS y Express JS, por lo que todo lo aplicable en NodeJS y Express funcionará con Sails JS. Admite WebSockets escalables, arquitectura orientada a servicios y múltiples almacenes de datos en el mismo proyecto, y proporciona seguridad básica y control de acceso basado en roles.
Este post te mostrará cómo instalar Sails.js con Apache como proxy inverso en Ubuntu 22.04.
Requisitos previos
- Un servidor que ejecute Ubuntu 22.04.
- Una contraseña de root configurada en el servidor.
Cómo empezar
Antes de empezar, se recomienda actualizar tus paquetes a la última versión. Puedes actualizarlos todos ejecutando el siguiente comando:
apt update -y apt upgrade -y
Una vez actualizados todos los paquetes, instala otras dependencias necesarias mediante el siguiente comando:
apt-get install curl wget gnupg2 -y
Una vez que hayas terminado, puedes pasar al siguiente paso.
Instalar Node.js
A continuación, tendrás que instalar Node.js y NPM para crear una aplicación Sails.js. En primer lugar, añade el repositorio de Node.js utilizando el siguiente comando:
curl -sL https://deb.nodesource.com/setup_16.x | bash -
Una vez añadido el repositorio, instala el paquete Node.js con el siguiente comando:
apt-get install nodejs -y
Tras la instalación, puedes verificar la versión de Node.js utilizando el siguiente comando:
node --version
Obtendrás la versión de Node.js en la siguiente salida:
v16.17.1
Instalar Sails.js
A continuación, tendrás que instalar Sails.js en tu servidor. Puedes instalar Sails utilizando el Gestor de Paquetes de Node.
npm -g install sails
Una vez instalado Sails, puedes verificarlo con el siguiente comando:
sails --version
Obtendrás la versión de Sails en la siguiente salida:
1.5.3
Crear una Aplicación Sails.js
Después de instalar Sails, vamos a crear una aplicación Sails sencilla utilizando el siguiente comando:
sails new sails-app
Deberías obtener la siguiente salida:
Choose a template for your new Sails app: 1. Web App · Extensible project with auth, login, & password recovery 2. Empty · An empty Sails app, yours to configure (type "?" for help, or <CTRL+C> to cancel) ? 2 info: Installing dependencies... Press CTRL+C to cancel. (to skip this step in the future, use --fast) info: Created a new Sails app `sails-app`!
Puedes verificar todos los archivos creados por Sails utilizando el siguiente comando:
ls sails-app
Deberías ver la siguiente salida:
api app.js assets config Gruntfile.js node_modules package.json package-lock.json README.md tasks views
A continuación, cambia el directorio a tu aplicación Sails e inicia la aplicación con el siguiente comando:
cd sails-app sails lift
Deberías ver la siguiente salida:
info: Starting app... info: info: .-..-. info: info: Sails <| .-..-. info: v1.5.3 |\ info: /|.\ info: / || \ info: ,' |' \ info: .-'.-==|/_--' info: `--'-------' info: __---___--___---___--___---___--___ info: ____---___--___---___--___---___--___-__ info: info: Server lifted in `/root/sails-app` info: To shut down Sails, press + C at any time. info: Read more at https://sailsjs.com/support. debug: ------------------------------------------------------- debug: :: Sun Sep 25 2022 05:43:59 GMT+0000 (Coordinated Universal Time) debug: Environment : development debug: Port : 1337 debug: -------------------------------------------------------
Pulsa CTRL+C para detener la aplicación. Crearemos un archivo de servicio systemd para iniciar y gestionar la aplicación Sails.
Crear un Archivo de Servicio Systemd para Sails.js
A continuación, tendrás que crear un archivo de servicio systemd para gestionar la aplicación Sails.js. Puedes crearlo con el siguiente comando:
nano /etc/systemd/system/sails-app.service
Añade las siguientes líneas:
[Unit] After=network.target [Service] Type=simple User=root WorkingDirectory=/root/sails-app ExecStart=/usr/bin/sails lift Restart=on-failure [Install] WantedBy=multi-user.target
Guarda y cierra el archivo, luego recarga el demonio systemd para aplicar los cambios:
systemctl daemon-reload
A continuación, inicia el servicio Sails.js y habilítalo para que se inicie al reiniciar el sistema:
systemctl start sails-app systemctl enable sails-app
Ahora puedes comprobar el estado de la aplicación Sails con el siguiente comando:
systemctl status sails-app
Deberías obtener la siguiente salida:
? sails-app.service Loaded: loaded (/etc/systemd/system/sails-app.service; disabled; vendor preset: enabled) Active: active (running) since Sun 2022-09-25 05:44:42 UTC; 6s ago Main PID: 2896 (node) Tasks: 22 (limit: 4579) Memory: 159.2M CPU: 3.676s CGroup: /system.slice/sails-app.service ??2896 node /usr/bin/sails lift ??2903 grunt "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "> Sep 25 05:44:44 ubuntu2204 sails[2896]: info: ____---___--___---___--___---___--___-__ Sep 25 05:44:44 ubuntu2204 sails[2896]: info: Sep 25 05:44:44 ubuntu2204 sails[2896]: info: Server lifted in `/root/sails-app` Sep 25 05:44:44 ubuntu2204 sails[2896]: info: To shut down Sails, press + C at any time. Sep 25 05:44:44 ubuntu2204 sails[2896]: info: Read more at https://sailsjs.com/support. Sep 25 05:44:44 ubuntu2204 sails[2896]: debug: ------------------------------------------------------- Sep 25 05:44:44 ubuntu2204 sails[2896]: debug: :: Sun Sep 25 2022 05:44:44 GMT+0000 (Coordinated Universal Time) Sep 25 05:44:44 ubuntu2204 sails[2896]: debug: Environment : development Sep 25 05:44:44 ubuntu2204 sails[2896]: debug: Port : 1337 Sep 25 05:44:44 ubuntu2204 sails[2896]: debug: -------------------------------------------------------
En este punto, la aplicación Sails está iniciada y escucha en el puerto 1337. Ya puedes pasar al siguiente paso.
Configurar Apache como proxy inverso para Sails.js
Configurar Apache como proxy inverso para acceder a la aplicación Sails es una buena idea. Primero, instala el servidor Apache con el siguiente comando:
apt install apache2 -y
Una vez instalado el paquete Apache, crea un archivo de configuración del host virtual de Apache con el siguiente comando:
nano /etc/apache2/sites-available/sails.conf
Añade las siguientes líneas:
<VirtualHost *:80> ServerName sailsapp.example.com ServerAdmin [email protected] DocumentRoot /root/sails-app ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined <LocationMatch "^/(?!js|css|media)" > ProxyPass http://127.0.0.1:1337 ProxyPassReverse http://127.0.0.1:1337 </LocationMatch> <Location "/dist/"> ProxyPass ! </Location> RewriteEngine On RewriteCond %{REQUEST_URI} ^/socket.io [NC] RewriteCond %{QUERY_STRING} transport=websocket [NC] RewriteRule /(.*) ws://localhost:1337/$1 [P,L] </VirtualHost>
Guarda y cierra el archivo y, a continuación, activa el host virtual Sails con el siguiente comando:
a2ensite sails.conf
A continuación, activa otros módulos de Apache con el siguiente comando:
a2enmod headers proxy_http xml2enc proxy ssl proxy_wstunnel rewrite proxy_ajp deflate proxy_balancer proxy_connect proxy_html
A continuación, reinicia el servicio Apache para aplicar los cambios:
systemctl restart apache2
Ahora puedes verificar el estado del servicio Apache con el siguiente comando:
systemctl status apache2
Deberías obtener la siguiente salida:
? apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2022-09-25 05:46:54 UTC; 2s ago Docs: https://httpd.apache.org/docs/2.4/ Process: 3986 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS) Main PID: 3990 (apache2) Tasks: 55 (limit: 4579) Memory: 6.8M CPU: 90ms CGroup: /system.slice/apache2.service ??3990 /usr/sbin/apache2 -k start ??3991 /usr/sbin/apache2 -k start ??3992 /usr/sbin/apache2 -k start Sep 25 05:46:54 ubuntu2204 systemd[1]: Starting The Apache HTTP Server...
Actualmente, el servidor web Apache está instalado y configurado como proxy inverso para la aplicación Sails.js. Ya puedes pasar al siguiente paso.
Accede a la interfaz web de Sails.js
Ya puedes abrir tu navegador web y acceder a la interfaz web de Sails.js utilizando la URL http://sailsapp.example.com. Deberías ver la interfaz web de Sails.js en la siguiente pantalla:
Conclusión
¡Enhorabuena! Has instalado con éxito Sails.js con Apache como proxy inverso en Ubuntu 22.04. Ahora puedes alojar una aplicación web escalable y lista para producción utilizando el framework Sails.js. No dudes en preguntarme si tienes alguna duda.