Webhook Relay
PricingLogin
  • Introduction
  • Quick Start - Forwarding
  • Quick Start - Tunnels
  • 🛠️Installation
    • Relay CLI
      • Install
      • Auto-start
      • Run config.yaml reference
    • Containerized
      • Kubernetes Installation
      • Podman
      • Docker
      • Docker Compose
  • Products
    • 🛰️Webhook Forwarding
      • Glossary
      • WebSocket Server
      • Authentication
      • Custom Domains
    • ⚡Functions
      • Managing functions
      • Edit request/response
      • Working with JSON
      • 🦾Advanced
        • Working with time
        • Testing functions in CLI
        • Making HTTP Requests
        • Multipart Form Data
        • URLEncoded Form Data
        • GCP BigQuery
        • Sending Emails
        • JWT authentication
        • Base64, Hashes, Encryption
      • 🤖Integrating into CI/CD
    • 🔃Tunnels
      • Using tunnels
      • Custom Domains
      • Encryption (HTTPS)
      • Regions
  • 📝Examples
    • Intro to examples
    • Webhooks
      • Receiving webhooks on localhost
      • Receive webhooks inside your JavaScript app
      • Execute shell scripts on remote machines
    • Functions
      • Enrich webhooks from 3rd party APIs
      • Convert DockerHub webhook to Slack notification
      • Allowing only POST requests through
      • Manipulate webhook request body
    • Tunnels
      • Ingress for any Kubernetes environment
      • Demoing your website
    • 🏠Home Automation
      • Home Assistant
      • Node-RED
      • Raspberry Pi
  • Platform
    • CLI Basics
    • Using CLI Behind Proxy
    • Self-hosting Server
      • Server deployment
      • Client configuration
    • Security & Tech
Powered by GitBook
On this page
  • Features
  • Technical Requirements
  • Getting a license
  • Installation options
  • Terraform
  • Cloud agnostic examples
  • Using Docker-Compose
  • Accessing admin dashboard

Was this helpful?

  1. Platform
  2. Self-hosting Server

Server deployment

Server is an all-in-one container that manages tunnels and forwarding configuration, client connections and performs the actual tunnelling.

PreviousSelf-hosting ServerNextClient configuration

Last updated 3 years ago

Was this helpful?

To start using self-hosted Webhook Relay tunnelling server, follow this guide. Tunnelling server is called Transponder.

Transponder image can be found at .

Image name:webhookrelay/transponder:latest

Features

  • HTTP/HTTPS tunnels

  • Custom subdomains, domains

  • WebSocket support

  • TLS pass-through tunnels

  • Dashboard UI

  • Webhook Forwarding

Technical Requirements

Since the server can be routing from hundreds of webhooks to millions of webhooks per minute, it's important to choose a correct size for the server.

Minimal requirements:

  • 1 CPU

  • 128 MB RAM

  • 1GB Disk space

Recommended:

  • 4 CPU

  • 6 GB RAM

  • 1GB disk space

Getting a license

Installation options

Terraform

Cloud agnostic examples

Using Docker-Compose

First, clone repository:

git clone https://github.com/webhookrelay/transponder-deployment.git
cd webhook-forwarding

Configuration

  1. Create a new file .env

  2. Copy & paste contents of .env.example file to .env and change the details such as admin username, password API key (key has to remain UUID format) and secret.

TLS Options

Option 1: No TLS (when your own firewall/load balancer does HTTPS termination)

If you don't need TLS in Transponder:

  • Ensure that environment variables CERT_PATH, CERT_KEY_PATH and MANAGED_DOMAINS aren't set. Either remove them from the .env file or edit the docker-compose.yaml to unset them.

  • Update healthcheck section in the docker-compose.yaml to use http:// instead of https://

  • Set RELAY_REQUIRE_TLS=false in the agent to disable TLS for GRPC connections.

Alternatively, if you do need encryption for the agent and you are doing TLS termination in front of the Transponder, you can use --ws flag when running forward command:

relay forward --ws -b my-bucket https://bin.webhookrelay.com/v1/webhooks/d1ea0a51-f317-4e8d-a641-067e96a46bc3

Option 2: TLS Configuration

Option 3: Let's Encrypt certificates (TLS-ALPN challenge)

TLS-ALPN challenge is nice to use with webhook forwarding because you don't need a wildcard cert and this method doesn't require 3rd credentials from a DNS provider. Transponder uses this method by default, so just set this environment variable:

MANAGED_DOMAINS=your-domain.com

Your server must be reachable from the Internet (by Let's Encrypt server).

Option 4: Using DNS challenge

It is recommended to use DNS challenge when you need a wildcard cert or your server is not reachable from the public Internet. Transponder supports Cloudflare as a DNS challenge provider. To use it instead of the TLS-ALPN challenge, set these additional variables:

CLOUDFLARE_EMAIL=your-cloudflare-account-email
CLOUDFLARE_API_KEY=your-cloudflare-api-key

This will ensure that during boot, Transponder will retrieve certificates for your server.

Option 5: Self-signed certificates

Get your certificates and place them into certs/ directory next to this docker-compose.yaml file. Then, set these environment variables in the .env file:

CERT_PATH=./certs/your-domain.pem
CERT_KEY_PATH=./certs/your-domain-key.pem

Starting the server

To start the server:

docker-compose up -d

You can view server logs here:

docker-compose logs

Accessing admin dashboard

To get a license key for self-hosted Webhook Relay version (Transponder) please email . Proof-of-Concept trial licenses are available free of charge.

Various examples for deployment are available here: .

This is an example from .

For TLS configuration you can choose between self-signed certificates and the ones provided by .

For production instance, set CA_URL= in your .env file. Although it's recommended to first try out your setup with staging CA so you don't hit Let's Encrypt rate limits.

By default, admin dashboard can be accessed on port 9300 ().

https://hub.docker.com/r/webhookrelay/transponder
info@webhookrelay.com
Packet
https://github.com/webhookrelay/transponder-deployment
https://github.com/webhookrelay/transponder-deployment/tree/master/webhook-forwarding
Let's Encrypt
https://acme-v02.api.letsencrypt.org/directory
https://your-server-domain:9300