Vamos a instalar un servidor de producción para aplicaciones de ReactJs con Node.js
PREREQUISITOS
- Un servidor con Debian 9 instalado y todas las medidas de seguridad requeridas.
- Un nombre de dominio asociado al servidor y una ip estática.
- Instalado un servidor web como Apache2.
- Configuración de certificados usando Let’s Encrypt.
Paso 1: Instalar Node.js y NPM
Para instalar Node.js primero se debe de descargar el script de instalación.
curl -sL https://deb.nodesource.com/setup_13.x | -E bash -
Instalar Node.js, NPM y los paquetes adicionales.
apt-get install gcc g++ make build-essential nodejs -y
Actualizar el sistema.
apt-get update && apt-get upgrade -y
Verificar las versiones.
node -v
npm -v
Paso 2: Crear una prueba de aplicación Node.js
Creamos una aplicación de prueba (las aplicaciones de node usualmente corren en los puertos 3000 o 3001 pero se pueden modificar).
mkdir -p /var/www/html/app
nano /var/www/html/app/server.js
Ahora se copia lo siguiente.
const http = require('http');
const hostname = '192.168.43.31';
const port = 3000;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('This is the Main App!\n');
});
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
Se guarda el archivo y se sale.
Paso 3: Instalar PM2
PM2 es un administrador de procesos para aplicaciones de Node.js. Hace posible demonizar las apps para que corran en el background como un servicio.
Utilice NPM para instalar la última versión de PM2.
npm i -g pm2@latest
Para poder utilizar la aplicación como servicio primero nos colocamos en la carpeta donde se creo.
cd /var/www/html/app/
Luego ejecutamos.
pm2 start #nombre_de_la_app
Para hacer que PM2 se ejecute cada vez que se inicia el servidor, se ejecuta el comando.
pm2 startup systemd
Para guardar la lista de procesos de PM2 se ejecuta.
pm2 save
Para saber más sobre pm2 puede visitar este enlace.
Paso 4: Accesar prueba desde explorador web
Accesar a la dirección y puerto que se estableció en la aplicación de Node en server.js:
const hostname = '192.168.43.31';
const port = 3000;
Entonces se ingresa la URL:
http://192.168.43.31:3000
IMPORTANTE: La dirección 192.168.43.31 se puede cambiar por la que sea necesaria.
Paso 5: Instalar Python 3
Ejecutar
apt install python3
Verificar instalación.
python3 -v
Paso 6: Instalar ReactJS
Ejecutar
npm install -g create-react-app
Paso 7: Instalar Nestjs
Ejecutar
npm i @nestjs/cli
Paso 8: Instalar MongoDB como motor de BD
Importar la llave pública.
wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | apt-key add -
La operación debe responder con OK. Sin embargo, si se recive un error se debe instalar gnupg.
apt-get install gnupg
Se vuelve a intentar la importación de la llave pública.
Se debe crear la lista de archivos.
echo "deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/4.2 main" | tee /etc/apt/sources.list.d/mongodb-org-4.2.list
Se actualiza el sistema.
apt-get update -y
Instalamos mongoDB.
apt-get install -y mongodb-org
Se inicia y se revisa el estado.
systemctl start mongod
systemctl status mongod