Despliegue de una aplicación TypeScript en VPS: guía paso a paso de la A a la Z

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é VPS es el lugar ideal para tu proyecto TypeScript?



Has escrito una aplicación genial en TypeScript, ya sea un servidor Express, un sitio Next.js o una API NestJS. Localmente funciona perfectamente, pero ha llegado el momento de mostrar tu proyecto al mundo. Muchos principiantes temen la etapa de despliegue, considerándola compleja y confusa. En realidad, entender este proceso una vez te permitirá desplegar cualquier proyecto TypeScript en 15-20 minutos.



En esta guía, cubriremos el ciclo completo de despliegue de una aplicación TypeScript en un VPS (Virtual Private Server), desde la preparación del servidor hasta la configuración del dominio y HTTPS. El artículo está orientado al ecosistema Node.js, ya que TypeScript se usa más a menudo con él.



Qué aprenderás:

  • Cómo preparar un VPS para trabajar (Ubuntu 22.04)
  • Cómo configurar Node.js, TypeScript y el administrador de procesos PM2
  • Cómo compilar TypeScript en modo producción
  • Cómo configurar Nginx como proxy inverso
  • Cómo conectar un certificado SSL gratuito a través de Let's Encrypt


1. Preparación del VPS e instalación del entorno necesario



1.1 Configuración inicial del servidor



Supongamos que has alquilado un VPS (por ejemplo, de DigitalOcean, Timeweb o Reg.ru) con Ubuntu 22.04. Lo primero es conectarte al servidor a través de SSH:



ssh root@tu-ip-del-servidor


Crea un usuario separado (es más seguro que trabajar como root):



adduser deployerusermod -aG sudo deployersu - deployer


1.2 Instalación de Node.js y npm



Para una aplicación TypeScript, necesitaremos Node.js versión 18 o 20 (LTS). Usamos el PPA oficial de NodeSource:



curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -sudo apt-get install -y nodejs


Verificamos la instalación:



node -vnpm -v


1.3 Instalación global de TypeScript (opcional)



Aunque TypeScript suele ser una dependencia local del proyecto, para una verificación rápida de la compilación se puede instalar globalmente:



sudo npm install -g typescript


1.4 Clonación de tu proyecto



Copia el repositorio desde GitHub/GitLab al servidor:



git clone https://github.com/tu-usuario/tu-proyecto.gitcd tu-proyecto


Instala las dependencias:



npm install


2. Compilación de TypeScript y configuración de PM2



2.1 Compilación de TypeScript a JavaScript



En tu package.json debe haber un script de compilación. Normalmente se ve así:



{  "scripts": {    "build": "tsc",    "start": "node dist/index.js",    "dev": "ts-node-dev src/index.ts"  }}


Ejecutamos la compilación:



npm run build


Después de la ejecución, en la carpeta dist aparecerá el código JavaScript compilado. Si tienes Next.js, el comando de compilación será npm run build (Next.js compila TypeScript por sí mismo).



2.2 Instalación y configuración de PM2



PM2 es un administrador de procesos que mantiene tu aplicación en ejecución, la reinicia si falla y gestiona los registros. Lo instalamos:



sudo npm install -g pm2


Iniciamos la aplicación a través de PM2 (indicamos la ruta al archivo compilado):



pm2 start dist/index.js --name "my-typescript-app"


Si tienes Next.js, el comando será diferente:



pm2 start npm --name "next-app" -- start


Configuramos el inicio automático de PM2 al reiniciar el servidor:



pm2 startup systemdpm2 save


Ahora tu aplicación se ejecuta en un puerto local (por ejemplo, 3000). Hagámosla accesible a través de un dominio.



3. Configuración de Nginx como proxy inverso



3.1 Instalación de Nginx




                
                

Blogs

Book Recommendations