Como automatizar deploy de código com Git hooks e SSH Print

  • 0

Como Automatizar Deploy de Código com Git Hooks e SSH na GeHost

Olá, viajante do código! Se você já se perguntou como deixar seu site atualizando automaticamente toda vez que envia um novo código para o Git, sem precisar fazer upload manualmente, então você está no lugar certo. Aqui, o Sensei da GeHost vai te ensinar, passo a passo, como usar Git Hooks e SSH para automatizar o deploy do seu projeto — como se fosse um feitiço mágico que aciona o servidor só com um git push.

Este guia é feito para quem está começando, mas quer ir além. Não precisa ser expert em servidores — basta seguir com calma e paciência. Vamos lá?

Antes de começar: o que você precisa ter

  • Um domínio hospedado na GeHost (com acesso ao cPanel).
  • Seu projeto já versionado com Git (localmente ou em um repositório remoto como GitHub, GitLab ou Bitbucket).
  • Conhecimento básico de linha de comando (terminal ou PowerShell).
  • Chave SSH configurada (você pode gerar uma no cPanel).

Dica do Sensei: Se você ainda não tem uma chave SSH, vá até o cPanel > SSH Access e crie uma. É como dar uma senha especial para o seu computador se comunicar com o servidor — segura e sem precisar digitar senha toda vez.

Passo 1: Acesse o cPanel e crie um usuário para o Git

Para segurança, não vamos usar sua conta principal. Vamos criar um usuário específico para o Git deploy.

  1. Entre no cPanel com seu login e senha.
  2. Na tela principal, clique em “Usuários do Sistema” (em “Segurança”).
  3. Selecione “Criar Usuário”.
  4. Insira um nome de usuário (ex: gitdeploy).
  5. Defina uma senha segura (ou use a opção de gerar automaticamente).
  6. Selecione o diretório raiz como /home/seu_usuario/public_html (ou o caminho do seu site).
  7. Clique em “Criar”.
Tela inicial do cPanel com os grupos de ferramentas, destacando 'Usuários do Sistema'

Passo 2: Configure a chave SSH para o usuário Git

Agora vamos permitir que o Git se conecte ao servidor sem pedir senha toda vez.

  1. No cPanel, vá até “SSH Access” (em “Segurança”).
  2. Na seção “Gerenciar Chaves SSH”, clique em “Gerar Nova Chave”.
  3. Nomeie a chave (ex: git_deploy_key).
  4. Deixe o tipo como rsa e o tamanho em 2048.
  5. Clique em “Gerar Chave”.
  6. Após gerar, copie a chave pública (a que termina com .pub).
  7. Volte ao cPanel e clique em “Chaves SSH” > “Adicionar Chave Pública”.
  8. Coloque a chave pública no campo e clique em “Adicionar”.

Dica do Sensei: A chave pública é como um cartão de entrada. Deixe-a no servidor. A privada (que você guarda no seu computador) é como a sua senha — nunca compartilhe!

Passo 3: Configure o repositório remoto no servidor

Vamos criar um repositório Git no servidor que receberá os pushes.

  1. Use o SSH para conectar ao servidor com o usuário que criamos (ex: gitdeploy).
  2. No terminal, execute:
  3. cd /home/seu_usuario/public_html (ou o caminho do seu site).
  4. git init --bare (cria um repositório vazio, mas "não trabalhável" — ideal para deploy).
  5. Esse repositório será o destino do seu git push remoto.

Atenção: Não use git init sem o --bare. Isso cria um repositório normal, que não funciona bem para automação.

Passo 4: Crie o hook de deploy (o coração da mágica)

Agora vem o momento mais mágico: o Git Hook que vai atualizar seu site automaticamente.

  1. No terminal, vá até o diretório do repositório bare:
  2. cd /home/seu_usuario/public_html/.git
  3. Abra o arquivo hooks/post-receive com um editor de texto (ex: nano).
  4. Adicione este conteúdo:
#!/bin/bash
# Atualiza o site após o push
export GIT_DIR=/home/seu_usuario/public_html/.git
export GIT_WORK_TREE=/home/seu_usuario/public_html

# Atualiza o código
git checkout -f

# (Opcional) Limpa cache ou reinicia serviços
# echo "Atualização concluída!"
  1. Salve o arquivo.
  2. Dê permissão de execução:
  3. chmod +x hooks/post-receive

Dica do Sensei: O hook post-receive é executado sempre que alguém faz um git push para esse repositório. É aí que o deploy acontece!

Passo 5: Configure seu repositório local para usar o servidor como remoto

Agora, vamos dizer ao seu código local onde enviar as atualizações.

  1. No seu computador, abra o terminal na pasta do seu projeto.
  2. Adicione o servidor como repositório remoto:
  3. git remote add production ssh://gitdeploy@seu_dominio.com/home/seu_usuario/public_html/.git
  4. Substitua seu_dominio.com pelo seu domínio real.
  5. Teste com:
  6. git push production main (ou master, dependendo do nome da branch).

Atenção: Se der erro de conexão SSH, verifique se a chave pública está correta no cPanel e se o usuário tem permissão para acessar o diretório.

Parabéns! Você automatizou seu deploy!

Agora, toda vez que você fizer:

git push production main

O servidor receberá o código e atualizará automaticamente seu site. Sem precisar de FTP, sem esperar, sem erros humanos. É como se o seu código soubesse voar até o servidor e se instalar sozinho.

Sensei diz: “A automação não é mágica — é disciplina. Mas quando você a domina, parece mágica.”

Próximos passos (para quem quer ir além)

  • Adicione comandos para limpar cache, reiniciar serviços ou rodar scripts pós-deploy.
  • Use branches diferentes (ex: main para produção, dev para testes).
  • Integre com ferramentas como GitHub Actions ou GitLab CI para mais automação.

Se tiver dúvidas, não hesite em nos procurar. Aqui na GeHost, estamos sempre prontos para ajudar você a crescer — com código, com paciência e com um toque de sabedoria.

Até a próxima, viajante


Was this answer helpful?

« Back