Como configurar o deploy automático do seu projeto via Git no VPS
Oi! Aqui é a Sensei da GeHost 🥋 Se você já cansou de subir arquivo por FTP toda vez que atualiza o código, esse guia é pra você. Vamos configurar um deploy automático via Git: você dá um git push lá do seu computador e, alguns segundos depois, o site já está atualizado no seu VPS. Sem enrolação, sem arrastar pasta em cliente FTP.
Vou te mostrar o caminho mais simples e mais usado: um repositório "bare" no servidor + um hook de post-receive que atualiza os arquivos automaticamente. É leve, não depende de serviço externo e funciona muito bem pra projetos de porte pequeno/médio.
Antes de começar: esse guia é para quem tem um VPS GeHost com acesso SSH. Se o seu plano é de hospedagem compartilhada (cPanel), fala com a nossa equipe pelo painel.gehost.com.br que a gente te orienta sobre as opções de deploy disponíveis pro seu tipo de conta.
O que você vai precisar
- Acesso SSH ao seu VPS (usuário e chave/senha configurados);
- Git instalado na sua máquina local;
- Seu projeto já versionado num repositório Git (local ou num serviço como GitHub/GitLab);
- Um pouquinho de paciência na primeira vez — depois disso, é só
git pushpra sempre 😉
Passo 1 — Conecte no seu VPS via SSH
Abra o terminal do seu computador e conecte no servidor com o usuário e o endereço que você recebeu no e-mail de entrega da GeHost:
- Digite
ssh seu_usuario@seu-endereco-do-vpse pressione Enter; - Informe sua senha (ou deixe a chave SSH fazer a autenticação automática, se você já configurou uma);
- Pronto, você está "dentro" do servidor.
Não lembra o endereço ou o usuário do seu VPS? Dá uma olhada no e-mail de entrega ou fala com a gente pelo painel.gehost.com.br que a equipe te repassa certinho.
Passo 2 — Crie o repositório "bare" no servidor
O repositório bare é uma pastinha especial que só guarda o histórico do Git — é pra onde você vai mandar o git push. Ainda no terminal do servidor:
- Crie uma pasta pro seu repositório, por exemplo:
mkdir -p ~/git/meuprojeto.git - Entre nela:
cd ~/git/meuprojeto.git - Inicialize como bare:
git init --bare
Isso cria só o "esqueleto" do Git — os arquivos de verdade do seu site vão ficar em outra pasta, que é a pasta pública que o navegador enxerga (geralmente algo como public_html ou a raiz do seu domínio no VPS).
Passo 3 — Configure o hook de post-receive
Aqui é onde a mágica acontece: um "hook" é um script que o Git dispara sozinho toda vez que recebe um push. Vamos configurar ele pra copiar os arquivos atualizados direto pra pasta do seu site.
- Ainda dentro de
~/git/meuprojeto.git, entre na pasta de hooks:cd hooks - Crie o arquivo do hook:
nano post-receive - Cole o conteúdo abaixo (troque o caminho pela pasta real do seu site):
#!/bin/bash
GIT_WORK_TREE=/caminho/para/a/pasta/do/seu/site git checkout -f
- Salve o arquivo (no
nano:Ctrl+O, Enter, depoisCtrl+Xpra sair); - Dê permissão de execução:
chmod +x post-receive
Dica da Sensei: se o seu projeto precisa de passos extras a cada deploy (tipo instalar dependências ou rodar um build), você pode incluir esses comandos dentro do mesmo arquivopost-receive, logo depois dogit checkout. Assim tudo acontece automaticamente no mesmopush.
Passo 4 — Aponte seu projeto local pro servidor
Agora, de volta no seu computador, dentro da pasta do seu projeto:
- Adicione o servidor como um "remote" do Git:
git remote add producao ssh://seu_usuario@seu-endereco-do-vps/~/git/meuprojeto.git - Confirme que deu certo:
git remote -v
Passo 5 — Faça seu primeiro deploy
Chegou a hora boa. Com suas alterações commitadas localmente, rode:
git push producao main
(troque main pelo nome da sua branch principal, se for diferente, como master)
Se tudo estiver certo, você vai ver o Git enviando os arquivos e, no final, o hook rodando sozinho. Dá um F5 no seu site — as mudanças já devem estar lá! 🎉
Dicas pra deploys mais tranquilos
- Configure uma chave SSH no seu computador em vez de digitar senha toda hora — deixa o processo bem mais rápido e seguro;
- Nunca versione arquivos sensíveis (senhas, chaves de API, arquivos de configuração com credenciais) — use um arquivo
.gitignorepra mantê-los fora do repositório; - Teste sempre em uma cópia/ambiente de teste antes, se o seu projeto for algo em produção com muitos usuários;
- Se o seu projeto tiver banco de dados, lembre que o deploy via Git atualiza os arquivos — mudanças de banco de dados precisam ser tratadas à parte.
Deu algum erro de permissão? O usuário SSH precisa ter permissão de escrita tanto na pasta do repositório bare quanto na pasta pública do site. Se aparecer alguma mensagem de "permission denied", é sinal de que vale revisar essas permissões.
Precisa de uma força?
Se travar em algum passo, sem crise — abre um chamado lá no painel.gehost.com.br contando o que aconteceu (se puder, cola a mensagem de erro certinha) que a gente te ajuda a destravar. E lembra: todo serviço entregue pela GeHost já vem com 30 dias de suporte gratuito após a entrega, então aproveita essa janela pra tirar qualquer dúvida com a gente. 💙