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.
- Entre no cPanel com seu login e senha.
- Na tela principal, clique em “Usuários do Sistema” (em “Segurança”).
- Selecione “Criar Usuário”.
- Insira um nome de usuário (ex:
gitdeploy). - Defina uma senha segura (ou use a opção de gerar automaticamente).
- Selecione o diretório raiz como
/home/seu_usuario/public_html(ou o caminho do seu site). - Clique em “Criar”.
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.
- No cPanel, vá até “SSH Access” (em “Segurança”).
- Na seção “Gerenciar Chaves SSH”, clique em “Gerar Nova Chave”.
- Nomeie a chave (ex:
git_deploy_key). - Deixe o tipo como
rsae o tamanho em2048. - Clique em “Gerar Chave”.
- Após gerar, copie a chave pública (a que termina com
.pub). - Volte ao cPanel e clique em “Chaves SSH” > “Adicionar Chave Pública”.
- 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.
- Use o SSH para conectar ao servidor com o usuário que criamos (ex:
gitdeploy). - No terminal, execute:
cd /home/seu_usuario/public_html(ou o caminho do seu site).git init --bare(cria um repositório vazio, mas "não trabalhável" — ideal para deploy).- Esse repositório será o destino do seu
git pushremoto.
Atenção: Não use
git initsem 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.
- No terminal, vá até o diretório do repositório bare:
cd /home/seu_usuario/public_html/.git- Abra o arquivo
hooks/post-receivecom um editor de texto (ex:nano). - 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!"
- Salve o arquivo.
- Dê permissão de execução:
chmod +x hooks/post-receive
Dica do Sensei: O hook
post-receiveé executado sempre que alguém faz umgit pushpara 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.
- No seu computador, abra o terminal na pasta do seu projeto.
- Adicione o servidor como repositório remoto:
git remote add production ssh://gitdeploy@seu_dominio.com/home/seu_usuario/public_html/.git- Substitua
seu_dominio.compelo seu domínio real. - Teste com:
git push production main(oumaster, 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:
mainpara produção,devpara 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