Servidor & DevOps 32 visualizações

Como automatizar o deploy de uma aplicação com GitHub Actions no VPS da GeHost

Ver no WHMCS

Automatizando o deploy com GitHub Actions na hospedagem GeHost

Oi! Aqui é a Sensei da GeHost 🧠 Se você já se cansou de subir arquivo por FTP toda vez que atualiza o site, esse guia é pra você. Vamos configurar o GitHub Actions para que, a cada push no seu repositório, o código seja enviado automaticamente para a sua hospedagem — sem drama, sem esquecer nenhum arquivo.

Dica da Sensei: automação é ótima, mas o primeiro deploy automático deve sempre ser testado num ambiente que você possa reverter fácil (tenha um backup recente antes de começar). Sem pressa, um passo de cada vez.

O que você vai precisar antes de começar

  • Uma conta no GitHub com o projeto já versionado (repositório).
  • Acesso ao painel.gehost.com.br (ou ao cPanel da sua hospedagem).
  • Saber se o seu plano tem acesso via FTP/SFTP ou SSH — isso varia de plano para plano, então confira no painel ou pergunte ao suporte antes de seguir.

Passo a passo

1. Confirme como você acessa seus arquivos

A forma mais comum e disponível em praticamente toda hospedagem cPanel é o FTP/SFTP. É por aí que vamos seguir neste guia. Se o seu plano contar com acesso SSH, isso também é possível, mas confirme com o suporte antes — cada plano tem suas particularidades.

Painel inicial do cPanel com os grupos de ferramentas

2. Crie uma conta FTP dedicada só para o deploy

No cPanel, procure por "Contas FTP". Em vez de usar o usuário principal da hospedagem, crie um usuário novo, exclusivo para o GitHub Actions, e aponte o diretório dele exatamente para a pasta do seu site (normalmente public_html ou uma subpasta dela).

  1. Escolha um nome de usuário só para isso (ex.: deploy).
  2. Gere uma senha forte — o próprio cPanel sugere uma boa opção.
  3. Defina o diretório exatamente como a pasta onde o site deve ficar.
  4. Anote o endereço do servidor FTP, o usuário e a senha. Você vai precisar deles no próximo passo.
Dica da Sensei: nunca use a conta FTP principal da hospedagem para automações. Se algo vazar, você troca só a senha dessa continha dedicada — sem afetar o resto da sua conta.

3. Guarde as credenciais como "Secrets" no GitHub

No seu repositório do GitHub, vá em Settings → Secrets and variables → Actions e crie os seguintes segredos:

  • FTP_SERVER — o endereço do servidor FTP que você anotou.
  • FTP_USERNAME — o usuário criado no passo anterior.
  • FTP_PASSWORD — a senha dessa conta.

Isso mantém suas credenciais seguras — elas nunca ficam expostas no código do repositório.

4. Crie o arquivo do workflow

Dentro do seu repositório, crie o arquivo .github/workflows/deploy.yml com um conteúdo parecido com este:

name: Deploy para GeHost

on:
  push:
    branches:
      - main

jobs:
  ftp-deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Baixar código
        uses: actions/checkout@v4

      - name: Enviar arquivos via FTP
        uses: SamKirkland/FTP-Deploy-Action@v4.3.5
        with:
          server: ${{ secrets.FTP_SERVER }}
          username: ${{ secrets.FTP_USERNAME }}
          password: ${{ secrets.FTP_PASSWORD }}
          local-dir: ./
          server-dir: ./

Esse workflow diz: "toda vez que alguém der push na branch main, envie os arquivos para a hospedagem via FTP". Se o seu projeto precisa de um passo de build antes (como um npm run build), inclua esse passo antes do envio, e mude local-dir para a pasta gerada pelo build (ex.: ./dist/).

5. Teste com um push

  1. Faça um pequeno commit e dê push na branch configurada.
  2. Vá na aba Actions do GitHub e acompanhe a execução em tempo real.
  3. Se der tudo certo, você verá um "check" verde ao final.

6. Confira o resultado no Gerenciador de Arquivos

Volte ao cPanel e abra o Gerenciador de Arquivos para confirmar que os arquivos chegaram na pasta certa.

Gerenciador de Arquivos do cPanel mostrando a árvore de pastas

Problemas comuns

  • "Connection refused" ou timeout: revise o endereço do servidor FTP e se a conta FTP foi criada corretamente.
  • Arquivos foram parar na pasta errada: confira o campo "diretório" da conta FTP e o valor de server-dir no workflow.
  • Deploy funciona mas o site não atualiza: verifique se existe cache no seu navegador ou em algum plugin/CDN do seu site.
Dica da Sensei: comece testando esse fluxo num subdomínio ou numa pasta de testes antes de apontar o deploy automático direto pro site principal. Assim você ganha confiança sem correr risco.

Precisa de ajuda?

Se travar em algum passo, ou não tiver certeza sobre qual forma de acesso (FTP/SFTP ou SSH) está disponível no seu plano, fale com o suporte da GeHost pelo painel.gehost.com.br. A gente te ajuda a destravar. 💙

Precisa de Ajuda?

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