Publicar uma aplicação Node.js ou Python a partir do Git: puxar, instalar, reiniciar

Publicar por FTP funciona, até ao dia em que se esquece um ficheiro. Com o Git, a publicação passa a ser sempre a mesma sequência: puxar o código, instalar as dependências, reiniciar. Num site PHP chega copiar ficheiros; numa aplicação Node.js ou Python faltam os dois últimos passos, e é neles que as publicações falham. Este artigo põe a sequência por ordem, para o cPanel e para um VPS.

A sequência, e o que cada passo faz

Passo Node.js Python
1. Puxar o código git pull git pull
2. Instalar as dependências npm ci (no cPanel, «Run NPM Install») pip install -r requirements.txt (no cPanel, «Run Pip Install»)
3. Compilar, se for o caso npm run build No Django: python manage.py migrate e collectstatic
4. Reiniciar O botão da aplicação (cPanel), ou pm2 restart nome (VPS) O botão da aplicação (cPanel), ou sudo systemctl restart nome (VPS)

No cPanel

1 Crie o repositório na conta com a ferramenta de controlo de versões do cPanel, ou com o git clone no Terminal, numa pasta fora da pasta pública. Um repositório privado exige que o servidor tenha acesso: veja o aviso abaixo. O passo a passo da ferramenta, e porque o .git nunca fica à vista, está em publicar o site a partir de um repositório.
2 Use essa pasta como raiz da aplicação no «Setup Node.js App» ou no «Setup Python App». Assim o git pull actualiza directamente o que a aplicação corre.
3 Entre no ambiente da aplicação (o comando está no topo do ecrã) e puxe e instale: git pull
npm ci
4 Reinicie com o botão do ecrã da aplicação. Sem o reinício, a aplicação continua a servir o código antigo.

Num VPS: um script de publicação

Num VPS a sequência escreve-se uma vez, num ficheiro, e corre-se com um só comando. Exemplo para uma aplicação Node.js com PM2 (adapte as pastas e o nome):#!/bin/bash
set -e
cd /home/appuser/app
git pull --ff-only
npm ci
npm run build
pm2 restart minha-app
O set -e faz o script parar no primeiro erro, para não reiniciar uma aplicação a meio de uma instalação falhada. Para Python, troque as linhas do meio por .venv/bin/pip install -r requirements.txt e reinicie o serviço com sudo systemctl restart nome.

Repositório privado: use uma chave só de leitura. Não ponha a sua senha do Git no servidor. Crie um par de chaves SSH no servidor (ssh-keygen -t ed25519) e registe a chave pública como «deploy key» de leitura no serviço onde está o repositório. Se a chave vazar, só lê um repositório. E nunca ponha no repositório o .env, a node_modules nem o ambiente virtual.
Para voltar atrás, o Git guarda o histórico: git log --oneline mostra as versões e git checkout identificador volta a uma delas (depois instale e reinicie como acima). Quem publica com frequência ganha em testar primeiro num subdomínio. As variáveis e os segredos ficam fora do código: variáveis de ambiente e segredos.

Quer um servidor onde automatizar toda a publicação? Veja os VPS.

Ver os servidores VPS

VEJA TAMBÉM

Git no cPanel: publicar o site a partir de um repositório

Manter uma aplicação Node.js a correr num VPS com o PM2

Pôr uma aplicação Node.js a correr

PRODUTO RECOMENDADO

Alojamento de sites com cPanel

Domínio e SSL incluídos, cópias diárias e o painel que já conhece. desde 321,75 MT/mês (plano de 3 anos, com cupão)

Ver planos
  • 0 Utilizadores acharam útil
Esta resposta foi útil?