Synthèse automatique
Configure Hookdeck Outpost pour livrer des événements sortants vers les points de terminaison de vos clients via webhooks, files d'attente ou plateformes de streaming.
Points forts
- Prise en charge de multiples types de destinations (HTTP, SQS, RabbitMQ, etc.)
- Gestion multi-tenant avec abonnement aux topics
- Open source avec options auto-hébergées ou gérées
Limites
- Nécessite une infrastructure pour le déploiement auto-hébergé (Docker, Kubernetes)
- Certains types de destinations (EventBridge, Kafka) ne sont pas encore disponibles
- La gestion des clés API et de l'authentification peut être complexe
Lorsque vous devez envoyer de manière fiable des événements de votre plateforme vers les endpoints de vos clients, avec une gestion multi-tenant et de multiples protocoles.
Pour des envois de webhooks simples et ponctuels sans nécessité de gestion des locataires ou de files d'attente.
Analyse de sécurité
SûrThe skill provides instructions for setting up and using the Hookdeck Outpost event delivery system. It includes curl and Docker commands, but these are standard configuration steps with no destructive payloads, credential exfiltration, or safety bypasses. The declared allowed-tool (WebFetch) limits runtime actions to safe web requests, and the content itself lacks malicious intent.
Aucun point d'attention détecté
Comment cette analyse est faiteExemples
Set up Hookdeck Outpost using Docker Compose with RabbitMQ and PostgreSQL. Clone the repo, set the API key in .env, and run docker-compose up. Verify health with curl.Create a tenant in Hookdeck Outpost, then create a webhook destination for that tenant subscribing to all topics. Use the API with curl: PUT /{tenantId} and POST /{tenantId}/destinations with webhook URL.Publish an event to a specific topic in Hookdeck Outpost using the API. Provide the tenant ID, topic name, and event data. Use curl POST /{tenantId}/events with JSON body.name: outpost description: "Sets up and configures Hookdeck Outpost for outbound event delivery to customer endpoints. Use when sending webhooks to customers, building webhook delivery infrastructure, configuring destinations (HTTP, SQS, RabbitMQ, Pub/Sub, EventBridge, Kafka), or managing tenants and subscriptions in Outpost." allowed-tools: WebFetch
Hookdeck Outpost
Open-source outbound event delivery infrastructure by Hookdeck. Delivers your platform events directly to your users' preferred event destinations (webhooks, message queues, streaming platforms).
Deployment Options
| Option | Description | Best for | |---|---|---| | Self-hosted | Run via Docker, Kubernetes, or Railway. Full control. Apache-2.0 license. | Production with custom infra requirements | | Managed | Hookdeck Cloud. No infrastructure to operate. | Teams wanting zero-ops setup |
For managed, sign up at hookdeck.com. For self-hosted, see the quickstart below.
Supported Destination Types
Available: Webhooks (HTTP), Hookdeck Event Gateway, AWS SQS, AWS Kinesis, AWS S3, Azure Service Bus, GCP Pub/Sub, RabbitMQ (AMQP)
Planned: AWS EventBridge, Apache Kafka
Core Concepts
Tenants -- Represent a user, team, or organization in your product. Each tenant manages their own Destinations.
Destinations -- A specific instance of a destination type belonging to a tenant. For example, a webhook destination with a particular URL, or an SQS queue.
Topics -- Categorize events using a Pub/Sub pattern (e.g., user.created, payment.completed). Destinations subscribe to one or more topics, or * for all.
Events -- Data representing an action in your system. Published to a topic and delivered to all matching destinations.
Delivery Attempts -- Records of each attempt to deliver an event to a destination, including request/response data.
Self-Hosted Quick Start (Docker)
Requires Docker. Uses RabbitMQ for message queuing.
git clone https://github.com/hookdeck/outpost.git
cd outpost/examples/docker-compose/
cp .env.example .env
# Edit .env and set your API_KEY value
docker-compose -f compose.yml -f compose-rabbitmq.yml -f compose-postgres.yml up
Verify the services are running:
curl localhost:3333/api/v1/healthz
API Access
The Outpost API is a REST-based JSON API. The base URL and authentication differ by deployment:
| Deployment | Base URL | Authentication |
|---|---|---|
| Self-hosted | http://localhost:3333/api/v1 (or your configured host) | Authorization: Bearer $API_KEY (the API_KEY env var you configured) |
| Managed | Provided in your Hookdeck project | Authorization: Bearer $HOOKDECK_API_KEY (from Dashboard > Settings > Secrets) |
The OpenAPI spec for the self-hosted API is at: https://github.com/hookdeck/outpost/blob/main/docs/apis/openapi.yaml
All curl examples below use the self-hosted base URL. Replace localhost:3333/api/v1 with the managed URL and use your Hookdeck API key when using the managed version.
Publish Your First Event
Set shell variables for convenience:
BASE_URL=localhost:3333/api/v1
API_KEY=your_api_key
TENANT_ID=your_org_name
URL=https://your-webhook-endpoint.example.com
Create a tenant, add a webhook destination, and publish an event:
# Create tenant
curl -X PUT "$BASE_URL/$TENANT_ID" \
-H "Authorization: Bearer $API_KEY"
# Create webhook destination subscribing to all topics
curl -X POST "$BASE_URL/$TENANT_ID/destinations" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $API_KEY" \
-d '{
"type": "webhook",
"topics": ["*"],
"config": { "url": "'"$URL"'" }
}'
# Publish an event
curl -X POST "$BASE_URL/publish" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $API_KEY" \
-d '{
"tenant_id": "'"$TENANT_ID"'",
"topic": "user.created",
"eligible_for_retry": true,
"data": { "user_id": "usr_123" }
}'
Tenant Portal
Outpost includes a built-in portal UI where tenants manage their destinations and inspect events:
curl "$BASE_URL/$TENANT_ID/portal" \
-H "Authorization: Bearer $API_KEY"
# Returns { "redirect_url": "...?token=<jwt>" }
Architecture
Outpost consists of three services (deployable together as a single binary or separately for horizontal scaling): API Service (captures events, configuration APIs), Delivery Service (delivers to destinations via message queues), and Log Service (stores events, status, responses). Requires Redis 6.0+, PostgreSQL, and one supported message queue. See concepts for details.
Future Skills
Destination-specific skills (outpost-webhooks, outpost-sqs, outpost-rabbitmq, etc.) will be added as Outpost documentation matures.
Deployment Quickstarts
Related Skills
- hookdeck -- skill router for all Hookdeck skills
- event-gateway -- Hookdeck Event Gateway (inbound webhooks)
Du fichier au premier essai
Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.
Consulter la source et ses fichiers annexesCe téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.
1. Télécharger le fichier
Télécharger SKILL.mdDepuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/hookdeck-outpost-outbound-event-delivery-mm78nnpv/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.
Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.
mkdir -p '.skill-downloads/hookdeck-outpost-outbound-event-delivery-mm78nnpv' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/hookdeck-outpost-outbound-event-delivery-mm78nnpv/download' --output '.skill-downloads/hookdeck-outpost-outbound-event-delivery-mm78nnpv/SKILL.md.part' && mv '.skill-downloads/hookdeck-outpost-outbound-event-delivery-mm78nnpv/SKILL.md.part' '.skill-downloads/hookdeck-outpost-outbound-event-delivery-mm78nnpv/SKILL.md'2. Vérifier les prérequis
Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.
Outils déclarés par l’auteur (à vérifier dans votre agent) : WebFetch
Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.
Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.
3. Charger la skill
Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.
Claude Code
test -f '.skill-downloads/hookdeck-outpost-outbound-event-delivery-mm78nnpv/SKILL.md' && test -s '.skill-downloads/hookdeck-outpost-outbound-event-delivery-mm78nnpv/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/outpost' && cp -R '.skill-downloads/hookdeck-outpost-outbound-event-delivery-mm78nnpv' '.claude/skills/outpost'OpenSkills
OpenSkills doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.
Installation officielle d’OpenSkillsopenskills install './.skill-downloads/hookdeck-outpost-outbound-event-delivery-mm78nnpv'openskills read 'hookdeck-outpost-outbound-event-delivery-mm78nnpv'La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.
Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.
openskills syncMode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.
4. Faire un premier essai
Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :
Lis .skill-downloads/hookdeck-outpost-outbound-event-delivery-mm78nnpv/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.
Configurer un canal de discussion avec SecretRefs
DevOps
Configurez des canaux de discussion avec des commandes non interactives, les secrets étant uniquement des SecretRefs. Couvre les étapes de collecte, modification, réparation et vérification.
Enquêter sur les échecs CI de ClickHouse
DevOps
Investigue un échec CI de ClickHouse de bout en bout à partir d'une URL de PR ou de rapport S3. Récupère les tests échoués, classe flaky vs vraie régression, et cherche des issues/fixes existants.
Revue de PR Ansible
DevOps
Examine une PR Ansible selon le processus standardisé du projet, incluant la validation des changelogs, la couverture de tests et le suivi des commentaires.