Deploy Evolution API — WhatsApp REST API
WhatsApp REST API — no Meta approval, no per-message fees.
Just deployed
/var/lib/postgresql/data
Redis
Just deployed
/data
Evolution API
Just deployed
Deploy and Host Evolution API on Railway
Evolution API is an open-source WhatsApp REST API with 8.3k+ GitHub stars — built on Baileys and Whatsmeow, it gives developers programmatic control of WhatsApp accounts through a RESTful interface without requiring Meta's Business API approval. Send messages, manage groups, receive webhooks, and connect AI agents — all through a self-hosted backend you fully control.
What This Template Deploys
| Service | Purpose |
|---|---|
| Evolution API | WhatsApp REST API server — instance management, messaging, webhooks, and Manager UI on port 8080 |
| PostgreSQL 17 | Persistent database for instances, messages, contacts, and session state |
| Redis 8.2.1 | Cache layer for session management — required for multi-instance deployments |
All three services are pre-wired over Railway's private network. Credentials are injected automatically via reference variables — no manual configuration required.
About Hosting Evolution API
Running Evolution API in production requires PostgreSQL for session state, Redis for caching, and a persistent volume at /evolution/instances for WhatsApp authentication data. Without a managed host, you're configuring Docker Compose, inter-service networking, SSL, volume mounts, and database backups manually.
Railway handles all of it. Sessions persist in PostgreSQL — instances reconnect after restarts without re-scanning the QR code.
Typical cost: ~$5–10/month on Railway's Hobby plan for all three services. No per-message fees. Twilio WhatsApp charges $0.005–$0.085 per message — at 10,000 messages/month that's $50–$850 in API costs alone.
Deploy in Under 5 Minutes
- Click Deploy on Railway and wait for all three services to build (~3–5 minutes)
- Mount a Railway volume at
/evolution/instancesin the Evolution API service settings - Set
SERVER_URLto your Railway public domain andAUTHENTICATION_API_KEYto a strong secret - Open
[your-domain]/managerto access the Manager dashboard - Create an instance, scan the QR code with WhatsApp, and start sending messages via REST
No SSH. No Docker Compose. No SSL certificates to manage.
Common Use Cases
- WhatsApp automation without Meta Business API approval — connect any WhatsApp account via QR code without a verified business account, Business Manager, or API application
- AI-powered customer support — integrate with Chatwoot or Typebot for automated helpdesk workflows; connect Claude or GPT-4o for AI-driven conversation handling
- n8n workflow automation — use the
n8n-nodes-evolution-apicommunity node to trigger workflows from WhatsApp messages and send replies from any automation action - Multi-account WhatsApp management — run multiple instances from a single deployment; ideal for agencies managing client accounts or SaaS products with per-user WhatsApp
- E-commerce transactional messaging — send order confirmations, delivery alerts, and payment notifications at scale with no per-message billing
Configuration
| Variable | Required | Description |
|---|---|---|
SERVER_URL | ✅ Required | Your Railway public URL — required for QR code generation and webhook delivery |
AUTHENTICATION_API_KEY | ✅ Required | Master API key for all requests — generate a strong random string |
DATABASE_PROVIDER | ✅ Pre-set | postgresql — connects to the Railway PostgreSQL service |
DATABASE_URL | ✅ Auto-injected | Full PostgreSQL connection string via Railway reference variable |
CACHE_REDIS_URI | ✅ Auto-injected | Redis URI from ${{Redis.REDIS_URL}} via Railway reference variable |
WEBHOOK_GLOBAL_URL | Optional | Receives all WhatsApp events across all instances |
WEBHOOK_GLOBAL_ENABLED | Optional | Set to true to enable global webhook delivery |
LOG_LEVEL | Optional | ERROR in production, DEBUG for troubleshooting |
DEL_INSTANCE | Optional | Set to false to keep all instances alive indefinitely |
LANGUAGE | Optional | API response language — en, pt-BR, or es |
Volume required: Mount a Railway volume at
/evolution/instances. Without it, WhatsApp authentication is lost on every redeploy and users must re-scan the QR code each time.
Dependencies for Evolution API Hosting
- Railway account — Hobby plan (~$5–10/month) covers all three services
- A WhatsApp account to scan the QR code and connect the instance
- Optional: Chatwoot, Typebot, or n8n for automation workflows
- Optional: S3-compatible storage for media file handling at scale
Deployment Dependencies
- Evolution API GitHub Repository
- Evolution API Documentation
- n8n Community Node
- Railway Volumes Documentation
Implementation Details
This template deploys Evolution API (evoapicloud/evolution-api:latest) alongside PostgreSQL 17 and Redis 8.2.1 over Railway's private network. Database and Redis ports are never exposed publicly. Session metadata persists in PostgreSQL automatically; QR authentication files persist on the /evolution/instances volume. With both in place, instances reconnect after restarts without re-scanning. The Manager dashboard is available at /manager on your Railway domain immediately after deployment.
Frequently Asked Questions
Do I need Meta Business API approval? No. Evolution API connects via Baileys using a personal or business WhatsApp account — QR scan only. No Meta Business Manager, business verification, or API application required.
Do I lose WhatsApp sessions on redeploy?
No, if the volume is mounted at /evolution/instances. Session metadata persists in PostgreSQL; authentication files persist on the volume. Both together means instances reconnect automatically after restarts.
How much does it cost to run Evolution API on Railway? Approximately $5–10/month on Railway's Hobby plan for all three services. No per-message fees — compare to Twilio at $0.005–$0.085 per message.
Can I run multiple WhatsApp accounts? Yes. Evolution API supports multiple instances from a single deployment, each connected to a separate WhatsApp account via its own QR code.
Does Evolution API integrate with n8n, Chatwoot, and Typebot?
Yes — all three are natively supported. Use the n8n-nodes-evolution-api community node for n8n. Chatwoot integrates as a unified inbox. Typebot connects for visual chatbot flows. All configure via webhooks in the Manager dashboard.
Is this against WhatsApp's Terms of Service? Using unofficial integrations carries risk. Use numbers with established messaging history, avoid bulk unsolicited messages, implement rate limiting, and enable two-factor authentication. For high-volume commercial use, Meta's official Cloud API is the compliant option.
Why Deploy Evolution API 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 Evolution API on Railway, you get a production-ready WhatsApp automation backend — three services pre-wired with private networking, automatic HTTPS, persistent session storage, and no per-message billing. Host your messaging backend, databases, and automation tools together on Railway with full data ownership.
Template Content
Redis
redis:8.2.1Evolution API
evoapicloud/evolution-api:v2.3.7
