Como hostear tu aplicacion node y react en tu propia VPS (1/2)

Cómo hostear tu app Node + React en tu propia VPS (Parte 1)

En este video me propuse algo que varios me venían pidiendo: levantar una app full stack (Node + React + Mongo) en una VPS propia, sin plataformas mágicas ni costos raros. Todo con Ubuntu, NGINX y un par de herramientas que, una vez que las tenés claras, te hacen sentir que tenés tu mini-cloud en casa. Es la primera parte de dos: en esta nos enfocamos en dejar todo online y estable, y en la próxima le metemos SSL y más fine-tuning.

¿Qué vas a montar?

  • Una VPS con Ubuntu (usé vultr.com, pero podés usar la que quieras).
  • NGINX como reverse proxy frente a tu app Node.
  • Node y Yarn para correr y buildear.
  • MongoDB como base de datos.
  • PM2 para mantener la app viva y reiniciar en caso de caídas.
  • Dominio apuntando a tu server para que quede pro.

La idea es que termines con tu app React servida por Express/Node, accesible por dominio, detrás de NGINX. Nada de puertos raros a la vista.

La VPS y el acceso por SSH

  • Creo una instancia en Vultr, elijo Ubuntu, le doy los recursos básicos y listo.
  • Me conecto por SSH (clave o password, como te quede más cómodo).
  • Pequeño repaso de seguridad y actualización rápida del sistema.

NGINX: instalación, firewall y prueba

  • Instalo NGINX y explico en criollo qué rol cumple: sirve como front door, maneja tráfico en 80/443 y le pasa las requests a Node por atrás.
  • Habilito el firewall para NGINX (HTTP/HTTPS) y checo la página de bienvenida desde Chrome para confirmar que estamos bien.

Node, Mongo y el proyecto

  • Instalo NodeJS en Ubuntu y dejo los comandos clave.
  • También MongoDB para tener la base disponible en el server.
  • Clono el repo de ejemplo y te muestro cómo está organizado para que entiendas qué corre en el backend y qué en el frontend.

Repo de ejemplo que uso:

VER:  Esta herramienta gratis va EXPLOTAR tu productividad - Fabric

Build de React y cómo lo sirve Express

  • Instalo Yarn y buildeo el frontend.
  • Muestro cómo Express sirve el build estático de React sin necesidad de tener dos servidores públicos.
  • Corro todo localmente en el server para comprobar que el stack responde.

Mantener la app viva con PM2

  • Configuro PM2 para levantar la app.
  • Dejo el proceso en segundo plano y agrego “pm2 startup” para que se inicie solo si el server se reinicia.
  • Un clásico que te ahorra dolores de cabeza: logs y restart automático.

Dominio y reverse proxy con NGINX

  • Delego un dominio (Namecheap) apuntando a la IP de la VPS.
  • Armo el server block de NGINX para hacer de reverse proxy hacia mi app Node (puerto 3000, por ejemplo).
  • Te dejo un ejemplo mínimo del bloque de configuración:
server {
  server_name tu-dominio.com www.tu-dominio.com;

  location / {
    proxy_pass http://127.0.0.1:3000;
    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;
  }

  listen 80;
}

Con esto ya quedás sirviendo tu app por HTTP en tu dominio. El candadito (SSL con Let’s Encrypt) lo vemos en la Parte 2 con Certbot.

Recursos que menciono

Mirá el video completo

Cierre

Nada como tener tus cosas corriendo en tu propio server y entender cada pieza del stack. En la parte 2 le ponemos el candadito con Let’s Encrypt, ajustamos NGINX y dejamos todo prolijo para producción. Si te sirvió, contame qué querés que agregue o qué te trabó en tu despliegue. Vamos a seguir remándola, pero con buenas prácticas y un mate al lado todo se hace más llevadero. Nos vemos en el próximo.

Loading

Esta entrada fue publicada el youtube. Agregá a favoritos el enlace permalink.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *