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.mde umindex.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.
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:
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,