Files
wiki/Catalogue-Self-Hosted/apps/app-hook0.md
T
2026-06-09 18:40:21 +02:00

132 lines
4.1 KiB
Markdown

---
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](https://hook0.com) |
| **GitHub** | [hook0/hook0](https://github.com/hook0/hook0) |
| **License** | MIT |
| **Langage** | Rust |
| **Étoiles GitHub** | 0.5k ⭐ |
| **Catégorie** | [[cat-webhooks|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é)
```yaml
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
- [Documentation](https://docs.hook0.com/)
- [GitHub](https://github.com/hook0/hook0)
- [Démo](https://www.hook0.com/)
## Pages Liées
- [[cat-webhooks]] — Catégorie Webhooks
- [[app-convoy]] — Delivery reliability
- [[recettes-docker-compose]] — Templates Docker