Web9 min

Cómo alojar una aplicación Node.js en producción

Desarrollaste tu app en Node.js y funciona en localhost. Ahora necesitás ponerla en producción de forma profesional, segura y escalable.

Elegir el servidor

Para Node.js en producción necesitás un VPS con al menos 1 GB de RAM (2 GB recomendado), acceso root, y Node.js instalado. Un Cloud VPS con NVMe es ideal. No uses hosting compartido — no tenés control sobre el entorno.

Instalar Node.js correctamente

Usá nvm (Node Version Manager) para instalar y gestionar versiones. Instalá la versión LTS actual. No uses la versión del repositorio del SO (suele estar desactualizada).

PM2: process manager

PM2 mantiene tu app corriendo 24/7, la reinicia si crashea, y permite zero-downtime reloads. Instalá con npm install -g pm2, ejecutá con pm2 start app.js, y configurá pm2 startup para que arranque con el servidor.

Nginx como reverse proxy

Nginx recibe las requests HTTP/HTTPS y las reenvía a tu app Node.js (que corre en un puerto interno como 3000). Esto te da: SSL termination, caching de estáticos, compresión, y la posibilidad de servir múltiples apps en el mismo servidor.

SSL con Let's Encrypt

Instalá certbot y obtené un certificado: certbot --nginx -d tudominio.com. Se renueva automáticamente. Nginx maneja el SSL y tu app Node.js solo recibe tráfico HTTP interno.

Variables de entorno

Nunca hardcodees secrets en el código. Usá un archivo .env (no commiteado a Git) con dotenv, o configurá variables en PM2 ecosystem.config.js. Para producción, considerá un secret manager.

Monitoreo y logs

PM2 tiene monitoreo integrado (pm2 monit). Configurá logs con pm2 logs y rotación con pm2-logrotate. Para métricas avanzadas, usá PM2 Plus o Prometheus + Grafana.

Deploy automatizado

Configurá un webhook o GitHub Action que haga: git pull, npm install, npm run build, pm2 reload app. Esto te da deploys en segundos sin downtime.

Published by Equipo Baires Host