sluice

a self-hosted inbox for webhooks

0.9.2 · 14 October 2026

11 mb keeps every webhook sent to you.

You get a public URL for your webhooks, and every delivery is stored.

curl -fsSL https://sluice.example/install.sh | sh

0.9.2 forwards each delivery to your local or internal service.

You start it with one command and a single flag.

The flag names the service that should receive your deliveries.

start
sluice serve --forward http://localhost:3000

Version 0.9.2 was released on 14 October 2026.

72 hours of retries when your service does not answer.

A failed forward is tried again with exponential backoff.

Sluice keeps trying for up to 72 hours.

You can also replay any stored delivery with one command.

replay
sluice replay <delivery-id>

5 minutes is the oldest a delivery can be.

signature
HMAC-SHA256, verified
age
older than 5 minutes, rejected

30 days of deliveries, kept in a single SQLite file.

There is no Redis, no Postgres and no queue to run.

Deliveries are kept for 30 days unless you change it with --retain.

The web UI on port 8081 lets you search them.

You can search by path, by header or by body text.

:8081sluice
search deliveries by
pathheaderbody text
The web UI listens on port 8081.

1,800 deliveries per second on a 2-vCPU VM.

That number comes from the project's own benchmark.

Sluice ships as one static binary of about 11 MB.

You can run it on Linux, macOS or Windows.

one static binary, about 11 MB
osamd64arm64
Linux
macOS
Windows

41 contributors since a lost weekend in 2023.

Ines Okafor started Sluice in 2023 after losing a weekend of payment webhooks.

It is written in Go and released under the MIT licence.

There is no hosted service, no account and no telemetry.