Plataforma de operaciones ligera y sin agentes para pequeñas y medianas empresas, con gestión de hosts, comandos en lote, SSH web, despliegues, pipelines y monitorización.
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
Compila desde el código fuente con Go 1.21 o posterior
go build github.com/adnanh/webhook - 2
Crea un archivo hooks.json para definir tus hooks
- 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
Motor de CI/CD autohospedado que ejecuta en contenedores pipelines definidos en archivos de configuración y permite ampliarlo mediante plugins.
Una GitHub Action para ejecutar comandos en servidores remotos por SSH desde tus flujos de CI/CD.
Sistema web de despliegue autohospedado para publicar y revertir versiones con un clic, con terminal, SFTP, cron y monitoreo de servidores.
Aplicación web autoalojada para aprovisionar, administrar y desplegar aplicaciones PHP, como Laravel, en tus propios servidores.
Una herramienta mínima de línea de comandos para desplegar funciones de AWS Lambda y gestionar despliegues, reversiones, invocaciones, logs y diferencias.