Como configurar um ambiente de staging automatizado com Git no VPS imprimir

  • 0

Como montar um ambiente de staging automatizado com Git no seu VPS

Se você já perdeu o sono publicando uma atualização direto no site "de produção" (aquele que os seus clientes ou visitantes veem) e torcendo pra não quebrar nada, este guia é pra você. Vamos criar um ambiente de staging: uma cópia paralela do seu site, isolada, onde você testa tudo antes de qualquer coisa chegar ao público. E o melhor: usando Git, a atualização vira só um comando.

Staging é o seu "ensaio geral". Nada que acontece lá afeta o site real — é o lugar ideal pra testar atualizações, plugins, mudanças de código ou configurações novas com segurança.

Pré-requisitos

Este guia é voltado para quem tem um VPS GeHost com acesso root/SSH (a linha VPS é diferente da hospedagem compartilhada com cPanel — aqui você tem o ambiente todo na sua mão). Antes de começar, tenha em mãos:

  • Acesso SSH ao seu VPS (usuário e chave ou senha configurados).
  • Git instalado no servidor.
  • Um subdomínio ou domínio separado para o staging (por exemplo, um subdomínio de teste apontando pra pasta do ambiente de staging).
  • A stack da sua aplicação já rodando localmente ou em um repositório Git (GitHub, GitLab, Bitbucket ou até um repositório só seu, no próprio VPS).

Passo 1 — Crie um repositório "bare" no VPS

Um repositório "bare" é um repositório Git que não tem os arquivos do projeto visíveis, só o histórico — ele funciona como o destino para onde você vai enviar ("dar push") o seu código. É a peça-chave da automação.

  1. Conecte no seu VPS via SSH.
  2. Crie uma pasta dedicada para os repositórios, por exemplo dentro do seu usuário (algo como uma pasta "git" ou "repositorios").
  3. Dentro dela, crie uma nova pasta com o nome do seu projeto terminando em ".git" e inicialize um repositório bare nela (o comando é git init --bare executado dentro dessa pasta).

Passo 2 — Crie a pasta de destino do staging

Separe uma pasta só para os arquivos "vivos" do ambiente de staging — é para essa pasta que o servidor web (Nginx, Apache ou o serviço que você usa) vai apontar quando alguém acessar o subdomínio de teste. Mantenha essa pasta separada da pasta do site de produção, para não haver risco de mistura.

Passo 3 — Configure o "hook" de deploy automático

Aqui está a mágica: o Git permite configurar um script chamado post-receive, que roda automaticamente sempre que você envia código novo para o repositório bare. Esse script pega o código recém-enviado e o "descompacta" direto na pasta do staging.

  1. Dentro do repositório bare, entre na pasta "hooks".
  2. Crie um arquivo chamado exatamente post-receive (sem extensão).
  3. Nesse arquivo, escreva um pequeno script que copia os arquivos recebidos para a pasta de staging (usando o comando git --work-tree apontando para essa pasta, junto com git checkout).
  4. Dê permissão de execução a esse arquivo (comando chmod +x no nome do arquivo).
Dica da Sensei: se a sua aplicação precisa reiniciar um serviço depois do deploy (por exemplo, reiniciar um processo Node.js), você pode incluir esse comando de reinício no final do mesmo script post-receive. Assim, um único "push" atualiza o código E reinicia a aplicação.

Passo 4 — Aponte o subdomínio de staging para a pasta certa

No seu painel de controle do VPS ou na configuração do seu servidor web, crie o subdomínio de staging e faça-o apontar para a pasta que você criou no Passo 2. Se a sua aplicação usa um processo próprio (como Node.js rodando numa porta específica), configure um proxy reverso para esse subdomínio também.

Passo 5 — Configure seu computador para enviar o código

No seu computador, dentro do projeto, adicione o repositório do VPS como um "remote" do Git (um destino de envio). O comando é git remote add, seguido de um nome (por exemplo "staging") e do endereço SSH do repositório bare que você criou no Passo 1.

A partir daí, sempre que quiser atualizar o ambiente de staging, basta rodar git push staging (seguido do nome da sua branch). Em segundos, o código novo estará no ar — só no staging, seguro, longe do site real.

Passo 6 — Teste, valide e só depois vá para produção

  • Acesse o subdomínio de staging e confira se tudo funciona como esperado.
  • Rode os testes automatizados do seu projeto, se você tiver algum.
  • Só depois de validar no staging, repita o processo de deploy (ou faça o merge da branch) no repositório de produção.
Uma boa prática é manter branches separadas: uma para staging (onde tudo é testado primeiro) e outra para produção (que só recebe código já aprovado). Isso evita publicar algo "pela metade" sem querer.

Vai além disso?

Se o seu projeto crescer e você quiser um pipeline mais robusto — com containers, filas, cache ou múltiplos serviços rodando junto — lembre que o VPS é o seu ambiente, com Docker, Redis, bancos de dados e tudo mais disponível para você configurar. Qualquer dúvida na hora de montar esse fluxo, é só chamar o suporte pelo painel — estamos aqui para ajudar você a evoluir sem medo de quebrar o que já está no ar.


Esta resposta lhe foi útil?

« Retornar