Como configurar um pipeline simples de deploy automático (CI/CD) para o VPS imprimir

  • 0

Como configurar um pipeline simples de deploy automático (CI/CD) para o seu VPS na GeHost

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

Seja bem-vindo(a) ao seu primeiro passo rumo à automação — e sim, mesmo com um plano de hospedagem compartilhada, é possível montar um pipeline de deploy automático (CI/CD) simples e poderoso. Aqui, você vai aprender como fazer isso com calma, passo a passo, como se fosse um treinamento com o Sensei da GeHost.

💡 Dica do Sensei: Não se preocupe se o seu plano não tem acesso root — o que você vai montar aqui funciona perfeitamente com o cPanel e o acesso via SSH (disponível em planos mais altos). Se não tiver, consulte seu plano no painel para confirmar se o SSH está habilitado.

Passo 1: Prepare seu projeto no GitHub (ou outro repositório)

Antes de qualquer coisa, tenha seu código pronto e armazenado em um repositório público ou privado no GitHub, GitLab ou Bitbucket.

  • Garanta que o código está em um repositório com um README.md e um index.html (ou arquivo principal da sua aplicação).
  • Se for um site estático (HTML, CSS, JS), perfeito! Se for algo dinâmico (PHP, Node.js), também funciona — desde que o ambiente esteja configurado.

Relembre: Seu projeto deve ser simples o suficiente para que o deploy automático funcione sem complicações. Comece com um site estático, depois evolua.

Passo 2: Acesse o painel do cPanel

Entre no painel do cliente da GeHost: painel.gehost.com.br.

Logue com seu usuário e senha. Você verá a tela principal do cPanel.

Tela de login do cPanel com campos Usuário e Senha, e botão Log in

Passo 3: Ative o SSH (se disponível)

Se seu plano permitir, você precisará de acesso via SSH para automatizar o deploy.

Na barra lateral do cPanel, procure por SSH Access (geralmente no grupo "Segurança").

Se não aparecer, confirme com o suporte se seu plano inclui acesso SSH. Alguns planos não têm essa opção — mas mesmo assim, você pode usar métodos alternativos (como scripts via FTP ou webhook).

Passo 4: Crie um usuário de deploy no servidor

Para segurança, não use o usuário principal para deploy automático.

Na tela do cPanel, vá até Usuários do Sistema (em "Segurança") e crie um novo usuário com permissão para acessar a pasta public_html do seu domínio.

Exemplo:

  • Nome de usuário: deployer
  • Senha: use uma forte, mas memorável
  • Permissões: permita acesso à pasta do domínio

🔐 Importante: Nunca use senhas frágeis. Use um gerenciador de senhas se precisar.

Passo 5: Configure o acesso via SSH com chave pública

Para não precisar digitar senha toda vez, configure uma chave SSH.

No seu computador (local), gere uma chave SSH:

ssh-keygen -t rsa -b 4096 -C "deploy@meu-site.com"

Depois, copie a chave pública (geralmente em ~/.ssh/id_rsa.pub) e cole no arquivo ~/.ssh/authorized_keys no servidor, dentro da pasta do usuário deployer.

Se não souber como fazer isso, use o Gerenciador de Arquivos do cPanel:

Tela do Gerenciador de Arquivos com árvore de pastas e barra de ações

Entre na pasta home/deployer/.ssh/ e crie/edite o arquivo authorized_keys, colando a chave pública.

Passo 6: Configure o script de deploy no servidor

No servidor, crie um script que será executado quando o GitHub enviar uma atualização.

Use o terminal (SSH) para criar um arquivo chamado deploy.sh na pasta do usuário:

cd /home/deployer
touch deploy.sh
chmod +x deploy.sh

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

#!/bin/bash
cd /home/deployer/public_html
git pull origin main
echo "Deploy concluído com sucesso!"

💡 Dica: Substitua main pelo nome da sua branch principal (ex: master).

Passo 7: Configure o webhook no GitHub

Volte ao seu repositório no GitHub.

Vá em Settings → Webhooks → Add webhook.

Configure assim:

  • Payload URL: https://seu-dominio.com/deploy.php (substitua pelo seu domínio)
  • Content type: application/json
  • Events: Push

Crie um arquivo chamado deploy.php na pasta public_html com este conteúdo:

<?php
$signature = $_SERVER['HTTP_X_HUB_SIGNATURE_256'] ?? '';
$payload = file_get_contents('php://input');
$secret = 'sua_chave_secreta_aqui'; // Troque por uma senha forte

if (!hash_equals(hash_hmac('sha256', $payload, $secret), $signature)) {
    http_response_code(403);
    echo "Acesso negado.";
    exit;
}

$cmd = 'cd /home/deployer && /home/deployer/deploy.sh';
exec($cmd, $output, $return_code);

if ($return_code === 0) {
    echo "Deploy iniciado com sucesso.";
} else {
    echo "Erro no deploy: " . implode("\n", $output);
}
?>

🔑 Atenção: A chave secreta deve ser a mesma em ambos os lados (GitHub e servidor). Use uma senha forte e nunca a compartilhe.

Passo 8: Teste o pipeline

Faça um pequeno commit no GitHub (ex: altere o index.html).

Veja se o webhook foi acionado. Você pode verificar no Log de Acesso do cPanel (em "Logs") ou no arquivo deploy.php com um echo "Teste" . date('Y-m-d H:i:s'); temporário.

Se tudo der certo, o código será atualizado automaticamente no servidor!

Pronto! Você está no CI/CD!

Parabéns, guerreiro da automação! Você acabou de criar um pipeline simples de deploy automático — sem precisar fazer upload manual, sem perder tempo, sem erros humanos.

Este é o primeiro passo. Depois, você pode adicionar testes automatizados, notificações por e-mail, backup antes do deploy, e muito mais.

🌱 Leve em conta: A GeHost é seu parceiro nesta jornada. Se precisar de ajuda, entre em contato com o suporte — ele está disponível por 30 dias após a entrega. E lembre-se: tudo que você precisa está no painel do cliente.

Seu projeto está vivo, atualizado, e você está livre para criar. Que a força do código esteja com você.

Com carinho,


Esta resposta lhe foi útil?

« Retornar