Skip to the content.

qhook

Lightweight event gateway with Push and Pull delivery, built-in retry, and workflow engine. Verify, enqueue, ACK — then deliver via HTTP push or let your app pull when ready. Single binary, zero infrastructure.

Quick Start

# Install
cargo install qhook

# Or run with Docker
docker run -p 8888:8888 -v $(pwd)/qhook.yaml:/data/qhook.yaml ghcr.io/totte-dev/qhook

Simple: Stripe webhook → billing + analytics

# qhook.yaml
database:
  driver: sqlite

sources:
  stripe:
    type: webhook
    verify: stripe
    secret: ${STRIPE_WEBHOOK_SECRET}

handlers:
  billing:
    source: stripe
    events: [invoice.paid, customer.subscription.updated]
    url: http://billing:3000/webhook
    idempotency_key: "$.id"
    retry: { max: 8 }
  analytics:
    source: stripe
    events: ["*"]
    url: http://analytics:3000/ingest

Multi-step: GitHub push → build → deploy → rollback

sources:
  github:
    type: webhook
    verify: github
    secret: ${GITHUB_WEBHOOK_SECRET}

workflows:
  deploy-pipeline:
    source: github
    events: [push]
    timeout: 600
    steps:
      - name: build
        url: http://ci:3000/build
        retry: { max: 2, errors: [5xx, timeout] }
      - name: deploy
        url: http://deployer:3000/deploy
        catch:
          - errors: [all]
            goto: rollback
      - name: notify
        url: http://slack:3000/notify
        end: true
      - name: rollback
        url: http://deployer:3000/rollback
        end: true
qhook start

Full Getting Started guide

Documentation

Guides

Guide Description
5-Minute Quickstart Stripe webhooks in 5 minutes — no Docker needed
Getting Started Installation, first config, first event
Configuration Full YAML config reference
CLI Reference All CLI commands and options
Webhook Verification 13 providers: GitHub, Stripe, Shopify, Twilio, Paddle, and more
CloudEvents Binary and structured mode support
AWS SNS Receive events from SNS topics
Workflows Multi-step pipelines with error routing
Filtering & Transformation Event filtering and payload reshaping
Monitoring Prometheus metrics, health checks, alerts
Security Security features and best practices
Local Development Dev mode, echo endpoint, test events, tunnels
Pull-Mode Queues Consumer-driven polling with visibility timeout and DLQ
Scaling Guide D1 vs Postgres — when to switch, cost calculator, performance limits
Local to Production Environment overlays, DB migration, security checklist
Database Schema Tables, columns, indexes, and conventions
Error Reference HTTP status codes and error messages
Compliance & Audit Trail PCI DSS 4.0, SOC 2 compliance framing
API Spec OpenAPI 3.1 specification

Deployment

Deployment overview & platform comparison

Platform Guide
AWS (ECS / EC2) deploy/aws.md
Fly.io deploy/flyio.md
Railway deploy/railway.md
Render deploy/render.md

Examples

Example Description
quickstart Minimal setup, no Docker needed
github-webhook GitHub push/PR with signature verification
filter-transform Event filtering and payload transformation
stripe-checkout Stripe checkout with dual handlers
workflow Multi-step pipeline with catch routing
tenant-provision Tenant provisioning with rollback and auth headers
alert-remediation PagerDuty alert → triage → remediate → escalate
outbound-webhook Send webhooks to customers with Standard Webhooks signatures

Integrations

Integration Description
MCP Server AI agent integration via Model Context Protocol (Claude Code, Claude Desktop)

Other

Page Description
Why qhook? Use cases, comparisons, and positioning
Examples All example projects with descriptions