Repolode
adnanh

adnanh/webhook

Un servidor ligero en Go que expone endpoints HTTP para ejecutar comandos de shell configurados y pasarles datos de la solicitud como argumentos o variables de entorno.

Estrellas
12,207
Forks
882
Issues abiertos
128
Último commit
hace 2 meses

¿Qué es?

webhook es un pequeño programa en Go que convierte las solicitudes HTTP entrantes en ejecuciones de comandos de shell. Puedes definir hooks en un archivo JSON o YAML; cada uno tiene un ID que se convierte en un endpoint, como /hooks/redeploy-webhook. Cuando llega una solicitud, webhook procesa sus encabezados, el payload y los parámetros de consulta, comprueba las reglas de activación que hayas configurado y pasa los valores a tu script como argumentos de línea de comandos o variables de entorno.

Las reglas de activación permiten restringir cuándo se ejecuta un hook, por ejemplo, exigiendo un secreto, buscando un valor en el payload o permitiendo solo ciertos rangos de IP. Los hooks se pueden cargar desde una plantilla, servir mediante HTTPS y ejecutar detrás de un proxy inverso, en un puerto TCP o un socket Unix. También se pueden iniciar mediante la activación de sockets de systemd. La compatibilidad con datos de formularios multipart es limitada.

webhook limita deliberadamente su alcance a recibir solicitudes y ejecutar comandos; el comportamiento del script queda a cargo del usuario.

Funciones clave

  • 01Define hooks en JSON o YAML, cada uno expuesto como un endpoint HTTP.
  • 02Pasa los encabezados, el payload y los parámetros de consulta de la solicitud a los comandos como argumentos o variables de entorno.
  • 03Admite reglas de activación, como la validación de secretos y las listas de IP permitidas.
  • 04Puede servir hooks mediante HTTPS y ejecutarse detrás de un proxy inverso, a través de TCP o de un socket Unix.
  • 05Admite la activación de sockets de systemd y archivos de configuración con plantillas de Go.

Casos de uso

  • Activar un script de redeploy cuando se envía código a una rama de GitHub o Bitbucket.
  • Ejecutar trabajos de CI o compilación mediante comandos slash de Slack o Mattermost.
  • Permitir que una integración de chat ejecute un comando en el servidor y responda con el resultado.

Inicio rápido

  1. 1

    Compila desde el código fuente con Go 1.21 o posterior

    go build github.com/adnanh/webhook
  2. 2

    Crea un archivo hooks.json para definir tus hooks

  3. 3

    Inicia webhook en modo verbose e indica el archivo de hooks

    /path/to/webhook -hooks hooks.json -verbose

Antes de usarlo

  • Los hooks ejecutan comandos de shell en tu servidor; configura las reglas de activación y los secretos para evitar ejecuciones no autorizadas.
  • Las reglas de lista de IP permitidas no funcionan como se espera detrás de un proxy inverso.

En colecciones

Temas

Preguntas frecuentes

¿Qué es webhook?
Un servidor ligero en Go que expone endpoints HTTP para ejecutar comandos de shell configurados y pasarles datos de la solicitud como argumentos o variables de entorno. webhook es un pequeño programa en Go que convierte las solicitudes HTTP entrantes en ejecuciones de comandos de shell. Puedes definir hooks en un archivo JSON o YAML; cada uno tiene un ID que se convierte en un endpoint, como /hooks/redeploy-webhook. Cuando llega una solicitud, webhook procesa sus encabezados, el payload y los parámetros de consulta, comprueba las reglas de activación que hayas configurado y pasa los valores a tu script como argumentos de línea de comandos o variables de entorno.
¿webhook es gratuito? ¿Qué licencia tiene?
webhook es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿webhook sigue mantenido?
Actualizado en los últimos 6 meses. El último commit de webhook fue el 4 sept 2026.
¿Para qué puedo usar webhook?
Activar un script de redeploy cuando se envía código a una rama de GitHub o Bitbucket. Ejecutar trabajos de CI o compilación mediante comandos slash de Slack o Mattermost. Permitir que una integración de chat ejecute un comando en el servidor y responda con el resultado.
¿Cómo se instala webhook?
Compila desde el código fuente con Go 1.21 o posterior: go build github.com/adnanh/webhook Crea un archivo hooks.json para definir tus hooks Inicia webhook en modo verbose e indica el archivo de hooks: /path/to/webhook -hooks hooks.json -verbose
¿Dónde consigo webhook?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/adnanh/webhook

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados