Fisher is a fast, simple webhooks catcher written in Rust. It's easy to set up, it features builtin security, and you can monitor its status with a simple HTTP request. Being a single binary, you can deploy it easily wherever you want.
Fisher is released under the GNU GPL v3+ license, see LICENSE for more details. In order to build it, you need to have Rust 1.31.1 or greater installed.
Fist of all, you need to download Fisher and place the executable
on your server (possibly in a directory in $PATH
).
Fisher doesn't have a configuration file, and you only need to place your hooks in a directory (make sure they're executable!):
$ mkdir /srv/hooks
$ cat > /srv/hooks/example-hook.sh << EOF
#!/bin/bash
echo "I'm an hook!"
EOF
$ chmod +x /srv/hooks/example-hook.sh
Then, you start fisher and you're good to go!
$ fisher /srv/hooks
Total hooks collected: 1
Web API listening on 127.0.0.1:8000
You can now call your hook: the request will be queued by Fisher and the script will be executed.
$ curl http://127.0.0.1:8000/hook/example-hook
In order to build fisher, you need a stable Rust compiler and cargo installed.
$ git clone https://github.com/pietroalbini/fisher
$ cd fisher
$ cargo build --release
The compiled binary will be available in target/release/fisher
.