Static IPs for webhook calls to enable whitelisting
Published on Apr 2, 2020
Quite often corporate firewalls only allow incoming webhooks from whitelisted IPs and many public services can’t provide them due operational complexity. The complexity for egress traffic usually comes from a modern infrastructure where servers are treated as cattle, not pets. Servers don’t have static IPs and only rely on a cloud load balancer that accepts ingress traffic and then routes to servers running in private network. Updates are often done by provisioning a whole new pool of nodes and gradually draining the old one.
Generated webhooks can be coming from services that are running on various backends:
Tagged with api automation gcp static IP terraform webhooks
Responding to API calls using Node-RED Webhook Relay node
Published on Mar 2, 2020
In the previous article about controlling gadgets via IFTTT and Node-RED we explored ways to receive webhooks without public IP or configuring NAT and then performing certain actions. However, sometimes you need to respond back to the webhook producers or just other applications that expect success/error responses to properly function. Up until now you would have needed to use Webhook Relay tunnels but with the recent release, we allow sending dynamic responses back to the caller.
- No need to expose your Node-RED to the internet.
- Respond with carefully crafted HTTP responses choosing your status code, headers and body.
This feature transforms Webhook Relay webhook forwarding feature from unidirectional-only to a much more powerful tool....
Tagged with api automation node-red webhooks
Docker Compose update on Github webhook
Published on Sep 2, 2019
Last year I wrote a blog post about combining several tools to automate simple NodeJS app updates on git push. Many users were solving similar problems by writing local web servers in Ruby, Python or PHP to receive webhooks and then do async processing. I am happy to announce that we finally decided to add this feature to the relay CLI. Now, to execute a bash script, you can:
relay forward --bucket my-bucket-name --relayer exec --command bash update.sh
And to launch a Python app on webhook:
relay forward --bucket my-bucket-name --relayer exec --command python my-app.py
This opens up some interesting posibilities to create pipelines that can react to pretty much anything that emits webhooks. In this article I will show you how to build a GitOps style pipeline that keeps a Docker Compose deployment in sync with a docker-compose.yaml hosted on a git repository....
Tagged with docker git github update webhook
Using Google Firestore for a Golang backend application
Published on Aug 26, 2019
Usually, when I need a database I just pick Postgres or embedded key-value stores such as the excellent boltdb, badger from dgraph or Redis (if I need a KV store but shared between several nodes). With flexibility comes the burden of maintenance and sometimes additional cost. In this article, we will explore a simple Golang backend service that will use Google Firestore as storage....
Tagged with cloud firestore gcp golang kv
Automated Jenkins builds on GitHub pull request
Published on Apr 17, 2019
In this short guide we will configure Jenkins to start builds on GitHub pull requests. Subsequent builds will be triggered on any new commits and GitHub pull request status will show whether build succeeded or failed. This setup will work without configuring router, firewall or having a public IP. It will also work behind a corporate firewall....
Tagged with github jenkins pull request webhooks
Rules-based webhook filtering & routing
Published on Apr 2, 2019
Some webhook providers do not offer fine-grained control over what events are being sent via webhooks. Sometimes, you end up in a situation where webhooks, based on their type have to be delivered to different servers. We will have a look at a new Webhook Relay forwarding feature that allows users to define rules on outputs that help in these situations.
Tagged with automation github rules webhook routing
Introducing Cloudflare support for Home Assistant remote access
Published on Feb 15, 2019
Today we are expanding Webhook Relay’s Home Assistant add-on support for portability across different domains by announcing integration with Cloudflare API to create and manage DNS records. This means that you can transfer your domain management to Cloudflare and start enjoying new capabilities. Cloudflare has also recently announced their registrar so instead of just managing your records (they are doing it for free) and providing great proxy that speeds up your websites, you can now fully transfer your domain to them and avoid increasing prices from your original registrar.
Tagged with automation cloudflare home assistant tunnels
Setting up simple, self-hosted & fast CI/CD solution with Drone.io
Published on Feb 11, 2019
Continuous Integration and Continuous Delivery have been very trendy topics in the DevOps world for the last several years. As more and more organizations strive to improve their test and release processes, we have observed many new tools appear in this ecosystem. All major cloud providers are offering their automation systems (some are very unsuccessful) so it’s getting quite hard to pick the right one that fits your use-case.
Tagged with CI/CD automation docker drone git github
Controlling TV with Google Home, IFTTT and Node-RED
Published on Jan 29, 2019
In this article, I will show you how easy and quick it is to add voice controlled commands to your home/office or any other environment. Once you set up your first flow, any other features on top of that won’t take even 1 minute to add....
Tagged with assistant automation google ifttt speech tv webhooks
Node-RED OwnTracks location tracking without public IP/MQTT
Published on Jan 9, 2019
If you want to track your location but don’t want it to be shared with way too many companies that shouldn’t know it, have a look at this fantastic, Open Source mobile application OwnTracks (https://github.com/owntracks) that can send phone’s location data to your chosen server. No external service that aggregates your data is required, allowing you to do pretty much anything you want with the gathered location data. OwnTracks can send payloads either to an MQTT server or a standard HTTP endpoint.
Tagged with automation geofence gps node-red owntracks webhooks
Secure webhooks to Jenkins on Kubernetes
Published on Dec 18, 2018
Photo by Marat Gilyadzinov
There is no doubt that Jenkins is a great tool for both CI & CD. However, due to its access to your infrastructure, it becomes an easy target for attackers. For this reason Jenkins is often put behind a firewall and in doing so, webhooks stop working. Users do not want the pull-based but rather prefer the build to start as soon as there is a commit/tag/docker push!...
Tagged with NAT docker firewall github jenkins kubernetes tutorial webhooks
Remote YouTube downloader Slack bot
Published on Dec 12, 2018
Introducing WebSocket Server
Published on Dec 5, 2018
For the past few months, our users have pointed out that they need an easier way to receive webhooks inside their applications. In short, they do not want to implement a web server just for one endpoint that does nothing but receives webhooks. We have evaluated several solutions on streaming events to clients but ended up using WebSockets. This is because WebSockets is a standard that is implemented in pretty much every programming language (another solution, which we use internally and was considered first, was NATS but it would have required too many modifications)....
Rancher - push to deploy workflow with Keel
Published on Nov 12, 2018
In this article, we will show how easy it is to configure “push to deploy” workflows with Rancher and Keel. If you are not familiar with Rancher, please visit their excellent website. This article might look lengthy but it’s only because there are a lot of screenshots to help you guide through Rancher’s UI. Also, once the initial setup of DockerHub, Webhook Relay and Keel is done, all the cluster workloads will get a self-service style automated updates....
Tagged with docker keel kubernetes rancher tutorial webhooks
Documenting your API with OpenAPI (Swagger) and Redoc
Published on Nov 5, 2018
In this article, we will review several popular editors suitable for documenting APIs with the OpenAPI 3.0 specification, different themes that can render the spec, as well as hosting strategies.
Best combination that we found:
Tagged with api apiary documentation openapi redoc swagger vscode webdev
Home Assistant remote access add-on
Published on Oct 12, 2018
Webhook Relay add-on allows remote access to Home Assistant without configuring your router, firewall or having a static public IP. It works by creating secure reverse tunnels back to the cloud service.
Tagged with automation docker home assistant raspberry pi tunnels
Hassle-free remote access to Home Assistant on a Raspberry Pi
Published on Sep 3, 2018
There are quite a few home automation systems out there but one of my favorites is Home Assistant. It’s written in Python (available on GitHub), has a nice user interface and is very easy to deploy. Home Assistant has tons of integrations with many other online services and hardware devices....
Tagged with automation docker home assistant raspberry pi tunnels
How to receive Paypal webhooks on localhost
Published on Aug 21, 2018
In this article, we will write a small web server in my favorite language Go that handles PayPal’s webhooks. I will show you how easy it is to start receiving webhooks, developing your application and debugging it with Webhook Relay....
Tagged with Golang PayPal development payments tutorial webhooks
DevOps Use Case: Performing Redis maintenance in Kubernetes
Published on Jul 23, 2018
Nowadays it’s easy to run pretty much anything in Kubernetes clusters. But what about debugging these services? What if you need to quickly access a service that is normally not exposed to the internet or your intranet and is only accessible from within the cluster? Your service is like:
Tagged with debug devops kubernetes maintenance redis tunnels
Auto deploy your Node.js app on push to GitHub in 3 simple steps
Published on Jul 17, 2018
Simple use case - deploy your updated Node.js app on a push to a GitHub repository. To achieve this, we will use several tools:
- nodemon - monitor for any changes in your node.js application and automatically restart the server - perfect for development but we will make it perfect for production too :)
- webhook - incoming webhook server which can execute shell commands.
- relay - will allow us to receive webhooks anywhere without exposing them to the internet.
Tagged with git github nodejs nodemon reload webhook
What is a webhook and how to create one?
Published on Jul 13, 2018
As most of what we do on the web can be described by events, webhooks have become a de facto way of connecting systems, whether it’s a new user account creation, successful payment, DockerHub image push event or a new pull request in your Git repository. They are incredibly useful and lightweight way of sharing information.
Tagged with automation hook web webhookbin webhooks
Mailgun webhook fan-out
Published on May 21, 2018
Transactional emails are widely used in most apps. Systems requests email confirmation, dispatch password recovery emails, notifications, and more. Sending the emails is one thing, but what about tracking delivery and performance? Did that user get that email confirmation message? These unknowns could lead to unexpected problems. Even though this data is available via dashboard, webhooks offer a much better alternative where you just supply the URL and you get almost instant notifications about events....
Tagged with fan-out mailgun webhook webhookbin
Web Relay Ingress with Docker for Mac
Published on Jan 8, 2018
Kubernetes became available in Docker for Mac 17.12 CE Edge. Kubernetes in the last year showed that it’s the most flexible and reliable option to run container workloads, all the major cloud providers now offer or are planning to offer a managed Kubernetes service to their customers:
Tagged with NAT docker ingress kubernetes mac node.js tunnel tutorial
How to receive Stripe webhooks on localhost
Published on Dec 26, 2017
In recent years Stripe has become a major payments provider. It is loved by managers and developers for a reason. Stripe has easy to use APIs, SDKs in multiple languages and outstanding documentation.
Like other payment platforms, Stripe utilizes webhooks to inform about customer, subscription, card and many other changes in the state.
Tagged with app development golang payments stripe tutorial webhooks
Receive Github webhooks on Jenkins without public IP
Published on Nov 23, 2017
Jenkins is probably the most popular CI tool. Since Dev and Ops roles are growing more and more alike we need to reduce initially required ‘activation energy’ to adopt automation tools. Building and testing software should be easy, fast and reliable. Current technique known as polling repository usually results in constant delays where engineers have to wait till the next CI scanning cycle....
Tagged with github jenkins tutorial webhooks
Keel - automated Kubernetes updates
Published on Jul 17, 2017
If you are using Kubernetes for dev/test/production - you need a way to automate deployment updates once new images are available. Keel is a lightweight service to take care of that.
Tagged with CI automation keel kubernetes
Introduction to Webhook Relay
Published on May 15, 2017
Webhook Relay was created to solve one problem - simplify communication between systems by providing a webhook delivery system to applications that are running in internal networks....
Tagged with webhooks