Лёгкая агентless-платформа для эксплуатации ИТ-инфраструктуры малого и среднего бизнеса: управление хостами, пакетные команды, веб-SSH, релизы, пайплайны и мониторинг.
adnanh/webhook
Лёгкий Go-сервер, который предоставляет HTTP-эндпоинты для вебхуков и запускает настроенные shell-команды, передавая им данные запроса через аргументы или переменные окружения.
- Звёзды
- 12,207
- Форки
- 882
- Открытые issues
- 128
- Последний коммит
- 2 месяца назад
Что это?
webhook — небольшая программа на Go, которая преобразует входящие HTTP-запросы в запуски shell-команд. Хуки задаются в файле JSON или YAML; у каждого есть ID, который становится путём эндпоинта, например /hooks/redeploy-webhook. Получив запрос, webhook разбирает заголовки, тело запроса и параметры query, проверяет настроенные правила срабатывания и передаёт значения скрипту в виде аргументов командной строки или переменных окружения.
Правила срабатывания позволяют ограничить условия запуска хука: например, требовать секрет, проверять значение в теле запроса или разрешать запросы только с определённых диапазонов IP-адресов. Хуки можно загружать из шаблона, обслуживать по HTTPS, запускать за reverse proxy через TCP-порт или Unix-сокет, а также запускать с помощью systemd socket activation. Поддержка multipart-данных формы ограничена.
webhook намеренно ограничен приёмом запросов и запуском команд; за поведение самого скрипта отвечает пользователь.
Ключевые возможности
- 01Задаёт хуки в JSON или YAML, каждый из которых доступен по HTTP-эндпоинту.
- 02Передаёт заголовки, тело запроса и query-параметры командам через аргументы или переменные окружения.
- 03Поддерживает правила срабатывания, например проверку секрета и списки разрешённых IP-адресов.
- 04Позволяет обслуживать хуки по HTTPS и работать за reverse proxy через TCP или Unix-сокет.
- 05Поддерживает systemd socket activation и файлы конфигурации на основе шаблонов Go.
Сценарии использования
- Запуск скрипта повторного развёртывания при отправке кода в ветку GitHub или Bitbucket.
- Запуск CI- или сборочных задач через slash-команды Slack или Mattermost.
- Возможность для интеграции с чатом запускать серверную команду и отвечать её результатом.
Быстрый старт
- 1
Соберите из исходного кода с Go 1.21 или новее
go build github.com/adnanh/webhook - 2
Создайте файл hooks.json с описанием хуков
- 3
Запустите webhook в подробном режиме, указав файл с хуками
/path/to/webhook -hooks hooks.json -verbose
Что важно знать
- Хуки выполняют shell-команды на вашем сервере. Настройте правила срабатывания и секреты, чтобы предотвратить несанкционированное выполнение.
- Правила белого списка IP-адресов работают некорректно за обратным прокси.
В подборках
Темы
Частые вопросы
- Что такое webhook?
- Лёгкий Go-сервер, который предоставляет HTTP-эндпоинты для вебхуков и запускает настроенные shell-команды, передавая им данные запроса через аргументы или переменные окружения. webhook — небольшая программа на Go, которая преобразует входящие HTTP-запросы в запуски shell-команд. Хуки задаются в файле JSON или YAML; у каждого есть ID, который становится путём эндпоинта, например /hooks/redeploy-webhook. Получив запрос, webhook разбирает заголовки, тело запроса и параметры query, проверяет настроенные правила срабатывания и передаёт значения скрипту в виде аргументов командной строки или переменных окружения.
- webhook можно использовать бесплатно? Какая у него лицензия?
- webhook распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- webhook всё ещё поддерживается?
- Обновлялся за последние 6 месяцев. Последний коммит в webhook — 4 сент. 2026 г..
- Для чего можно использовать webhook?
- Запуск скрипта повторного развёртывания при отправке кода в ветку GitHub или Bitbucket. Запуск CI- или сборочных задач через slash-команды Slack или Mattermost. Возможность для интеграции с чатом запускать серверную команду и отвечать её результатом.
- Как установить webhook?
- Соберите из исходного кода с Go 1.21 или новее: go build github.com/adnanh/webhook Создайте файл hooks.json с описанием хуков Запустите webhook в подробном режиме, указав файл с хуками: /path/to/webhook -hooks hooks.json -verbose
- Где скачать webhook?
- Исходный код и инструкции по установке — на GitHub: https://github.com/adnanh/webhook
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Самостоятельно размещаемый CI/CD-движок, который выполняет конвейеры из конфигурационных файлов в контейнерах и поддерживает плагины.
GitHub Action для выполнения команд на удалённых серверах по SSH из CI/CD workflow.
Самостоятельно размещаемая веб-система для выпуска и отката кода в один клик, с терминалом, SFTP, cron и мониторингом серверов.
Веб-приложение для самостоятельного развёртывания, настройки серверов и деплоя PHP-приложений, например Laravel.
Минималистичный CLI-инструмент для деплоя AWS Lambda: поддерживает откат, вызов функций, просмотр логов и сравнение конфигураций.