mirror of
https://github.com/vimagick/dockerfiles.git
synced 2025-01-08 04:04:42 +02:00
74 lines
2.2 KiB
Markdown
74 lines
2.2 KiB
Markdown
webhook
|
|
=======
|
|
|
|
![](https://badge.imagelayers.io/vimagick/webhook:latest.svg)
|
|
|
|
[webhook][1] is a lightweight configurable tool written in Go, that allows you
|
|
to easily create HTTP endpoints (hooks) on your server, which you can use to
|
|
execute configured commands.
|
|
|
|
## Directory Tree
|
|
|
|
```bash
|
|
~/fig/webhook/
|
|
├── docker-compose.yml
|
|
└── data/
|
|
├── hooks.json
|
|
└── test.sh* (executable)
|
|
```
|
|
|
|
File: data/hooks.yaml
|
|
|
|
```yaml
|
|
- id: test
|
|
execute-command: /etc/webhook/test.sh
|
|
pass-file-to-command:
|
|
- source: entire-payload
|
|
envname: HOOK_PAYLOAD
|
|
command-working-directory: /etc/webhook
|
|
include-command-output-in-response: true
|
|
```
|
|
|
|
File: data/test.sh
|
|
|
|
```bash
|
|
#!/bin/bash
|
|
echo 'hello world'
|
|
cat $HOOK_PAYLOAD
|
|
```
|
|
|
|
## Up and Running
|
|
|
|
```bash
|
|
$ cd ~/fig/webhook/
|
|
|
|
$ chmod +x data/test.sh
|
|
|
|
$ docker-compose up -d
|
|
Creating webhook_webhook_1...
|
|
|
|
$ curl http://localhost:9000/hooks/test -d hello=world
|
|
hello world
|
|
{"hello":"world"}
|
|
|
|
$ docker-compose logs
|
|
Attaching to webhook_webhook_1
|
|
webhook_1 | [webhook] 2024/02/20 04:26:52 version 2.8.1 starting
|
|
webhook_1 | [webhook] 2024/02/20 04:26:52 setting up os signal watcher
|
|
webhook_1 | [webhook] 2024/02/20 04:26:52 attempting to load hooks from hooks.json
|
|
webhook_1 | [webhook] 2024/02/20 04:26:52 loaded 1 hook(s) from file
|
|
webhook_1 | [webhook] 2024/02/20 04:26:52 > test
|
|
webhook_1 | [webhook] 2024/02/20 04:26:52 starting insecure (http) webhook on :9000
|
|
webhook_1 | [webhook] 2024/02/20 04:26:52 os signal watcher ready
|
|
webhook_1 | [webhook] 2024/02/20 04:27:11 Started GET /hooks/test
|
|
webhook_1 | [webhook] 2024/02/20 04:27:11 Completed 200 OK in 390.207µs
|
|
webhook_1 | [webhook] 2024/02/20 04:27:11 test got matched (1 time(s))
|
|
webhook_1 | [webhook] 2024/02/20 04:27:11 test hook triggered successfully
|
|
webhook_1 | [webhook] 2024/02/20 04:27:11 executing /scripts/test.sh (/scripts/test.sh) with arguments ["/etc/webhook/test.sh"] and environment [HOOK_PAYLOAD=/etc/webhook/HOOK_PAYLOAD967569167] using /etc/webhook as cwd
|
|
webhook_1 | [webhook] 2024/02/20 04:27:11 command output: hello world
|
|
webhook_1 | {"hello":"world"}
|
|
webhook_1 | [webhook] 2024/02/20 04:27:11 finished handling test
|
|
```
|
|
|
|
[1]: https://github.com/adnanh/webhook
|