4.1 KiB
4.1 KiB
title: Hook0 created: 2026-06-08 updated: 2026-06-08 type: app tags: [catalogue, webhooks, events, integration, rust, app-marathon3-rattrapage-a] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Webhooks, https://hook0.com/]
🪝 Hook0
Webhook-as-a-Service open source : récepteur de webhooks multi-source, gestion d'abonnements, retries, signature HMAC, et logs d'événements.
📋 Informations Générales
| Champ | Valeur |
|---|---|
| Site web | hook0.com |
| GitHub | hook0/hook0 |
| License | MIT |
| Langage | Rust |
| Étoiles GitHub | 0.5k ⭐ |
| Catégorie | [[cat-webhooks |
📝 Description
Hook0 est un projet français (Tindalos, 2022) qui propose une plateforme de gestion de webhooks open source. Il sépare la production d'événements (vos services) de leur consommation (vos intégrations), avec gestion des retries et des erreurs.
Fonctionnalités :
- ✅ Abonnements aux webhooks : par service et type d'événement
- ✅ Signature HMAC : vérification d'intégrité
- ✅ Retries automatiques : backoff exponentiel
- ✅ Logs d'événements : tous les deliveries
- ✅ Dashboard web : monitoring temps réel
- ✅ API REST : intégration programmatique
- ✅ OIDC : support authentification
- ✅ Multi-tenant : séparation par organisation
- ✅ TypeScript SDK : émetteur de webhooks
- ✅ Haute performance : backend Rust
Différence vs solutions custom : Hook0 = solution prête à l'emploi, pas besoin de coder l'orchestration, retries, signature, logs. Une seule brique à maintenir.
Pour qui : équipes SaaS qui envoient des webhooks à leurs clients, plateformes d'intégration, projets qui consomment des webhooks tiers en grand nombre.
🚀 Installation
Docker Compose (recommandé)
version: '3.8'
services:
hook0:
image: hook0/hook0:latest
container_name: hook0
restart: unless-stopped
environment:
- HOOK0_DB_HOST=db
- HOOK0_DB_NAME=hook0
- HOOK0_DB_USER=hook0
- HOOK0_DB_PASSWORD=*** - HOOK0_OIDC_ISSUER=https://authentik.example.com
- HOOK0_OIDC_CLIENT_ID=hook0
- HOOK0_OIDC_CLIENT_SECRET=*** - HOOK0_URL=https://hook0.example.com
labels:
- "traefik.enable=true"
- "traefik.http.routers.hook0.rule=Host(`hook0.example.com`)"
- "traefik.http.routers.hook0.tls.certresolver=letsencrypt"
depends_on:
- db
db:
image: postgres:15-alpine
container_name: hook0-db
restart: unless-stopped
environment:
- POSTGRES_USER=hook0
- POSTGRES_PASSWORD=*** - POSTGRES_DB=hook0
volumes:
- hook0_db:/var/lib/postgresql/data
hook0-worker:
image: hook0/hook0:latest
container_name: hook0-worker
restart: unless-stopped
command: ["./hook0", "worker"]
environment:
- HOOK0_DB_HOST=db
- HOOK0_DB_NAME=hook0
- HOOK0_DB_USER=hook0
- HOOK0_DB_PASSWORD=*** depends_on:
- db
volumes:
hook0_db:
🔄 Alternatives
Open Source
- app-webhook — récepteur simple
- app-convoy — webhooks delivery reliability
- Svix — équivalent commercial open core
- Knative Eventing — plateforme d'événements K8s
- NATS — messaging system
- EventCloud — pub/sub
Propriétaires
- Svix Cloud — hosted commercial
- AWS EventBridge — service AWS
- Zapier Webhooks — no-code
- IFTTT — automatisation grand public
🔐 Sécurité
- Signature HMAC SHA-256 : authentification des payloads
- OIDC : authentification UI et API
- Rate limiting : protection contre flood
- HTTPS obligatoire : TLS pour webhooks
- Audit log : tous les événements tracés
- Sandboxing : validation payloads
- Mises à jour Rust : sécurité mémoire native
📚 Ressources
Pages Liées
- cat-webhooks — Catégorie Webhooks
- app-convoy — Delivery reliability
- recettes-docker-compose — Templates Docker