Servidor & DevOps 48 visualizações

Como configurar um pipeline CI/CD simples com GitHub Actions para deploy no VPS

Ver no WHMCS

Como configurar um pipeline CI/CD simples com GitHub Actions para deploy no VPS

Olá, querido(a) desenvolvedor(a)!

Seja bem-vindo(a) ao seu primeiro passo rumo à automação e produtividade no mundo do desenvolvimento. Aqui, na GeHost, acreditamos que todo projeto merece um caminho claro, simples e humano — e é exatamente isso que vamos construir juntos hoje.

Imagine: você faz um commit no GitHub, e em poucos segundos, seu site é atualizado automaticamente no servidor. Sem precisar se lembrar de enviar arquivos manualmente. Isso é o que chamamos de CI/CD — Continuos Integration e Continuous Deployment. E o melhor? Você pode fazer isso com ferramentas gratuitas e poderosas, como o GitHub Actions.

Este guia vai te mostrar, passo a passo, como configurar um pipeline simples para deploy no seu VPS (servidor dedicado ou dedicado compartilhado), mesmo que você seja novo nisso. Vamos lá?

Pré-requisitos: o que você precisa ter

  • Um repositório no GitHub com seu projeto (HTML, CSS, JS, PHP, etc.).
  • Um servidor VPS com acesso SSH (seu servidor pode ser da GeHost ou de outra empresa).
  • Chave SSH pública gerada no seu computador (vamos usar para autenticar o acesso).
  • Permissão de acesso ao servidor via SSH (usuário e senha ou chave).

Dica do Sensei: Se você não tem um VPS ainda, pode começar com um plano de hospedagem da GeHost (como o Plus ou Médio), que já inclui acesso ao cPanel e FTP. Mas para CI/CD com GitHub Actions, é melhor ter um VPS com SSH ativado.

Passo 1: Gerar uma chave SSH no seu computador

Abra o terminal (ou Git Bash no Windows) e digite:

ssh-keygen -t ed25519 -C "seu-email@dominio.com"

Pressione Enter em todos os prompts para aceitar os valores padrão. Isso criará duas chaves:

  • ~/.ssh/id_ed25519 — sua chave privada (não compartilhe!)
  • ~/.ssh/id_ed25519.pub — sua chave pública (vamos usar isso no servidor)

Abra a chave pública com:

cat ~/.ssh/id_ed25519.pub

Copie todo o conteúdo (começa com ssh-ed25519 e termina com seu e-mail).

Passo 2: Adicionar a chave pública ao seu VPS

Entre no seu servidor via SSH (usando o terminal ou cliente como PuTTY). Você pode usar o painel do seu provedor (como o painel da GeHost) para acessar o servidor.

Depois de logado, vá para o diretório do usuário (geralmente /home/seu-usuario) e crie a pasta .ssh:

mkdir -p ~/.ssh

Abra o arquivo authorized_keys com um editor de texto (como nano):

nano ~/.ssh/authorized_keys

Cole a chave pública que você copiou anteriormente. Salve com Ctrl + O, depois Enter, e saia com Ctrl + X.

Defina as permissões corretas:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

Pronto! Agora seu servidor aceita conexões SSH com a chave pública.

Passo 3: Criar um arquivo de pipeline no GitHub

No seu repositório no GitHub, crie uma nova pasta chamada .github/workflows. Dentro dela, crie um arquivo chamado deploy.yml.

Abra esse arquivo e cole o seguinte conteúdo:

name: Deploy to VPS

on:
  push:
    branches:
      - main

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Deploy via SSH
        uses: appleboy/ssh-action@v0.1.6
        with:
          host: ${{ secrets.HOST }}
          username: ${{ secrets.USERNAME }}
          key: ${{ secrets.SSH_KEY }}
          script: |
            cd /home/$USERNAME/public_html
            git pull origin main
            echo "Deploy realizado com sucesso!"

Essa é a base do seu pipeline. Ele vai rodar sempre que você fizer um push no branch main.

Passo 4: Adicionar as credenciais no GitHub

Volte ao seu repositório no GitHub. Vá em Settings → Secrets and variables → Actions.

Clique em New repository secret e crie três variáveis:

  • HOST: o IP ou domínio do seu servidor (ex: 123.45.67.89 ou seu-servidor.com.br)
  • USERNAME: o nome do usuário SSH no servidor (ex: meuusuario)
  • SSH_KEY: a chave privada (não a pública!) gerada anteriormente. Copie tudo, incluindo -----BEGIN ED25519 PRIVATE KEY----- e -----END ED25519 PRIVATE KEY-----.

Atenção: A chave privada deve ser copiada exatamente como é — sem quebras de linha extras, sem espaços. Se tiver erro, o deploy falhará.

Importante: Nunca compartilhe sua chave privada. O GitHub armazena essas variáveis com segurança. Se você precisar, pode gerar uma nova chave a qualquer momento.

Passo 5: Testar o pipeline

Volte ao seu repositório e faça um pequeno commit (ex: alterar um texto no index.html). Faça o push no branch main.

Vá para a aba Actions no GitHub. Você verá o pipeline rodando. Espere alguns segundos e veja se aparece "Deploy realizado com sucesso!".

Depois, acesse seu site. Se o conteúdo foi atualizado, parabéns! Você acabou de automatizar seu deploy com CI/CD.

Passo 6: (Opcional) Adicionar um webhook para atualizar o site automaticamente

Se você quiser que o site seja atualizado sempre que o código mudar, você pode configurar o servidor para aceitar o git pull diretamente. No seu servidor, no diretório do site (ex: /home/seu-usuario/public_html), execute:

git init
git config user.name "seu-nome"
git config user.email "seu-email@dominio.com"
git remote add origin git@github.com:seu-usuario/seu-repositorio.git
git fetch origin
git checkout main

Assim, o git pull no pipeline funcionará corretamente.

Conclusão: você está no caminho certo

Parabéns, Sensei do futuro! Você acabou de construir um pipeline de CI/CD com GitHub Actions, deploy automático no seu VPS e tudo isso com ferramentas gratuitas e seguras.

Se precisar de ajuda com o acesso ao servidor, verificação de permissões ou configuração de SSH, lembre-se: o suporte da GeHost está aqui para você — e está incluso nos primeiros 30 dias após a entrega.

Seu projeto está no ar, seu tempo está livre, e seu código está mais poderoso do que nunca.

Com carinho,
Sensei da GeHost
— Raphael Neves Koga, dono da G e Soluções e Eventos LTDA (CNPJ: 46.647

Precisa de Ajuda?

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