Skip to the content.

qhook

Lightweight event-to-action engine. Turn webhooks and API events into reliable HTTP actions — single binary, no Redis, no Kubernetes.

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: one event, one action

# qhook.yaml
database:
  driver: sqlite

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

handlers:
  deploy:
    source: github
    events: [push]
    url: http://deployer:3000/deploy
    filter: "$.ref == refs/heads/main"
    retry: { max: 5 }

Multi-step: event triggers a pipeline

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
Getting Started Installation, first config, first event
Configuration Full YAML config reference
CLI Reference All CLI commands and options
Webhook Verification GitHub, Stripe, Shopify, PagerDuty, Grafana, Terraform Cloud, GitLab, HMAC
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
gRPC Output Deliver events via gRPC
Monitoring Prometheus metrics, health checks, alerts
Security Security features and best practices
Error Reference HTTP status codes and error messages
API Spec OpenAPI 3.1 specification

Deployment

Deployment overview & platform comparison

Platform Guide
AWS (ECS / EC2) deploy/aws.md
Kubernetes (Helm) deploy/kubernetes.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

Other

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