Criei o DeployHub: um gerenciador leve de CI/CD via Webhooks e Nginx VirtualHosts em PHP/Bash
Se você abrir a documentação oficial das grandes ferramentas de CI/CD ou seguir os tutoriais da moda, a receita é sempre a mesma: conecte seu repositório a pipelines complexos, configure runners externos, pague por minutos de execução ou suba clusters com Docker, Coolify, Portainer ou Kubernetes.
Não me entenda mal: essas ferramentas são incríveis para quem tem orçamento corporativo ou capital de risco para queimar. Mas quando olhei para a fatura e para a complexidade exigida só para colocar aplicações simples no ar em uma VPS de 1 GB ou 2 GB de RAM, eu simplesmente me senti pobre.
Não fazia sentido eu gastar recursos preciosos da máquina (ou do bolso) apenas para fazer um deploy.
Por isso decidi criar o DeployHub (Webhook CI/CD Manager): uma ferramenta 100% open source, pensada para quem tem servidor próprio (self-hosted) e quer automação real direto no sistema operacional, sem pagar pedágio.
"Qualquer um faz isso com IA hoje..." — Mas quem realmente botou pra rodar?
Hoje em dia, qualquer pessoa pode abrir um prompt de IA e pedir um script de deploy. Só que da teoria ao terminal existe um abismo:
- Lidar com permissões reais de Linux (
www-data, grupos, permissões775). - Não abrir brechas de segurança como um
sudo sudescontrolado. - Validar criptograficamente o webhook que chega do GitHub com HMAC-SHA256.
- Fazer a sincronização do Git sem quebrar a pasta em produção (
git clean/reset). - Validar a sintaxe do Nginx com
nginx -tantes de recarregar o daemon para não derrubar os outros sites do servidor.
O código foi construído com PHP 8.2+ (CodeIgniter 4) no backend, scripts em Bash bem amarrados e uma interface limpa com Tailwind CSS.
💡 Como a arquitetura funciona na prática
Em vez de deixar agentes pesados consumindo 400 MB de RAM no servidor, o DeployHub fica dormindo até que um evento real aconteça:
[ Push no GitHub ]
│ (POST assinado com HMAC-SHA256)
▼
[ DeployHub Webhook ] ──▶ Valida Assinatura ──▶ Dispara Rotina Bash da Stack
│
┌────────────────────────────────────────────┴──────────────────────┐
▼ ▼
[ Deploy Automatizado ] [ Gestão de VirtualHosts ]
• Git sync limpo • Criação de Server Blocks
• Dependências (Composer/NPM) • Teste prévio com `nginx -t`
• Migrations + Backup do MySQL • Reload seguro do PHP-FPM
• Reload da aplicação (Artisan/PM2) • Certificados SSL com Certbot
⚙️ O que ele já faz hoje
- GitHub Webhook Seguro: Validação rigorosa via header
X-Hub-Signature-256. Se o payload ou o segredo não baterem, o comando nem é enfileirado. - Pipelines sob medida por Stack:
- Laravel: Ativa modo de manutenção (
artisan down), sincroniza Git, rodacomposer install, compila assets via Vite, roda migrations e reativa a aplicação (artisan up). - CodeIgniter 4: Atualização de dependências Composer, migrations de banco e sincronização da branch.
- Node.js / PM2: Instalação de pacotes via
npme reload gracioso de processos sem downtime com o PM2. - Sites Estáticos / Legados: Deploy direto e rápido.
- Laravel: Ativa modo de manutenção (
- Provisionador de Nginx no Painel: Cria novos domínios, configura sockets PHP-FPM ou reverse proxies e só recarrega o Nginx se o teste
nginx -tpassar com sucesso. - Logs e Depuração em Tempo Real: Os logs ficam gravados em
writable/logs/deploy/com flags estritas de shell (set -eeset -x), permitindo ver exatamente em qual linha um comando falhou. - Permissões Granulares no Linux: Você não roda a aplicação como root. Apenas comandos específicos recebem autorização via
sudoers:echo "www-data ALL=(ALL) NOPASSWD: /bin/systemctl reload php8.4-fpm" | sudo tee /etc/sudoers.d/deploy-php-fpm
Por que estou compartilhando isso aqui?
Eu poderia ter guardado essa ferramenta apenas para os meus próprios servidores. Mas o ecossistema dev só evolui quando a gente resolve uma dor real nossa e disponibiliza a solução para que outros não precisem passar pelo mesmo perrengue.
Não adianta postar isso em redes sociais corporativas cheias de bots e aparências; o lugar para discutir código, infraestrutura e soluções de verdade é com a comunidade técnica.
O projeto é 100% aberto sob licença MIT. Quem quiser usar em suas VPS, clonar, testar, encontrar bugs ou mandar PRs para adicionar novas stacks (Python, Go, Docker, etc.), será muito bem-vindo:
👉 Repositório: https://github.com/castrohs/webhook-cicd-manager
Gostaria de ouvir de quem também gerencia servidores próprios: como vocês costumam resolver o deploy contínuo em VPS enxutas sem estourar o orçamento?