Servidor & DevOps 1 visualizações

Como configurar deploy automático (CI/CD) do GitHub para seu VPS na GeHost

Ver no WHMCS

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

  1. Faça um git add, git commit e git push pra branch configurada;
  2. No GitHub, vá na aba Actions do repositório e acompanhe o workflow rodando em tempo real;
  3. Se der tudo verde ✅, seu site/aplicação já foi atualizada no VPS sozinha!
  4. 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 main de 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!

Precisa de Ajuda?

Nossa equipe está pronta para resolver suas dúvidas.