- Crear el droplet con SSH
- Instalar NVM
- Instalar la version necesaria de Node
- Clonar el repositorio en una carpeta y ejecutar el npm install para instalar todas las dependencias del proyecto
- Crear la base de datos y colocar los datos para la conexion en las variables de entorno
- Instalar PM2 de manera global:
Con pm2 en la carpeta del proyecto corremos la aplicacion desde el fichero main.js de la carpeta dist (donde se escuentra el bundle de la aplicacion para produccion) y le ponemos un nombre al proceso para identificarlo con la flag —name
npm install pm2 -g
pm2 start dist/main.js --name ozono
Ejecutamos un comando adicional de pm2 para iniciar la aplicacion automaticamente cada vez que el servidor inicie (por si ocurre un error o se reinicia por alguna actualizacion)
pm2 startup
esto agrega archivos de configuracion para iniciar la aplicacion cada vez que el servidor se inicie y finalmenta guardamos con:
pm2 save
-
Activa el firewall que viene por defecto en la maquina:
sudo ufw enable
y agregamos las reglas de conexion:
sudo ufw allow ssh http https
-
Instalar nginx para configurar el servidor proxy
sudo apt install nginx
verificamos si el servidor nginx esta corriendo
systemctl status nginx
Creamos un archivo de configuracion de nginx para decirle a donde debe apuntar el servidor proxy:
nano /etc/nginx/sites-available/ozono.api
configuramos el servidor de nginx
server { listen 80; server_name 137.184.225.42; location / { proxy_pass http://localhost:3333; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } }
Enlazamos ese fichero a los sites enable de nginx
ln -s /etc/nginx/sites-available/ozono.api /etc/nginx/sites-enabled/ozono.api
reiniciamos el nginx
sudo service nginx restart
Con un DNS se haria lo mismo solo que en lugar de colocar en server_name la direccion se colocaria el dominio y asi podriamos acceder directamente a la aplicacion.