Open-source enterprise-grade webhook gateway for secure, scalable, and reliable webhook delivery. Bundled with PostgreSQL and Redis.

Convoy is a fast, secure, open-source webhook gateway. It manages outgoing webhook delivery (with retries, rate limiting, signing, and a delivery log) and incoming webhook ingestion (HMAC verification, sources, replay). This template deploys Convoy in a one-click, self-hosted setup on Zeabur, bundled with the two services it needs: PostgreSQL for persistence and Redis for queueing.
Convoy is developed by Frain Technologies and released under the Elastic License 2.0. This template is a deployment recipe — you self-host your own instance and remain in full control of your data and API keys.
Three services in a single project:
| Service | Image | What it does |
|---|---|---|
convoy | getconvoy/convoy:latest | API + dashboard + webhook delivery worker (single binary). Auto-runs DB migrations on startup. |
postgresql | postgres:18 | Stores projects, endpoints, events, deliveries, attempts |
redis | redis/redis-stack-server:latest | Job queue, rate limit counters, cache |
Convoy is wired to PostgreSQL and Redis automatically via Zeabur's private networking — no manual configuration required.
convoy service.On first boot, Convoy creates a default superuser. Check the runtime logs of the convoy service — you'll see something like:
Superuser created successfully:
Username: [email protected]
Password: default
Log in with those credentials, then immediately:
[email protected] account.https://convoy.zeabur.app/ingest/<id> to share with the third party sending webhooks.All Convoy settings can be tuned via the convoy service's Variables tab. Useful ones:
| Variable | What it does |
|---|---|
CONVOY_HOST | Public URL of this Convoy instance. Pre-set to your Zeabur domain. Update if you bind a custom domain. |
CONVOY_SIGNUP_ENABLED | true allows new user signup from the UI. Set false for a locked-down deployment. |
CONVOY_DB_MAX_OPEN_CONN | Postgres connection pool size (default 100). Lower this on smaller plans. |
CONVOY_SMTP_* | SMTP credentials for password-reset / invite emails. Optional. |
Full env-var reference: convoy.env.example.
postgresql service.getconvoy/convoy:latest. Restart the convoy service to pull the latest image — Convoy will apply any pending DB migrations on the next boot.convoy service first if delivery latency rises.event_deliveries table in PostgreSQL, or use Convoy's UI under Project → Event Deliveries.