Just try it!
make web # ;)You are now exposing this projects Makefile to the web!
$ curl http://localhost/hello-world
{"status":0}You can set environment variables, all vars are uppercased by default. Dont forget HTTP URL encoding!
curl http://localhost/hello-world\?GREET\=Anthony
curl "http://localhost/hello-world?GREET=Anthony"
curl "http://localhost/hello-world?greet=Anthony"Shut up and get me running!
Mount local directory into docker swarm:
ssh root@server
docker swarm init
wget https://raw.githubusercontent.com/expelledboy/make-webhooks/master/Makefile
make HOSTNAME=webhooks.example.com start-webhooksOR
Build a docker image with your custom Makefile.
FROM expelledboy/make-webhooks:latest
RUN apk add --no-cache jq # Makefile deps
COPY Makefile /webhook/Makefile
docker build -t my-webhooks .
docker run -it --rm -p 3000:3000 my-webhooksYou can use the webhooks return status as an exit code in another script.
#!/bin/bash
if [ "$1" -eq "run-webhook" ]; then
exit $(curl -s http://localhost/crash | jq '.status')
fi$ ./script.sh; echo $?
0
$ ./script.sh run-webhook; echo $?
2Example usage in the command line.
$ `exit $(curl -s http://localhost/crash | jq '.status')`; echo $?
2But best yet, in a make target!
run-webhook:
@curl -fs http://localhost/crash$ make run-webhook
make: *** [Makefile:86: run-webhook] Error 22We match the Bearer token in the Authorization header, either with environment
variable SECRET, or the contents of the file located at /webhooks/SECRET.
$ echo mySecret > SECRET
$ curl http://localhost/hello-world
Unauthorized
$ curl -H 'Authorization: Bearer mySecret' http://localhost/hello-world
{"status":0}Can even do key rotations!
$ echo -n myNewSecret > SECRET
$ curl -H 'Authorization: Bearer mySecret' http://localhost/hello-world
Unauthorized
$ curl -H 'Authorization: Bearer myNewSecret' http://localhost/hello-world
{"status":0}