Como configurar deploy automático (CI/CD) do GitHub para o seu VPS na GeHost
Oi! Aqui é a Sensei 🥋, e hoje eu vou te ensinar uma mágica que separa quem "sobe site na mão" de quem tem um fluxo profissional de verdade: o deploy automático. Chega de entrar por FTP, arrastar arquivo e torcer pra não esquecer nada — com CI/CD, você dá um git push e, alguns segundos depois, seu projeto já está no ar, atualizado, sozinho. Bora com calma que eu te guio passo a passo.
O que é isso de "CI/CD", afinal?
Pensa assim: CI (Integração Contínua) é o robô testando/organizando seu código toda vez que você salva uma mudança no GitHub. CD (Entrega Contínua) é esse mesmo robô pegando essa versão pronta e publicando ela no seu servidor automaticamente. Ou seja: você programa no seu computador, manda pro GitHub, e o GitHub "empurra" a novidade pro seu VPS sozinho. Sem estresse, sem esquecimento, sem madrugada acordado fazendo upload manual.
Dica da Sensei: esse guia é voltado pra quem tem um VPS (servidor com acesso via SSH). Se a sua hospedagem é um dos planos de painel cPanel da GeHost, o fluxo de publicação é diferente — nesse caso, fale com o nosso suporte pra te orientar sobre a melhor forma de atualizar seu site.
O que você vai precisar antes de começar
- Um repositório do seu projeto no GitHub;
- Seu VPS contratado com a GeHost, com os dados de acesso (usuário, endereço e forma de autenticação) que você recebeu por e-mail no provisionamento ou pode conferir no painel.gehost.com.br;
- Um pouquinho de paciência na primeira vez — depois de configurado, é só usar 😉.
Passo 1 — Gere uma "chave de identidade" (chave SSH) só pra esse deploy
Em vez de deixar a senha do servidor guardada em algum lugar, o jeito seguro é criar um par de chaves SSH: uma fica no GitHub, a outra fica autorizada no seu VPS. No seu computador, abra o terminal e rode:
ssh-keygen -t ed25519 -C "deploy-github" -f chave_deploy
Isso vai gerar dois arquivos: chave_deploy (a chave privada — essa é secreta, vai só pro GitHub) e chave_deploy.pub (a chave pública — essa você autoriza no servidor).
Passo 2 — Autorize a chave pública no seu VPS
Conecte no seu VPS via SSH normalmente (com o usuário e acesso que a GeHost te passou) e adicione o conteúdo do arquivo chave_deploy.pub dentro do arquivo ~/.ssh/authorized_keys do usuário que vai fazer o deploy. Se tiver qualquer dúvida em como acessar seu VPS por SSH, é só chamar nosso suporte que a gente te ajuda a confirmar os dados de acesso.
Passo 3 — Guarde os segredos no GitHub (nunca no código!)
No seu repositório do GitHub, vá em Settings → Secrets and variables → Actions → New repository secret e cadastre, um de cada vez:
- VPS_HOST — o endereço do seu servidor (o que a GeHost te passou);
- VPS_USER — o usuário de acesso SSH;
- VPS_SSH_KEY — o conteúdo da chave privada (
chave_deploy) que você gerou no Passo 1; - VPS_PORT — a porta SSH (o padrão costuma ser 22, mas confira com o suporte se o seu servidor usa outra).
Por que Secrets e não deixar no código? Porque qualquer pessoa com acesso ao repositório veria sua chave privada. Guardando como "Secret", o GitHub esconde esse valor até dos próprios logs. Segurança em primeiro lugar, sempre!
Passo 4 — Crie o "robozinho" (workflow) do GitHub Actions
Dentro do seu projeto, crie o arquivo .github/workflows/deploy.yml com um conteúdo parecido com este (adapte o caminho da pasta do projeto no servidor e os comandos de build/restart para a stack que você usa):
name: Deploy para o VPS
on:
push:
branches: [ main ]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Conectar e atualizar o servidor
uses: appleboy/ssh-action@v1
with:
host: ${{ secrets.VPS_HOST }}
username: ${{ secrets.VPS_USER }}
key: ${{ secrets.VPS_SSH_KEY }}
port: ${{ secrets.VPS_PORT }}
script: |
cd /caminho/do/seu/projeto
git pull origin main
# troque pelos comandos do seu projeto, ex:
# npm install && npm run build && pm2 restart app
Repare no gatilho on: push: branches: [ main ] — é ele quem diz "sempre que alguém der push na branch principal, dispare o deploy". Você pode trocar pra outra branch se preferir.
Passo 5 — Teste a mágica
- Faça um
git add,git commitegit pushpra branch configurada; - No GitHub, vá na aba Actions do repositório e acompanhe o workflow rodando em tempo real;
- Se der tudo verde ✅, seu site/aplicação já foi atualizada no VPS sozinha!
- Se der vermelho ❌, clique no job pra ler o log do erro — geralmente é caminho de pasta errado, comando de build diferente do seu projeto, ou permissão de arquivo no servidor.
Boas práticas que a Sensei recomenda
- Nunca coloque senha, chave ou token direto no código ou no arquivo
.yml— use sempre os Secrets; - Rode o deploy primeiro numa branch de testes antes de ligar direto na
mainde produção; - Se sua aplicação usa um gerenciador de processos (como PM2, systemd, Docker etc.), inclua o comando de restart no final do script pra garantir que a versão nova realmente entrou no ar;
- Faça backup do seu projeto/banco antes de automatizar o primeiro deploy — assim você fica tranquilo pra testar sem medo.
Ficou com dúvida no meio do caminho? Sem problema nenhum — é bem comum na primeira configuração. É só chamar o nosso suporte pelo painel.gehost.com.br que a gente te ajuda a revisar os dados de acesso do seu VPS e destravar o que precisar.
Pronto! Agora seu fluxo de publicação ficou automático, seguro e no seu tempo. Bem-vindo(a) ao clube de quem só dá push e vai tomar um café ☕ enquanto o servidor se vira sozinho. Até a próxima aula!