Despliegue de una aplicación TypeScript 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
```html

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



Has escrito una aplicación genial en TypeScript. Localmente funciona perfecto, pero es hora de mostrar el proyecto al mundo. El despliegue en un VPS (Virtual Private Server) es un paso lógico y flexible. A diferencia de las plataformas en la nube, un VPS te da control total sobre el entorno.



En este artículo, analizaremos el proceso paso a paso para desplegar una aplicación TypeScript en un VPS. Usaremos Node.js, PM2 para la gestión de procesos y Nginx como proxy inverso. Todos los ejemplos están en TypeScript.



Se asume que tienes conocimientos básicos de Linux y SSH.



1. Preparación del servidor y conexión



El primer paso es alquilar un VPS (DigitalOcean, Vultr, Timeweb, etc.) y conectarse por SSH.



ssh root@tu_ip_del_servidor


Actualicemos los paquetes e instalemos las utilidades necesarias de inmediato:



apt update && apt upgrade -yapt install curl git nginx -y


Instalemos Node.js (recomendamos la versión LTS):



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


Verifiquemos las versiones:



node -vnpm -v


2. Clonar el repositorio y compilar TypeScript



Ahora clonamos tu proyecto. Para el ejemplo, usaremos una aplicación Express simple en TypeScript:



git clone https://github.com/tu_usuario/tu_repositorio.gitcd tu_repositorio


Instalemos las dependencias:



npm install


TypeScript debe compilarse a JavaScript. Normalmente esto se hace con el comando:



npm run build


En el package.json debería estar definido así:



{  "scripts": {    "build": "tsc",    "start": "node dist/index.js"  }}


Verifica que en la carpeta dist aparezcan los archivos compilados.



3. Instalación y configuración de PM2



PM2 es un gestor de procesos para Node.js. Reinicia la aplicación si falla, mantiene registros y soporta clustering.



Instalemos PM2 de forma global:



npm install pm2 -g


Iniciemos la aplicación:



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


Guardemos la lista de procesos para que PM2 los restaure después de reiniciar el servidor:



pm2 savepm2 startup


PM2 mostrará un comando que debes ejecutar (normalmente es systemctl enable pm2-root). Cópialo y ejecútalo.



Puedes verificar el estado con el comando:



pm2 status


4. Configuración de Nginx como proxy inverso



Nginx recibirá las solicitudes en el puerto 80 (HTTP) y las redirigirá a tu aplicación (por ejemplo, en el puerto 3000).



Creemos el archivo de configuración:



nano /etc/nginx/sites-available/my-typescript-app


Inserta el siguiente código (cambia server_name por tu dominio o IP):



server {    listen 80;    server_name tu_dominio.es www.tu_dominio.es;

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


Activemos el sitio:



ln -s /etc/nginx/sites-available/my-typescript-app /etc/nginx/sites-enabled/nginx -tsystemctl restart nginx


Ahora tu aplicación está accesible a través de la IP o el dominio.



5. Configuración de HTTPS (SSL) con Certbot



Hoy en día no se puede prescindir de HTTPS. Usaremos Let's Encrypt y Certbot.



Instalemos Certbot:



apt install certbot python3-certbot-nginx -y


Ejecutemos la obtención del certificado:



certbot --nginx -d tu_dominio.es -d www.tu_dominio.es
```

Blogs

Book Recommendations