Como configurar um webhook para reiniciar automaticamente um serviço após o deploy
Olá, querido(a) desenvolvedor(a) e amig@ do mundo digital! 🌟
Se você está aqui, é porque quer deixar sua aplicação mais inteligente, mais responsiva e, acima de tudo, mais tranquila — sem precisar ficar clicando em botões para reiniciar o serviço depois de cada atualização. Que bom que você escolheu a GeHost para isso! 💪
Hoje, vou te ensinar, com carinho e clareza, como configurar um webhook que, assim que você fizer um deploy (atualização) em seu site ou aplicativo, automaticamente reinicia o serviço que ele depende — como um servidor Node.js, PHP com processos em segundo plano, ou qualquer outro que precise "acordar" após a atualização.
Antes de começar: entenda o que é um webhook
Imagine um alarme de porta: toda vez que alguém entra ou sai, ele toca. Um webhook é exatamente isso, mas no mundo digital: é uma mensagem enviada automaticamente para um endereço específico (uma URL) quando algo acontece — como um novo código sendo enviado ao seu servidor.
💡 Dica do Sensei: O webhook não é o serviço em si. É o gatilho que diz: "Ei, acabou o deploy! Vamos acordar o serviço agora!"
Passo a passo: como configurar o webhook no cPanel da GeHost
Para fazer isso, vamos usar o cPanel — o painel de controle da sua hospedagem. Vamos lá, com calma e foco!
Entre no cPanel
Abra seu navegador e acesse painel.gehost.com.br. Faça login com seu usuário e senha.
Encontre a ferramenta de "Webhooks" (ou simule um)
Infelizmente, o cPanel não tem um botão chamado "Webhooks" diretamente. Mas não se preocupe! Vamos simular o comportamento com um arquivo PHP que atua como o "receptor" do webhook.
Esse arquivo vai ficar no seu servidor e, quando receber uma requisição, vai executar o comando de reinício do serviço.
Crie um arquivo PHP para receber o webhook
Use o Gerenciador de Arquivos do cPanel para criar um arquivo chamado
webhook-restart.phpdentro da pastapublic_html(ou na pasta raiz do seu site).
Dentro desse arquivo, cole este código simples:
<?php // Arquivo: webhook-restart.php // Este arquivo recebe o webhook e reinicia o serviço // Verifica se a requisição é POST if ($_SERVER['REQUEST_METHOD'] !== 'POST') { http_response_code(405); echo 'Método não permitido'; exit; } // Verifica se o conteúdo é JSON (opcional, mas recomendado) $content = file_get_contents('php://input'); if (!$content) { http_response_code(400); echo 'Nenhum dado recebido'; exit; } // Aqui você coloca o comando que reinicia seu serviço // Exemplo para Node.js (ajuste conforme seu caso): $command = 'pm2 restart seu_nome_do_processo'; // Executa o comando (só se permitido no seu plano) $output = shell_exec($command); // Responde com sucesso http_response_code(200); echo 'Serviço reiniciado com sucesso!'; ?>Importante: Substitua
seu_nome_do_processopelo nome real do seu processo (ex:app.js,server, etc.). Se não souber, consulte seu arquivo de configuração ou opm2 listno terminal (se disponível).Proteja seu webhook
Como esse arquivo está acessível via URL, é essencial protegê-lo. Caso contrário, qualquer pessoa poderia reiniciar seu serviço!
Para isso, você pode usar um token de segurança. Altere o código para verificar um token:
<?php $token = 'seu_token_seguro_aqui'; // Altere para um valor único e secreto if ($_SERVER['REQUEST_METHOD'] !== 'POST') { http_response_code(405); exit; } $input = json_decode(file_get_contents('php://input'), true); if (!isset($input['token']) || $input['token'] !== $token) { http_response_code(403); echo 'Acesso negado'; exit; } // Execute o comando de reinício $command = 'pm2 restart seu_nome_do_processo'; $output = shell_exec($command); http_response_code(200); echo 'Serviço reiniciado com sucesso!'; ?>Salve o arquivo novamente com o token seguro. Esse token será usado no seu sistema de deploy.
Teste o webhook localmente
Antes de usar em produção, teste o arquivo. Você pode usar o curl no terminal ou uma ferramenta como Postman para enviar uma requisição POST com JSON:
curl -X POST \ https://seu-dominio.com/webhook-restart.php \ -H "Content-Type: application/json" \ -d '{"token": "seu_token_seguro_aqui"}'Se tudo funcionar, você verá a mensagem:
Serviço reiniciado com sucesso!Configure seu sistema de deploy para chamar o webhook
Se você usa GitHub Actions, GitLab CI, ou outro sistema de CI/CD, configure-o para enviar uma requisição POST para o URL do seu webhook após o deploy:
POST https://seu-dominio.com/webhook-restart.php Content-Type: application/json { "token": "seu_token_seguro_aqui" }Pronto! Agora, toda vez que você atualizar o código, o webhook será acionado e o serviço será reiniciado automaticamente.
Quer saber mais? Aqui vai um bônus do Sensei:
- Não use comandos perigosos: Evite comandos como
rm -rfourebootno webhook. Isso pode afetar o servidor inteiro. - Verifique o plano: Alguns recursos como
shell_execpodem estar desativados em planos mais básicos. Confira seu plano no painel do cliente. - Use logs: Adicione um
file_put_contents('log.txt', $output);no arquivo PHP para registrar erros e ajudar na depuração.
Conclusão: automação com propósito
Configurar um webhook não é só técnica — é sobre confiança. É saber que, depois de cada atualização, seu sistema acorda sozinho, como um amigo fiel.
Se tiver dúvidas, não hesite em entrar em contato com nosso su