Deploy Convoy
Webhook gateway for managing incoming and outgoing webhooks
Convoy Gateway
Just deployed
Just deployed
/var/lib/postgresql/data
Convoy Agent
Just deployed
Convoy Server
Just deployed
Redis
Just deployed
/data
Deploy and Host Convoy on Railway
Convoy is an open-source webhook gateway for receiving, routing, retrying, and observing webhook deliveries. This template deploys Convoy on Railway with a split control plane, agent/data plane, managed PostgreSQL, managed Redis, and a Caddy gateway that routes public traffic to the correct internal service.
About Hosting Convoy
Hosting Convoy requires more than a single HTTP service. The control plane serves the dashboard, management API, portal management, and background scheduling, while the agent handles ingestion and portal event delivery routes. PostgreSQL stores application state, and Redis backs queues and runtime coordination. This template keeps those responsibilities separated while exposing Convoy through one public Railway domain. Convoy migrations run before the server starts, and internal service-to-service traffic uses Railway private networking.
Common Use Cases
- Centralized webhook delivery infrastructure for SaaS products.
- Reliable webhook retries, observability, and endpoint management.
- Customer-facing webhook portals and event delivery tracking.
- Internal event fan-out from one source to many consumers.
- Self-hosted webhook processing with managed database and cache services.
Dependencies for Convoy Hosting
- Convoy Server for the dashboard, management API, and control plane.
- Convoy Agent for ingestion and data-plane routes.
- PostgreSQL for Convoy application data.
- Redis for queues and runtime state.
- Caddy as the public HTTP gateway and path router.
Deployment Dependencies
- Convoy: getconvoy.io
- Convoy Docker deployment docs: Docker install docs
How This Template Works
The gateway exposes a single public Railway domain. It routes /ingest/, /portal-api/events, and /portal-api/eventdeliveries* to Convoy Agent, while all other traffic is routed to Convoy Server.
Convoy Server applies database migrations before starting, so the control plane is ready when the service receives traffic.
After the first deploy, Convoy creates a default superuser with these credentials:
- Email:
superuser@default.com - Password:
default
Change the default password immediately after logging in. If your deployment should be invite-only, disable public signup after the initial setup.
Convoy does not provide standard bootstrap environment variables for setting the initial GUI superuser email/password before first login, so rotate credentials right away after accessing the dashboard.
Quick Start
- Deploy this template on Railway.
- Wait until all services are healthy (
Convoy Server,Convoy Agent,Convoy Gateway,Postgres,Redis). - Open the public domain assigned to
Convoy Gateway. - Log in with the initial superuser credentials (
superuser@default.com/default) and rotate the default password. - Optionally disable public signup if you want invite-only access.
Post-Deploy Configuration
- Verify
CONVOY_HOSTpoints to theConvoy Gatewaypublic domain. - Keep only
Convoy Gatewaypublic; other services should stay private. - Ensure PostgreSQL and Redis stay attached as managed services.
- Scale
Convoy ServerandConvoy Agentindependently based on dashboard/API vs ingest traffic.
Why Deploy Convoy on Railway?
Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.
By deploying Convoy on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.
Template Content
Convoy Gateway
zawlodzki/convoy-railway-templateConvoy Agent
zawlodzki/convoy-railway-templateConvoy Server
zawlodzki/convoy-railway-templateRedis
redis:8.2.1