# Deploy Convoy with Easypanel

URL: /templates/convoy

Convoy is a self-hosted webhooks gateway. It receives, transforms, retries, and delivers webhooks between your services, with a dashboard for tracking every event and delivery. This template runs Convoy's real production architecture — separate control-plane (web) and data-plane (agent) processes behind a Caddy gateway, backed by Postgres and Redis — matching the project's own reference docker-compose rather than a single container.

## Installation notes

On first boot, an admin account is created with the email you configured and a randomly generated password printed to the web service's deploy logs. Open those logs, copy the password, and sign in. Self-signup is disabled by default. Once signed in, create an organization and project to get your ingestion and API endpoints.

## Benefits

### Real Production Architecture

Runs Convoy's actual control-plane and data-plane processes as separate services, the way the project's own reference deployment does, instead of a single do-everything container.

### Reliable Delivery With Retries

Failed webhook deliveries are automatically retried with backoff, so a subscriber's brief downtime doesn't mean a lost event.

### Full Event History

Every inbound and outbound event is logged with its payload and delivery attempts, so you can debug integrations without re-triggering them.

## Features

### Webhook Transformation

Transform incoming payloads before they're forwarded to subscribers, instead of forcing every consumer to handle the source format.

### Multi-Tenant Projects

Organize sources, subscriptions, and event history into separate projects and organizations from one instance.

### Delivery Dashboard

Track event delivery status, retries, and failures from a web dashboard instead of digging through logs.

## Configuration

- `appServiceName` (App Service Name, required): convoy

- `appServiceImage` (App Service Image, required): getconvoy/convoy:v26.6.6

- `adminEmail` (Admin Email, required): admin@example.com — Email for the first admin account. Its password is generated on first boot — find it in the web service's deploy logs.

- `publicDomain` (Public Domain): Set during installation — Optional, without https:// or a trailing slash (e.g. convoy.example.com). Leave blank to deploy on the domain Easypanel assigns automatically.

## Services

- convoy-web: app (getconvoy/convoy:v26.6.6)

- convoy-agent: app (getconvoy/convoy:v26.6.6)

- convoy: app (caddy:2.8.4-alpine)

- convoy-db: postgres

- convoy-redis: redis

## Resources

- [Website](https://getconvoy.io)

- [GitHub](https://github.com/frain-dev/convoy)

- [Documentation](https://getconvoy.io/docs)

- [Template source](https://github.com/easypanel-io/templates/tree/main/templates/convoy)