Skip to content

hook0

Alerting & Incidents

Open-source webhook server that helps you provide webhooks to your users. It handles for you a great amount of features that are usually tedious to (re)implement.

Rust Latest play/v1.0.4 · 16d ago Security brief →

Features

  • Real‑time API and dashboard for managing webhooks
  • JSON REST API with fine‑grained event subscriptions
  • Auto‑retry of failed webhook deliveries and persistent logging

Recent releases

View all 11 releases →
No immediate action
api/v1.0.2 Bug fix

Commit event ingestion fix

mcp/v1.0.2 New feature
Notable features
  • Added Hook0 MCP server for AI assistant integration
Full changelog

mcp/v1.0.2

  • chore(release): bump mcp to 1.0.2
  • chore(release): bump mcp to 1.0.1
  • fix(ci): opt cli/play/mcp into cargo-release + serialize trigger jobs
  • feat(ci): per-package release flow + monorepo tag convention
  • chore: update dependencies
  • chore: update dependencies
  • test(cli): do not run tests with external dependencies by default
  • chore: update dependencies
  • chore: update dependencies
  • chore: update dependencies
  • chore: update dependencies
  • chore: update dependencies
  • chore: update dependencies
  • chore: update dependencies
  • ci: fix build
  • chore: update dependencies
  • chore: update to reqwest 0.13
  • chore: update dependencies
  • chore: avoid running MCP integration tests by default
  • chore: update dependencies
  • fix(frontend): convert SVG files from LFS to regular git files
  • feat(mcp): add Hook0 MCP server for AI assistant integration

Install

cargo install [email protected]
play/v1.0.3 Breaking risk
Breaking changes
  • Replaced Traefik IngressRoute with Kubernetes Ingress (kingress)
Notable features
  • Web UI for webhook tester with Redis storage and cross-property navigation
  • hook0 CLI providing full API coverage
Full changelog

play/v1.0.3

  • chore(release): bump play to 1.0.3
  • chore(release): bump play to 1.0.2
  • chore(release): bump play to 1.0.1
  • fix(ci): opt cli/play/mcp into cargo-release + serialize trigger jobs
  • feat(ci): per-package release flow + monorepo tag convention
  • chore: update dependencies
  • ci: validate Dockerfile workspace coverage and migrate play.docker to BuildKit
  • feat(website,docs): SEO comparison pages, glossary, schema markup
  • fix(play): deploy job, smoke tests, E2E Playwright CI, auto-select first webhook, CLI link fix, pullPolicy fix
  • feat(play): web UI for webhook tester + Redis storage + cross-property navigation
  • chore(play): sort dependencies
  • chore: update dependencies
  • chore: update dependencies
  • chore: update dependencies
  • fix(play): replace Traefik IngressRoute with Kubernetes Ingress (kingress)
  • chore: update dependencies
  • feat(cli): add hook0 CLI with full API coverage

Docker image

  • registry.gitlab.com/hook0/hook0/play:1.0.3
output-worker/v1.0.2 Breaking risk
Notable features
  • Add authentication for application endpoints
  • Add a Cargo feature to use rustls-native-certs for outgoing HTTPS requests
  • Add Hook0 MCP server for AI assistant integration (mcp)
Full changelog

output-worker/v1.0.2 - 2026-05-10

Added

  • Use crate name as app name when connecting to PG
  • Implement output worker
  • Implement bounded linear retry delay
  • Rewrite Sentry integration & use it in both apps
  • Add authentication for application endpoints
  • Store worker ID and version when processing
  • Slow down or stop attempting requests after given numbers of retries
  • Improve JWT claims extraction & update dependencies
  • Use trust dns resolver and enable anyhow integration in Sentry
  • Add more trace messages
  • Sign webhook calls
  • Improve the way event playload content types are handled
  • Upsert response error names
  • Add event type in webhook requests
  • Add options to allow Sentry to trace and profile transactions
  • Add a Cargo feature to use rustls-native-certs for outgoing HTTPS requests
  • Add dedicated workers
  • Allow to set default organization workers
  • Allow to periodically send monitoring heartbeats (output-worker)
  • Allow to forbid HTTP requests that target IPs that are not globally reachable (output-worker)
  • Handle multiple request attempts concurrently (output-worker)
  • Improve resilience (output-worker)
  • When there is nothing to do, close DB transaction before waiting (output-worker)
  • When there is nothing to do, close DB transaction before waiting (output-worker)
  • Make timeouts configurable (output-worker)
  • Update dependencies
  • Configurable signature header name (worker)
  • Improve usage on signature_header_name (worker)
  • Support v1 signature verification (clients/rust)
  • Add a Pulsar-based worker mode
  • Use protobuf to serialize request attempts transported by Pulsar
  • Allow to load waiting request attempts from database into Pulsar on startup (output-worker)
  • Add support for storing events' payload in object storage
  • Enable retries in object storage client
  • Add support for storing responses' body and headers in object storage
  • Add OTLP metrics/traces support (output-worker)
  • Allow to configure maximum number of attempts for object storage operations
  • Improve retry logic (output-worker)
  • Add Hook0 MCP server for AI assistant integration (mcp)
  • Add comprehensive GitLab CI release automation workflow with version management and changelog generation
  • Allow to configure grace period for unfound request attempts in Pulsar mode (output-worker)
  • Do not block start of worker when loading waiting request attempts into Pulsar (output-worker)
  • Use latest behavior of S3 client
  • Add timeouts to object storage operations
  • Add Pulsar metrics (output-worker)
  • Improve S3 errors messages
  • Periodically display throughput information in logs (output-worker)
  • Migrate Rust loggers from log to tracing
  • Improve log messages (output-worker)
  • Make Sentry SDK debug mode OFF by default
  • Allow to configure sending default PII to Sentry
  • Allow to configure sending spans to Sentry
  • Add sdk release workflow with manual triggers (release)
  • Improve throughtput log (output-worker)
  • Make sure delayed request attempts are never processed ahead of time in Pulsar mode (output-worker)
  • Improve log messages (output-worker)
  • Improve static retry policy (output-worker)
  • Make Pulsar worker only handle its own request attempts (output-worker)
  • Per-package release flow + monorepo tag convention (ci)

Build

  • Use SQLx in offline mode

CI/CD

  • Split rust job
  • Check frontend & avoid downloading previous artifacts if not necessary
  • Update Clever Cloud Pipeline component
  • Update deployment component
  • Allow release jobs to run with alpha/beta/rc versions
  • Validate Dockerfile workspace coverage and migrate play.docker to BuildKit

Changed

  • Git ignore files
  • Let the DB compute the delay_until date
  • Split logic into several files (output-worker)
  • Make imports more readable
  • Fix
  • Improve SQL query coding style
  • Improve worker type log message (output-worker)
  • Pass the whole config to the work function (output-worker)
  • Add semver checks in CI, fixes #48 (repo)
  • Fix Dockerfile warnings
  • Format code (output-worker)
  • Improve signature (output-worker)
  • Improve string interpolation (output-worker)
  • Minor improvements
  • Improve logs related to object storage operations (api)
  • Improve logs related to object storage operations
  • Improve error messages related to object storage
  • Merge PG worker queries (output-worker)
  • Use a struct instead of a tuple (output-worker)

Fixed

  • Move Cargo profile config to workspace root
  • Typo
  • Clippy warning
  • Attempt picking
  • Upgrade cargo version
  • Add license
  • Cargo warning
  • Regen sqlx offline data
  • Regen sqlx offline data
  • Allow to soft delete subscriptions
  • Regen sqlx offline data
  • Retries limits (output-worker)
  • Typo (output-worker)
  • Allow a public worker to pick work dedicated to itself (output-worker)
  • Disable jobs when on schedule (gitlab-ci)
  • Remove deprecated only/except & replace with rules (gitlab-ci)
  • Merge glitch (output-worker)
  • Add missing info in some log messages (output-worker)
  • Commit instead of rolling back (output-worker)
  • Avoid doing a rollback even if it does not change much (output-worker)
  • Enable a missing Cargo feature (output-worker)
  • Automate output-worker deploy to clever (ci)
  • Replace deprecated reqwest feature
  • Docker deployment
  • Remove wrong ignores
  • Concurrent builds with cache (docker)
  • Fix(output-worker)
  • Private workers (output-worker)
  • Avoid crashing if header names/values are invalid (output-worker)
  • Send heartbeat in pulsar mode even if worker is idle (output-worker)
  • Add protoc and protobuf mount to Docker build (api,output-worker)
  • Prevent pg workers to pick up request attempts from disabled or deleted subscriptions (output-worker)
  • Typo in metric name (output-worker)
  • TLS crypto provider
  • Switch release containers from docker:dind to BuildKit rootless (ci)
  • Allow to disable Pulsar consumer stats (output-worker)
  • Correctly handle waiting but delayed request attempts when loading them from DB in Pulsar mode (output-worker)
  • Pick up assigned-to-self work for public PG workers (output-worker)
  • Add ca-certificates to Dockerfile (output-worker)
  • Ensure request attempts cannot be both succeeded and failed
  • Make Pulsar worker more resilient to broker errors (output-worker)
  • Initialize rustls crypto provider for all queue types (output-worker)
  • Avoid processing the same request attempt several times concurrently in Pulsar mode (output-worker)
  • Make sure Pulsar messages are ACKed by the broker
  • Opt cli/play/mcp into cargo-release + serialize trigger jobs (ci)

Other

  • Update SQLx
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Rename crates
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Chore(ignore)
  • Migrate to actix-web 4
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Add missing env var
  • Update dependencies
  • Update dependencies
  • Update to Rust 2021 edition
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Improve debug compile time
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Remove support of Sentry profiling
  • Update dependencies
  • Update dependencies
  • Remove useless folder
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Remove keycloak deps (docker)
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update to Rust Edition 2024
  • Update dependencies & improve mailer
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Improve logging (output-worker)
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies & fix Dockerfiles
  • Update dependencies
  • Update dependencies
  • Change level of some log messages (output-worker)
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update to reqwest 0.13
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update to Rust 1.94
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Disable Pulsar consumer stats by default as it still needs some work (output-worker)

Performance

  • Try to reduce stress on the database when output worker is idle (output-worker)
  • Add application ID to request_attempt table
  • Share retry producer instead of always recreating it (output-worker)
  • Split queue (output-worker)

Docker images

  • hook0/hook0-output-worker:1.0.2 (DockerHub)
  • ghcr.io/hook0/hook0-output-worker:1.0.2 (GHCR)
  • registry.gitlab.com/hook0/hook0/hook0-output-worker:1.0.2 (GitLab)
cli/v1.0.1 New feature
Notable features
  • Add hook0 CLI with full API coverage
  • Make event ID optional and use UUIDv7 in big tables
  • Web UI for webhook tester with Redis storage and cross-property navigation
Full changelog

cli/v1.0.1 - 2026-05-10

Added

  • Add hook0 CLI with full API coverage (cli)
  • Make event ID optional and use UUIDv7 in big tables
  • Web UI for webhook tester + Redis storage + cross-property navigation (play)
  • Per-package release flow + monorepo tag convention (ci)

CI/CD

  • Enable CI (cli)
  • Run API for E2E tests (cli)
  • Fix build (cli)
  • Fix build (cli)

Documentation

  • Add CLI reference documentation
  • Improve CLI reference wording and structure

Fixed

  • Opt cli/play/mcp into cargo-release + serialize trigger jobs (ci)

Other

  • Update dependencies
  • Update dependencies
  • Update dependencies
  • Sort dependencies (cli)
  • Update Rust Edition to 2024 (cli)
  • Update dependencies
  • Update keyring (cli)

Testing

  • Do not run tests with external dependencies by default (cli)

Install

Download the binary for your platform from the assets below, or build from source:

cargo install --git https://github.com/hook0/hook0 --tag cli/v1.0.1 hook0-cli

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

About

Stars
1,436
Forks
99
Languages
Rust TypeScript EJS

Install & Platforms

Platforms
linux macos windows

Community & Support

Beta — feedback welcome: [email protected]