Introducción: Por qué VPS es la elección correcta para tu aplicación Node.js
Has escrito una aplicación genial en JavaScript (Node.js), la has probado localmente, y ahora está lista para conquistar el mundo. Pero, ¿cómo trasladarla del acogedor entorno de desarrollo al duro mundo de la producción? La respuesta es simple: VPS (Servidor Privado Virtual). A diferencia del hosting compartido, un VPS te da control total sobre el servidor, acceso root y la posibilidad de ajustar finamente el entorno a las necesidades de tu aplicación Node.js.
En esta guía paso a paso recorreremos todo el camino: desde la compra del servidor y la instalación de Node.js hasta la configuración del dominio, el certificado SSL y el gestor de procesos PM2. Aprenderás cómo hacer que tu sitio sea estable, rápido y seguro. ¡Vamos allá!
Paso 1: Preparación del VPS y conexión al servidor
Lo primero que debes hacer es alquilar un VPS. Cualquier proveedor popular sirve: DigitalOcean, Linode, Vultr o sus análogos rusos. La configuración mínima para una aplicación pequeña es 1 vCPU y 1 GB de RAM (con Ubuntu 20.04 o 22.04 LTS).
Después de crear el servidor, recibirás una dirección IP y una contraseña root. Conéctate por SSH:
ssh root@tu_dirección_IPSi usas macOS o Linux, el cliente SSH ya está integrado. En Windows puedes usar PowerShell o Putty.
Actualiza el sistema inmediatamente:
apt update && apt upgrade -yConsejo: crea un usuario separado (no root) para el trabajo diario. Esto mejora la seguridad:
adduser miusuariousermod -aG sudo miusuariosu - miusuarioInstalación de Node.js y npm
Instalaremos la última versión estable de Node.js a través de NodeSource — esta es la forma más fiable:
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -sudo apt install -y nodejsVerifica las versiones:
node --version # v20.x.xnpm --version # 10.x.x¡Excelente! Ahora tenemos el entorno para ejecutar código JavaScript en el servidor.
Paso 2: Subir la aplicación al servidor e instalar dependencias
Hay varias formas de transferir el código. La más sencilla para principiantes es usar git clone. Si tu código está en GitHub/GitLab, ejecuta:
git clone https://github.com/tu_cuenta/tu_repositorio.git /var/www/miappcd /var/www/miappSi el repositorio es privado, configura las claves SSH o usa un Personal Access Token.
Una forma alternativa es subir los archivos mediante SCP (desde tu consola local):
scp -r /ruta/a/tu/proyecto miusuario@tu_IP:/var/www/miappDespués de transferir el código, instala las dependencias:
cd /var/www/miappnpm install --productionLa bandera --production garantiza que no se instalarán dependencias de desarrollo (tests, bundlers, etc.), lo que ahorra espacio y mejora la seguridad.
Configuración de variables de entorno
Nunca guardes contraseñas ni claves API en el código. Crea un archivo .env en la raíz del proyecto:
nano .envEjemplo de contenido:
PORT=3000DB_HOST=localhostDB_USER=miusuarioDB_PASS=supersecretoJWT_SECRET=misecretojwt123Asegúrate de que este archivo esté añadido a .gitignore. Para leer las variables en el código, usa el paquete dotenv (ya debería estar en tus dependencias).
Paso 3: Ejecutar la aplicación con PM2 y configurar el inicio automático
Si ejecutas node app.js y cierras la sesión SSH, la aplicación se detendrá. Necesitamos un gestor de procesos que mantenga la aplicación funcionando 24/7. PM2 es la elección ideal para Node.js.
Instala PM2 globalmente:
sudo npm install -g pm2Ejecuta la aplicación:
pm2 start app.js --name "miapp"Si tu aplicación usa el puerto 3000,