Implantação de aplicação TypeScript em VPS: guia passo a passo
Você escreveu uma aplicação incrível em TypeScript. Localmente tudo funciona perfeitamente, mas está na hora de mostrar o projeto para o mundo. A implantação em VPS (Virtual Private Server) é um passo lógico e flexível. Ao contrário das plataformas em nuvem, a VPS oferece controle total sobre o ambiente.
Neste artigo, vamos detalhar o processo passo a passo de implantação de uma aplicação TypeScript em VPS. Usaremos Node.js, PM2 para gerenciamento de processos e Nginx como proxy reverso. Todos os exemplos estão em TypeScript.
Pressupõe-se que você tenha habilidades básicas de trabalho com Linux e SSH.
1. Preparação do servidor e conexão
O primeiro passo é alugar uma VPS (DigitalOcean, Vultr, Timeweb, etc.) e conectar-se via SSH.
ssh root@seu_ip_do_servidorVamos atualizar os pacotes imediatamente e instalar as utilidades necessárias:
apt update && apt upgrade -yapt install curl git nginx -yInstalaremos o Node.js (recomendamos a versão LTS):
curl -fsSL https://deb.nodesource.com/setup_20.x | bash -apt install -y nodejsVerificaremos as versões:
node -vnpm -v2. Clonagem do repositório e compilação do TypeScript
Agora vamos clonar o seu projeto. Como exemplo, usaremos uma aplicação Express simples em TypeScript:
git clone https://github.com/seu_usuario/seu_repositorio.gitcd seu_repositorioInstalaremos as dependências:
npm installO TypeScript precisa ser compilado para JavaScript. Normalmente, isso é feito com o comando:
npm run buildNo package.json, isso deve estar configurado como:
{ "scripts": { "build": "tsc", "start": "node dist/index.js" }}Verifique se na pasta dist apareceram os arquivos compilados.
3. Instalação e configuração do PM2
PM2 é um gerenciador de processos para Node.js. Ele reinicia a aplicação em caso de falha, mantém logs e suporta clusterização.
Instalaremos o PM2 globalmente:
npm install pm2 -gIniciaremos a aplicação:
pm2 start dist/index.js --name "my-typescript-app"Salvaremos a lista de processos para que o PM2 os restaure após a reinicialização do servidor:
pm2 savepm2 startupO PM2 exibirá um comando que precisa ser executado (geralmente é systemctl enable pm2-root). Copie e execute-o.
O status pode ser verificado com o comando:
pm2 status4. Configuração do Nginx como proxy reverso
O Nginx receberá as requisições na porta 80 (HTTP) e as redirecionará para sua aplicação (por exemplo, na porta 3000).
Criaremos o arquivo de configuração:
nano /etc/nginx/sites-available/my-typescript-appInseriremos o seguinte código (altere server_name para seu domínio ou IP):
server { listen 80; server_name seu_dominio.ru www.seu_dominio.ru;
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; }}Ativaremos o site:
ln -s /etc/nginx/sites-available/my-typescript-app /etc/nginx/sites-enabled/nginx -tsystemctl restart nginxAgora sua aplicação está acessível pelo IP ou domínio.
5. Configuração de HTTPS (SSL) com Certbot
Sem HTTPS não dá para ficar hoje em dia. Usaremos Let's Encrypt e Certbot.
Instalaremos o Certbot:
apt install certbot python3-certbot-nginx -yIniciaremos a obtenção do certificado:
certbot --nginx -d seu_dominio.ru -d www.seu_dominio.ruO C ```