Como automatizar deploys via Git com um hook post-receive imprimir

  • 0

Como automatizar deploys via Git com um hook post-receive

Se você atualiza seu site ou sistema copiando arquivos manualmente toda vez (por FTP ou Gerenciador de Arquivos), sabe como isso é trabalhoso — e arriscado, porque um arquivo esquecido ou uma pasta enviada pela metade pode derrubar o site. Existe um jeito bem mais tranquilo: usar o próprio Git para publicar seu projeto sozinho, a cada git push. Vamos aprender juntos como isso funciona. 🌱

O que é um hook post-receive?

O Git permite criar um repositório especial no servidor, chamado de repositório "bare" (sem os arquivos de trabalho, só o histórico). Quando você faz um git push para esse repositório, o Git dispara automaticamente um script chamado post-receive — e é nesse script que você define o que deve acontecer depois do envio, como copiar os arquivos para a pasta do site, reiniciar um processo, instalar dependências, etc.

Ou seja: você digita git push no seu computador, e o próprio servidor cuida de "publicar" a versão mais nova. Sem FTP, sem arrastar pasta, sem esquecer arquivo.

Antes de começar

Para configurar um hook post-receive você precisa de acesso via terminal (SSH) ao servidor onde seu projeto está hospedado. Nem todo plano ou situação tem esse acesso liberado por padrão — o mais seguro é confirmar com o nosso suporte ou verificar no painel.gehost.com.br se o seu plano contempla acesso SSH antes de seguir os próximos passos.

💡 Dica da Sensei: se você nunca usou SSH antes, não se assuste — é só um "terminal remoto". Você digita comandos e eles rodam direto no servidor, como se você estivesse sentada(o) na frente dele.

Passo a passo para configurar

  1. Crie o repositório "bare" no servidor.
    Conectado via SSH, escolha um local fora da pasta pública do site (por exemplo, uma pasta chamada repo.git no seu diretório do usuário) e rode:
    git init --bare repo.git
  2. Crie o script do hook.
    Dentro da pasta repo.git, entre em hooks/ e crie um arquivo chamado exatamente post-receive (sem extensão). Esse arquivo vai conter os comandos que o Git deve executar após cada push — o mais comum é "extrair" os arquivos da branch principal para a pasta pública do site, algo como:
    #!/bin/bash
    git --work-tree=/caminho/da/sua/pasta/public_html --git-dir=/caminho/do/repo.git checkout -f
  3. Dê permissão de execução ao hook.
    O servidor só vai rodar o script se ele estiver marcado como executável:
    chmod +x hooks/post-receive
  4. Adicione o servidor como "remote" no seu projeto local.
    No seu computador, dentro da pasta do projeto, rode:
    git remote add producao usuario@seudominio.com.br:/caminho/do/repo.git
  5. Faça o primeiro deploy!
    Agora é só enviar sua branch principal:
    git push producao main
    O Git vai transferir o código, disparar o hook automaticamente e os arquivos já vão aparecer atualizados na pasta do site.

Testando se deu certo

Depois do push, acesse seu site normalmente pelo navegador e confira se as últimas alterações apareceram. Se algo não mudou, revise se o caminho usado no --work-tree do hook está correto e se o arquivo post-receive realmente ficou executável (passo 3).

💡 Dica da Sensei: nunca faça deploy direto da branch onde você ainda está testando código. Trabalhe em uma branch separada e só dê push para "produção" quando tiver certeza de que está tudo funcionando — assim seu site nunca fica no ar com algo pela metade.

Cuidados importantes

  • Evite guardar senhas, chaves de API ou dados sensíveis direto no repositório — prefira variáveis de ambiente ou arquivos de configuração fora do controle de versão.
  • Se o seu projeto tiver dependências (como as de um package.json ou composer.json), lembre-se de incluir no hook o comando de instalação delas, senão o deploy sobe o código mas não as bibliotecas que ele precisa.
  • Sempre mantenha um backup recente antes de automatizar qualquer processo de deploy — assim, se algo sair diferente do esperado, você volta com tranquilidade para a versão anterior.

Pronto! Com isso você já tem um fluxo de publicação bem mais profissional e seguro. Se tiver qualquer dúvida durante a configuração, nosso suporte está por aqui para te ajudar. 🌿


Esta resposta lhe foi útil?

« Retornar