Plataforma de operações leve e sem agentes para pequenas e médias empresas, com gerenciamento de hosts, comandos em lote, SSH pela web, releases, pipelines e monitoramento.
adnanh/webhook
Um servidor leve em Go que expõe endpoints HTTP de webhook para executar comandos de shell configurados, repassando dados da requisição como argumentos ou variáveis de ambiente.
- Estrelas
- 12,207
- Forks
- 882
- Issues abertas
- 128
- Último commit
- há 2 meses
O que é?
webhook é um pequeno programa em Go que transforma requisições HTTP recebidas em execuções de comandos de shell. Você define hooks em um arquivo JSON ou YAML, cada um com um ID que se torna um endpoint, como /hooks/redeploy-webhook. Quando uma requisição chega, webhook analisa os headers, o payload e as variáveis da query, verifica as regras de trigger configuradas e repassa os valores ao script como argumentos de linha de comando ou variáveis de ambiente.
As regras de trigger permitem restringir quando um hook é acionado, por exemplo, exigindo um segredo, correspondência com um valor no payload ou permitindo apenas determinados intervalos de IP. Os hooks podem ser carregados de um template, servidos por HTTPS, executados atrás de um reverse proxy em uma porta TCP ou em um Unix socket e iniciados por meio da ativação de socket do systemd. Há suporte limitado a dados de formulário multipart.
webhook limita intencionalmente seu escopo a receber requisições e invocar comandos; o comportamento do próprio script fica a cargo do usuário.
Recursos principais
- 01Define hooks em JSON ou YAML, cada um exposto como um endpoint HTTP.
- 02Repassa headers, payload e valores da query da requisição aos comandos como argumentos ou variáveis de ambiente.
- 03Oferece regras de trigger, como correspondência de segredo e listas de IPs permitidos.
- 04Pode servir hooks por HTTPS e ser executado atrás de um reverse proxy via TCP ou Unix socket.
- 05Oferece suporte à ativação de socket do systemd e a arquivos de configuração com templates Go.
Casos de uso
- Acionar um script de redeploy quando código é enviado para uma branch do GitHub ou Bitbucket.
- Executar jobs de CI ou build a partir de comandos slash do Slack ou Mattermost.
- Permitir que uma integração de chat execute um comando no servidor e responda com o resultado.
Início rápido
- 1
Compile a partir do código-fonte com Go 1.21 ou superior
go build github.com/adnanh/webhook - 2
Crie um arquivo hooks.json definindo seus hooks
- 3
Inicie o webhook em modo verbose com o arquivo de hooks
/path/to/webhook -hooks hooks.json -verbose
Antes de usar
- Os hooks executam comandos shell no seu servidor; configure as regras de acionamento e os secrets para evitar execuções não autorizadas.
- As regras da lista de permissões de IP não funcionam como esperado atrás de um proxy reverso.
Em coleções
Tópicos
Perguntas frequentes
- O que é webhook?
- Um servidor leve em Go que expõe endpoints HTTP de webhook para executar comandos de shell configurados, repassando dados da requisição como argumentos ou variáveis de ambiente. webhook é um pequeno programa em Go que transforma requisições HTTP recebidas em execuções de comandos de shell. Você define hooks em um arquivo JSON ou YAML, cada um com um ID que se torna um endpoint, como /hooks/redeploy-webhook. Quando uma requisição chega, webhook analisa os headers, o payload e as variáveis da query, verifica as regras de trigger configuradas e repassa os valores ao script como argumentos de linha de comando ou variáveis de ambiente.
- webhook é gratuito? Qual é a licença?
- webhook é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- webhook ainda é mantido?
- Atualizado nos últimos 6 meses. O último commit de webhook foi em 4 de set. de 2026.
- Para que posso usar webhook?
- Acionar um script de redeploy quando código é enviado para uma branch do GitHub ou Bitbucket. Executar jobs de CI ou build a partir de comandos slash do Slack ou Mattermost. Permitir que uma integração de chat execute um comando no servidor e responda com o resultado.
- Como instalar webhook?
- Compile a partir do código-fonte com Go 1.21 ou superior: go build github.com/adnanh/webhook Crie um arquivo hooks.json definindo seus hooks Inicie o webhook em modo verbose com o arquivo de hooks: /path/to/webhook -hooks hooks.json -verbose
- Onde consigo webhook?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/adnanh/webhook
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Um mecanismo de CI/CD auto-hospedado que executa pipelines definidos em arquivos de configuração dentro de containers, com extensibilidade por meio de plugins.
Uma GitHub Action que executa comandos em servidores remotos via SSH nos seus workflows de CI/CD.
Sistema web de deploy self-hosted para publicar e reverter versões com um clique, com terminal, SFTP, cron e monitoramento de servidores.
Aplicação web auto-hospedada para provisionar, gerenciar e implantar aplicações PHP, como Laravel, nos seus próprios servidores.
Uma ferramenta de linha de comando enxuta para fazer deploy de funções AWS Lambda, com suporte a rollback, invocação, logs e diff.