Servidor & DevOps 31 visualizações

Como configurar um pipeline simples de CI/CD para publicar automaticamente no VPS

Ver no WHMCS

Como configurar um pipeline simples de CI/CD para publicar automaticamente no VPS

Olá, querido(a) desenvolvedor(a) e amigo(a) da GeHost! 🌟

Se você já tem um site ou aplicação em desenvolvimento e quer deixar o processo de publicação mais rápido, seguro e sem precisar se lembrar de "fazer upload" toda hora, você está no lugar certo. Hoje, vamos aprender, de forma simples e prática, como montar um pipeline de CI/CD (Integração Contínua e Entrega Contínua) para publicar automaticamente seu projeto no seu servidor (VPS) — mesmo que você não seja um expert em DevOps.

Imagine: você faz um commit no GitHub, e em segundos, seu site já está atualizado no servidor. Isso é possível — e hoje, você vai fazer isso com a GeHost ao seu lado. Vamos lá, com calma, passo a passo. Você é capaz! 💪

Antes de começar: entenda o que está por trás

Antes de mergulhar nos passos, vamos entender o que são CI e CD:

  • CI (Integração Contínua): todo código novo que você envia é testado automaticamente.
  • CD (Entrega Contínua): quando o código passa nos testes, ele é publicado automaticamente.

Neste guia, vamos focar no CD: a publicação automática no seu servidor. Vamos usar o GitHub como repositório e o GitHub Actions como motor do pipeline. O servidor (VPS) será seu ambiente de produção — e vamos usar SSH para conectar e atualizar o site.

Passo 1: Prepare seu projeto no GitHub

Seu código precisa estar em um repositório público ou privado no GitHub. Certifique-se de que:

  • O projeto tenha um arquivo index.html ou app.php (ou outro arquivo principal).
  • O repositório esteja configurado com um branch principal (geralmente chamado main ou master).

Se precisar, crie um novo repositório no GitHub e faça o primeiro commit com seu código.

Passo 2: Acesse o painel do seu VPS via SSH

Para que o GitHub Actions possa publicar no seu VPS, você precisa permitir acesso por SSH. Siga os passos:

  1. Entre no painel do cliente da GeHost.
  2. No menu, vá em Gerenciamento de Servidores ou SSH (se seu plano incluir acesso SSH).
  3. Confira se o acesso SSH está ativado. Caso não esteja, entre em contato com o suporte (não é possível ativar por conta própria).
  4. Se tiver acesso, anote o IP do servidor (você pode ver no painel) e o nome de usuário (geralmente root ou um usuário criado).

Passo 3: Gere uma chave SSH para o GitHub Actions

Para que o GitHub Actions possa se conectar ao seu VPS sem senha, precisamos de uma chave SSH. Faça isso no seu computador local:

  1. Abra o terminal (ou Git Bash no Windows).
  2. Execute: ssh-keygen -t ed25519 -C "github-actions@gehost.com.br"
  3. Pressione Enter para aceitar o local padrão (~/.ssh/id_ed25519).
  4. Deixe a senha vazia (não coloque senha).
  5. Depois de gerado, copie a chave pública: cat ~/.ssh/id_ed25519.pub

Essa chave pública é o que você vai colar no servidor.

Passo 4: Adicione a chave no seu VPS

Conecte-se ao seu VPS via SSH e faça o seguinte:

  1. Entre no diretório do usuário: cd /home/seu-usuario/.ssh
  2. Crie o arquivo authorized_keys (se não existir): touch authorized_keys
  3. Abra o arquivo: nano authorized_keys
  4. Coloque a chave pública que você copiou no passo anterior.
  5. Salve com Ctrl + O, depois Enter, e saia com Ctrl + X.
  6. Defina permissões corretas: chmod 600 authorized_keys

Pronto! Agora o GitHub Actions pode se conectar ao seu servidor com segurança.

Passo 5: Configure o GitHub Actions

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 (ajuste os valores conforme seu caso):

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.5
        with:
          host: ${{ secrets.VPS_HOST }}
          username: ${{ secrets.VPS_USER }}
          key: ${{ secrets.VPS_SSH_KEY }}
          script: |
            cd /home/seu-usuario/public_html
            git pull origin main
            echo "Deploy concluído!"

⚠️ Importante: Substitua seu-usuario pelo nome do usuário do seu VPS. O caminho /home/seu-usuario/public_html é comum, mas verifique no painel da GeHost se seu site está em outro diretório.

Passo 6: Guarde as credenciais no GitHub

As credenciais (IP, usuário e chave SSH) não podem ficar no código. Você precisa salvá-las como secrets no GitHub:

  1. No repositório no GitHub, vá em Settings → Secrets and variables → Actions.
  2. Clique em New repository secret.
  3. Crie três segredos:
    • NAME: VPS_HOST → VALUE: o IP do seu VPS
    • NAME: VPS_USER → VALUE: o nome de usuário do VPS
    • NAME: VPS_SSH_KEY → VALUE: a chave privada (a que você gerou com ssh-keygen — o arquivo id_ed25519, sem o .pub)

⚠️ Atenção: a chave privada deve ser copiada inteira, incluindo as linhas -----BEGIN OPENSSH PRIVATE KEY----- e -----END OPENSSH PRIVATE KEY-----. Não coloque aspas.

Passo 7: Teste o pipeline

Volte ao seu repositório no GitHub. Faça uma alteração no código (por exemplo, altere uma linha em index.html) e faça um commit e push.

Em alguns segundos, vá para Actions no GitHub e veja o pipeline rodando. Se tudo estiver certo, você verá uma mensagem de sucesso!

Depois, acesse seu site e veja a mudança aparecendo — automaticamente! 🎉

Dica do Sensei

Se algo não funcionar, verifique:

  • Se a chave SSH está no authorized_keys no servidor.
  • Se o caminho do diretório (public_html) está correto.
  • Se os secrets no GitHub estão com os valores exatos (sem espaços extras).
  • Se o VPS permite conexões SSH do GitHub (verifique no painel da GeHost).
Precisa de Ajuda?

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