---
title: "Deploy chatbot-whatsapp"
description: "WhatsApp Gateway + Evolution API with multi-LLM bots"
category: "Bots"
url: https://railway.com/deploy/chatbot-whatsapp
---

# Deploy chatbot-whatsapp

WhatsApp Gateway + Evolution API with multi-LLM bots

**[Deploy chatbot-whatsapp on Railway](https://railway.com/template/chatbot-whatsapp)**

Machine-readable deploy manifest (JSON, validated by TemplateCI): https://railway.com/deploy/chatbot-whatsapp/manifest.json

- **Creator:** ProfesIA
- **Category:** Bots
- **Total deploys:** 1

## Template content

### chatbot-whatsapp

- **Source:** https://github.com/ProfesIA-IA/chatbot-whatsapp
- **Public domain:** Yes

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

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

### 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"`

### MySQL https://devicons.railway.app/i/mysql.svg

- **Image:** mysql:9.4
- **Start command:** `docker-entrypoint.sh mysqld --innodb-use-native-aio=0 --disable-log-bin --performance_schema=0 --innodb-buffer-pool-size=1G`

### evolution-api

- **Image:** evoapicloud/evolution-api:v2.3.7
- **Public domain:** Yes

## Documentation

# Deploy and Host WhatsApp Gateway + Evolution API on Railway

One-click production stack: Evolution API (WhatsApp), Postgres, Redis, MySQL, and a ProfesIA-branded gateway UI with multi-LLM bots (Gemini, OpenAI, Claude, Groq).

## About Hosting WhatsApp Gateway + Evolution API

This template provisions a full WhatsApp operations stack on Railway: Evolution API for WhatsApp sessions, a gateway UI for QR linking / chats / bots, plus Postgres, Redis, MySQL, and a persistent volume for device sessions.

## Why Deploy WhatsApp Gateway + Evolution API

- Ship a production WhatsApp bot without managing Baileys servers yourself.
- Keep sessions across redeploys with a mounted volume.
- Run multi-LLM bots (Gemini, OpenAI, Claude, Groq) behind one gateway UI.
- Use private networking between gateway and Evolution, with reliable public webhooks for inbound messages.

## Common Use Cases

- Customer support bots on WhatsApp
- Internal ops / notifications for teams
- Multi-instance WhatsApp linking with QR and reconnect flows
- Experimenting with Groq / Gemini / GPT / Claude replies on live chats

## Dependencies for WhatsApp Gateway + Evolution API

### Deployment Dependencies

| Service | Purpose |
|---|---|
| evolution-api | WhatsApp REST API (Baileys `evoapicloud/evolution-api:v2.3.7`) |
| Postgres | Evolution persistence |
| Redis | Evolution cache/sessions |
| Volume `/evolution/instances` | QR/session files across redeploys |
| whatsapp-gateway | Manager UI + chatbot + chats + activity log |
| MySQL | Gateway data (instances, LLM keys, events) |

### After deploy

1. Open the **whatsapp-gateway** public URL.
2. Log in with `DEFAULT_ADMIN_USER` / `DEFAULT_ADMIN_PASSWORD` from the gateway **Variables** tab (password is auto-generated).
3. Optional: set `GEMINI_API_KEY`, `GROQ_API_KEY`, `OPENAI_API_KEY`, or `ANTHROPIC_API_KEY` — or add models in the UI (**Modelos**).
   - If `GROQ_API_KEY` is set, the first migrate seeds working Groq chat models (`openai/gpt-oss-20b`, `openai/gpt-oss-120b`, `qwen/qwen3.6-27b`, `qwen/qwen3.8-27b`).
4. Create an instance → scan QR (auto-generated when disconnected) → enable the bot → pick a model.

### Architecture

```
Browser → WhatsApp Gateway → Evolution API → WhatsApp
                ↑                  │
           public webhook     Postgres + Redis
                │
              MySQL
```

Gateway ↔ Evolution API uses Railway private networking. Evolution webhooks call the gateway public URL so message events are reliable.

### Security

- `AUTHENTICATION_API_KEY` is generated with `${{secret(64)}}` and shared automatically.
- Default admin password is generated with `${{secret(20)}}` — change it after first login if you prefer.
- Never commit real API keys to git.

### Source

GitHub: `ProfesIA-IA/chatbot-whatsapp`  
IaC: `.railway/railway.ts`


## Similar templates

- [Telegram JavaScript Bot](https://railway.com/deploy/5lRkWa) — A template for Telegram bot in JavaScript using grammY
- [Cobalt Tools [Updated Sep ’26]](https://railway.com/deploy/cobalt) — Cobalt Tools [Sep ’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/chatbot-whatsapp
