Skip to content

pietroalbini/fisher

Repository files navigation

Fisher

Build Status

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.

Usage

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

Building Fisher

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.