A store-and-forward webhook service backed by nostr. Webhook providers demand an always-online HTTPS endpoint and auto-disable it after repeated delivery failures. A consumer behind a tunnel — sometimes offline, tunnel URL rotating — loses that race constantly. hookstr splits delivery from consumption so providers see one endpoint that never goes down, and the consumer sees every webhook, eventually, in order, with valid signatures.
/ingest/{token}/…. The reverse proxy terminates
TLS and hands the request to hookstrd's axum ingest.kind:3003 nostr event, signed by the server key.204. If the write fails it gets a
5xx and retries.x-signature HMAC still
validates.2xx.
Delivery is at-least-once, so a crash-mid-replay retry is always safe.hookstrdRuns permanently on always-online infra behind a TLS-terminating reverse proxy. Accepts any webhook with a fast 2xx, persists it as a signed nostr event in nostrdb, and serves those events back over an authenticated (NIP-42) embedded nostr relay.
hookstr drainRuns wherever the consumer lives. Negentropy-syncs (NIP-77) whatever it missed while offline, replays each delivery as a real HTTP request — byte-exact body, preserved headers — against a local target, then keeps following in realtime.
accept_events = false);
hookstrd's DB is the source of truth and nothing pushes into it over the wire.
This URL is a nostr relay. Point a NIP-42-authenticated client at
wss://<this host> to sync. Providers POST to
/ingest/{token}/….