---
title: "Deploy Evolution API"
description: "Open-source WhatsApp API with manager UI, webhooks, Postgres and Redis"
category: "Bots"
url: https://railway.com/deploy/evolution-api-8
---

# Deploy Evolution API

Open-source WhatsApp API with manager UI, webhooks, Postgres and Redis

**[Deploy Evolution API on Railway](https://railway.com/template/evolution-api-8)**

Machine-readable deploy manifest (JSON, validated by TemplateCI): https://railway.com/deploy/evolution-api-8/manifest.json

- **Creator:** Agaz Self-Host
- **Category:** Bots

## Template content

### Redis https://cdn.sanity.io/images/sy1jschh/production/0ce0bfdcfbdbf69662b1116671f97c2dd788b655-157x157.svg

- **Image:** redis:8.2
- **Start command:** `/bin/sh -c "rm -rf $RAILWAY_VOLUME_MOUNT_PATH/lost+found/ && exec docker-entrypoint.sh redis-server --requirepass $REDIS_PASSWORD --save 60 1 --dir $RAILWAY_VOLUME_MOUNT_PATH"`

### Evolution API https://meta-q.cdn.bubble.io/cdn-cgi/image/f=auto,w=64,h=64,fit=contain,dpr=1/f1735656025985x589899456761148800/evolution-logo.png

- **Image:** evoapicloud/evolution-api:v2.3.7@sha256:1bd8afc4a6cf48822e6cf02469aeae7bd35a12a6b616eacd1291926307f4d339
- **Start command:** `/bin/bash -c 'echo c2V0IC1lCmQoKSB7IGV2YWwgIlsgLW4gXCJcJHskMSt4fVwiIF0iIHx8IGV4cG9ydCAiJDE9JDIiOyB9CmV4cG9ydCBTRVJWRVJfUE9SVD0iJHtQT1JUOi0ke1NFUlZFUl9QT1JUOi04MDgwfX0iCmQgU0VSVkVSX1RZUEUgaHR0cApkIERBVEFCQVNFX1BST1ZJREVSIHBvc3RncmVzcWwKZCBEQVRBQkFTRV9DT05ORUNUSU9OX0NMSUVOVF9OQU1FIGV2b2x1dGlvbl9leGNoYW5nZQpkIERBVEFCQVNFX1NBVkVfREFUQV9JTlNUQU5DRSB0cnVlCmQgREFUQUJBU0VfU0FWRV9EQVRBX05FV19NRVNTQUdFIHRydWUKZCBEQVRBQkFTRV9TQVZFX01FU1NBR0VfVVBEQVRFIHRydWUKZCBEQVRBQkFTRV9TQVZFX0RBVEFfQ09OVEFDVFMgdHJ1ZQpkIERBVEFCQVNFX1NBVkVfREFUQV9DSEFUUyB0cnVlCmQgREFUQUJBU0VfU0FWRV9EQVRBX0xBQkVMUyB0cnVlCmQgREFUQUJBU0VfU0FWRV9EQVRBX0hJU1RPUklDIHRydWUKZCBDQUNIRV9SRURJU19FTkFCTEVEIHRydWUKZCBDQUNIRV9SRURJU19QUkVGSVhfS0VZIGV2b2x1dGlvbgpkIENBQ0hFX1JFRElTX1NBVkVfSU5TVEFOQ0VTIGZhbHNlCmQgQ0FDSEVfTE9DQUxfRU5BQkxFRCBmYWxzZQpkIEFVVEhFTlRJQ0FUSU9OX0VYUE9TRV9JTl9GRVRDSF9JTlNUQU5DRVMgdHJ1ZQpkIERFTF9JTlNUQU5DRSBmYWxzZQpkIFRFTEVNRVRSWV9FTkFCTEVEIGZhbHNlCmQgTEFOR1VBR0UgZW4KZCBMT0dfTEVWRUwgRVJST1IsV0FSTixJTkZPLExPRwpkIExPR19CQUlMRVlTIGVycm9yCmQgTE9HX0NPTE9SIGZhbHNlCmQgUVJDT0RFX0xJTUlUIDMwCmQgQ09ORklHX1NFU1NJT05fUEhPTkVfQ0xJRU5UICJFdm9sdXRpb24gQVBJIgpkIENPTkZJR19TRVNTSU9OX1BIT05FX05BTUUgQ2hyb21lCi4gLi9Eb2NrZXIvc2NyaXB0cy9kZXBsb3lfZGF0YWJhc2Uuc2gKZXhlYyBucG0gcnVuIHN0YXJ0OnByb2QK | base64 -d > /tmp/start.sh && exec bash /tmp/start.sh'`
- **Health check:** /
- **Public domain:** Yes

### Postgres https://devicons.railway.app/i/postgresql.svg

- **Image:** ghcr.io/railwayapp-templates/postgres-ssl:18

## Documentation

# Deploy and Host Evolution API on Railway

Evolution API is an open-source REST API for WhatsApp. It connects a WhatsApp number by QR code (through the Baileys WhatsApp Web library) or through Meta's official Cloud API. You can then send and receive messages, media and group events over HTTP, webhooks or WebSocket. It ships with a web manager and integrations for Chatwoot, Typebot, n8n, Dify and OpenAI.

## About Hosting Evolution API

This template runs Evolution API v2.3.7 from the official image `evoapicloud/evolution-api`, pinned by digest. It uses Railway Postgres for instances, sessions, contacts and messages, and Railway Redis as the cache. Instance files go on a volume mounted at `/evolution/instances`. A global API key is generated at deploy, and every API call and the manager login require it. `SERVER_URL` points at your Railway domain, so the QR codes, webhooks and media links it generates use it. Database migrations run automatically on every start. After deploying, open `/manager`, sign in with the API key, create an instance and scan the QR code with WhatsApp.

## Common Use Cases

* Send WhatsApp notifications, reminders and one-time codes from your own app over a REST call
* Connect WhatsApp to Chatwoot, Typebot, n8n, Dify or an OpenAI bot for support and automation
* Run several WhatsApp numbers from one server, each with its own webhook

## Dependencies for Evolution API Hosting

* PostgreSQL (Railway Postgres, included)
* Redis (Railway Redis, included)

### Deployment Dependencies

* Evolution API on GitHub: https://github.com/evolution-foundation/evolution-api
* Release 2.3.7: https://github.com/evolution-foundation/evolution-api/releases/tag/2.3.7
* Documentation: https://docs.evolutionfoundation.com.br/en/evolution-api/installation
* Docker image: https://hub.docker.com/r/evoapicloud/evolution-api

### Implementation Details

**Sign in.** Open `https://YOUR-DOMAIN/manager`. Use your Railway domain as the server URL and the `AUTHENTICATION_API_KEY` variable of the Evolution API service as the key. API clients send that key in an `apikey` header:

```bash
curl -H "apikey: $AUTHENTICATION_API_KEY" https://YOUR-DOMAIN/instance/fetchInstances
curl -H "apikey: $AUTHENTICATION_API_KEY" -H "Content-Type: application/json" \
  -d '{"instanceName":"main","integration":"WHATSAPP-BAILEYS","qrcode":true}' \
  https://YOUR-DOMAIN/instance/create
```

The second call returns a QR code (`qrcode.base64`) to scan in WhatsApp under *Linked devices*. Without the key, every call except `/` returns 401.

**Defaults set in the start command.** These apply unless you add the variable yourself: `DATABASE_PROVIDER=postgresql`, `CACHE_REDIS_ENABLED=true`, `CACHE_LOCAL_ENABLED=false`, `DATABASE_SAVE_DATA_*=true` (instances, messages, contacts, chats, labels, history), `DEL_INSTANCE=false`, `TELEMETRY_ENABLED=false`, `LANGUAGE=en`, `LOG_LEVEL=ERROR,WARN,INFO,LOG`, `QRCODE_LIMIT=30`, `CONFIG_SESSION_PHONE_CLIENT="Evolution API"`. To use webhooks, RabbitMQ, S3, Chatwoot, Typebot or any other option from the [environment reference](https://docs.evolutionfoundation.com.br/en/evolution-api/configuration/env), add it as a variable on the Evolution API service and redeploy.

**Version.** This template stays on 2.3.7, the latest stable release. The 2.4.0 release candidates require activating each server against Evolution Foundation's licensing service before the API answers. Instance tokens (the per-instance `hash`) in 2.3.7 can act on other instances on the same server ([fixed on the 2.3.8 branch](https://github.com/evolution-foundation/evolution-api/issues/2435)). If you hand instance tokens to other people, run one deployment per person until 2.3.8 is released. The global key isn't affected.

**Custom domain.** After adding your own domain, set `SERVER_URL` to `https://YOUR-DOMAIN` and redeploy.

**WhatsApp terms.** The QR-code (Baileys) connection uses the unofficial WhatsApp Web protocol. Bulk or unsolicited messages can get a number banned. Use the WhatsApp Cloud API integration for business-critical traffic.

## 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 are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.



## Similar templates

- [Telegram JavaScript Bot](https://railway.com/deploy/5lRkWa) — A template for Telegram bot in JavaScript using grammY
- [Cobalt Tools [Updated Oct ’26]](https://railway.com/deploy/cobalt) — Cobalt Tools [Oct ’26] (Media Downloader, Converter & Automation) Self Host
- [Telegram Gateway](https://railway.com/deploy/railway-telegram-gateway) — Multi-bot Telegram webhook gateway with WebSocket event streaming

Open this page in a browser: https://railway.com/deploy/evolution-api-8
