Skooh.io Logo
Back to blog
GuideJune 18, 202510 min

Receive Webhooks Behind a Firewall with Skooh

No inbound ports, no VPN. Learn how Skooh delivers webhooks to internal services using outbound-only connections.

The Enterprise Webhook Problem

Your SaaS applications need to send webhooks to your internal systems. But your internal systems are behind a firewall—no inbound ports allowed, no public IP addresses, and the security team won't approve a VPN just for webhooks.

Sound familiar?

How Skooh Solves This

Skooh uses outbound-only connections to deliver webhooks to your internal services. Here's the key insight:

Your firewall blocks inbound connections. But it allows outbound connections. Skooh exploits this asymmetry.

The Problem with Traditional Approaches

It will take a while for the security and engineering team to allocate time to exposing a publicly accessible URL for your external service. Doing this increases your attack surface and increases the admin burden of connecting your systems together—for example, juggling IP whitelists.

How Skooh Works

  1. Webhook providers (Stripe, GitHub, etc.) send webhooks to your Skooh URL: `https://api.skooh.io/hook/your-token\`
  2. Skooh Cloud receives the webhook and queues it
  3. Skooh Proxy (running inside your network) maintains an outbound WebSocket connection to Skooh Cloud
  4. Skooh Cloud pushes the webhook through this connection
  5. Skooh Proxy forwards the webhook to your internal service

The magic: your firewall never sees an inbound connection. The proxy reaches out to Skooh; Skooh pushes data back through that same connection.

Skooh uses webhooks to establish an outbound connection that messages flow through, and importantly only ever sends text in the form of JSON, unlike many other tunnel services, which keeps security risks to an absolute minimum.

Running the Skooh Proxy

Skooh offers two ways to run the proxy—choose whichever fits your environment:

Desktop App

The easiest way to get started. Works great for development and production:

  • One-click install for macOS and Windows
  • System tray integration—runs quietly in the background
  • Sound notifications when webhooks arrive
  • Built-in log viewer for debugging
  • Automatic updates

Download the Desktop App →

Docker Container

Prefer containers? Run the proxy anywhere Docker runs:

docker run -d \\
  --name skooh-proxy \\
  -e API_URL=https://api.skooh.io \\
  --restart unless-stopped \\
  skooh/proxy \\
    --token your_hook_token \\
    --api-key your_api_key \\
    --internal-webhook-url http://internal-service:8080/webhook

Docker setup guide →

Key Features

Webhook Inspector

Every webhook is logged with full headers and body. View them in the Skooh dashboard.

Replay

Did your handler crash? Replay the exact webhook from the dashboard—headers, body, everything preserved.

Multiple Endpoints

Create separate endpoints for different services:

  • `/wh/stripe-prod` → internal payment service
  • `/wh/github-ci` → internal CI runner
  • `/wh/shopify` → internal order processor

Getting Started

  1. Sign up for Skooh (free tier available)
  2. Create a webhook endpoint in the dashboard
  3. Download the Desktop App or run Docker
  4. Point your webhook provider to your Skooh URL
  5. Watch webhooks flow to your internal services

No firewall changes. No VPN. No inbound ports.

Get started now →

Written by Skooh Team

Share:

Ready to try Skooh?

Start receiving webhooks in your local environment in under 5 minutes.

Skooh | Receive Webhooks Behind a Firewall with Skooh