Hi Tory,
If you're not hesitant to go cloud, you might want to look at the serverless framework: https://serverless.com/
You can write your code, deploy it, and it'll wait for any incoming triggers to execute the logic you program into it.
Hope this helps
I've use the Flask framework for Python to do this kind of stuff in the past. Not sure if that's really what you're looking for here, but it'll get the job done.
I would also suggest looking at Node-RED. I haven't used it myself, but it should be able to do this too.
First warning; to use a webhook it is compulsory to use a public SSL certificate. You can not use a self signed certificate or plain http.
So if you use something like Flask you will also need to setup a DNS name pointing to the server and get an SSL certificate from something like LetsEncrypt (doing this in Linux is much easier).
ngrok is also popular. They have an option to provide an SSL certificate and a tunnel agent enabling you to use something like Flask on one of your own machines without the complications above. Never tried it on Windows, but this config would probably be easier on a Windows machine (Windows is like a tax when trying to do things like this).
Next up is the severless options (like what @boundless-digit mentions). I personally use Amazon AWS lambda for my stuff. They provide the SSL certificate, load balancers, and everything for you. I tend to use node.js for stuff like this, by Python is also workable. This has a bit of a learning curve.
https://aws.amazon.com/lambda/
Next their are GUI style providers like Zapier. They provide a tonne of integrations for linking things together, but I don't think they support customisations, but you should take a look at this option just in case.
@PhilipDAth wrote:First warning; to use a webhook it is compulsory to use a public SSL certificate. You can not use a self signed certificate or plain http.
So if you use something like Flask you will also need to setup a DNS name pointing to the server and get an SSL certificate from something like LetsEncrypt (doing this in Linux is much easier).
You can use just the IP as long as your cert is set up correctly, but this is a really good point and one I totally forgot about. I'm using Let's Encrypt for my scripts, but I can understand why others might not want to go this route. Good catch!