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-appO 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.
|
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 |