Despliegue de una aplicación JavaScript en VPS: guía paso a paso

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Introducción: ¿Por qué hacer deploy de una aplicación JavaScript en una VPS?

Desarrollar una aplicación web moderna en JavaScript (Node.js) es solo la mitad del trabajo. La segunda parte, igualmente importante, es el deploy, es decir, desplegar tu proyecto en un servidor real accesible en internet. Usar un Servidor Privado Virtual (VPS) te da control total sobre el entorno, a diferencia del hosting compartido. Puedes configurar el servidor según tus necesidades, instalar cualquier dependencia y garantizar un alto rendimiento.

En esta guía, desglosaremos paso a paso el proceso de deploy de una aplicación típica de JavaScript (Node.js) en una VPS. Cubriremos todas las etapas: desde la configuración inicial del servidor hasta la ejecución de la aplicación en modo producción utilizando el gestor de procesos PM2 y el servidor proxy inverso Nginx. El artículo está dirigido a desarrolladores que ya están familiarizados con los fundamentos de Node.js y la línea de comandos de Linux.

1. Preparación de la VPS y configuración inicial

El primer paso es alquilar una VPS de cualquier proveedor (DigitalOcean, Linode, Vultr o análogos rusos). Tarifa mínima recomendada: 1 vCPU, 1-2 GB de RAM. Sistema operativo: Ubuntu 22.04 LTS (o más reciente).

1.1. Conexión al servidor por SSH

Después de obtener la dirección IP y la contraseña de root, conéctate al servidor desde tu terminal:

ssh root@tu_IP_del_servidor

Si usas una clave SSH (recomendado), especifica la ruta a la clave privada:

ssh -i ~/.ssh/id_rsa root@tu_IP_del_servidor

1.2. Creación de usuario y seguridad básica

Nunca trabajes como root permanentemente. Crea un nuevo usuario y asígnale permisos sudo:

adduser myuserusermod -aG sudo myuser

Luego, configura la clave SSH para el nuevo usuario (copia la clave pública desde tu máquina local) y deshabilita el inicio de sesión por contraseña en el archivo /etc/ssh/sshd_config:

PasswordAuthentication no

Reinicia el servicio SSH: sudo systemctl restart sshd.

1.3. Instalación del software necesario

Actualiza el gestor de paquetes e instala Node.js (recomendamos la versión LTS a través de NodeSource), Git y Nginx:

sudo apt update && sudo apt upgrade -ycurl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -sudo apt install -y nodejs git nginx

Verifica las versiones: node -v y npm -v.

2. Clonación del repositorio e instalación de dependencias

Ahora que el servidor está listo, transfiere el código de tu aplicación a él.

2.1. Clonación del proyecto

Ve al directorio home del usuario y clona el repositorio desde GitHub (u otro hosting de Git):

cd /home/myusergit clone https://github.com/tu_usuario/tu_repositorio.git myappcd myapp

2.2. Instalación de dependencias y ejecución de prueba

Instala todos los paquetes npm especificados en package.json:

npm install

Si el proyecto usa variables de entorno (por ejemplo, para la base de datos o claves de API), crea un archivo .env y complétalo:

nano .env

Ejemplo de contenido:

PORT=3000DATABASE_URL=mongodb://localhost:27017/mydbNODE_ENV=production

Ejecuta la aplicación manualmente para asegurarte de que funciona:

node app.js

Verifica la accesibilidad mediante curl http://localhost:3000 o abre en el navegador http://tu_IP:3000 (previamente permitiendo el puerto en el firewall). Si todo funciona, detén el proceso (Ctrl+C).

3. Configuración del gestor de procesos PM2

La aplicación iniciada con node app.js se detendrá en cuanto cierres la sesión SSH. Para un funcionamiento continuo se utiliza PM2, un gestor de procesos para Node.js que reinicia automáticamente la aplicación si falla y gestiona

Blogs

Book Recommendations