Deploy GOWA (WhatsApp REST API)
GOWA 9.4: WhatsApp REST API and MCP server in Go, with webhooks.
Just deployed
/app/storages
Deploy and Host GOWA (WhatsApp REST API) on Railway
GOWA (go-whatsapp-web-multidevice) is a WhatsApp REST API and MCP server written in Go. It links WhatsApp accounts as companion devices and lets you send and receive messages, media, locations, polls and group actions over HTTP, with webhooks for incoming events. It supports several accounts in one instance.
About Hosting GOWA (WhatsApp REST API)
This template runs the official aldinokemal2104/go-whatsapp-web-multidevice:v9.4.0 image as one service. The dashboard and the whole API are behind basic auth (user admin and a generated password); only /health is public. Linked-device sessions and chat storage live in SQLite on a Railway volume at /app/storages, so paired accounts survive redeploys. Set WHATSAPP_WEBHOOK to receive incoming messages, signed with a generated secret. It is a single small Go binary and fits the Hobby plan. WhatsApp can ban numbers used for spam, so use a number you can afford to lose and respect their terms.
Common Use Cases
- Sending WhatsApp notifications from apps and n8n workflows
- Receiving WhatsApp messages in a chatbot through webhooks
- Giving AI agents WhatsApp tools over MCP
Dependencies for GOWA (WhatsApp REST API) Hosting
aldinokemal2104/go-whatsapp-web-multidevice:v9.4.0(official image)- A Railway volume at
/app/storages
Deployment Dependencies
Implementation Details
| Service | Source | Networking | Storage |
|---|---|---|---|
| gowa | aldinokemal2104/go-whatsapp-web-multidevice:v9.4.0 | public domain on 3000 | volume at /app/storages |
Pair a phone: open the dashboard, add a device and scan the QR code in WhatsApp → Linked devices. Or use the API:
curl -u admin:$GOWA_PASSWORD -X POST https:///devices -H 'content-type: application/json' -d '{"device_id":"main"}'
curl -u admin:$GOWA_PASSWORD -H 'X-Device-Id: main' https:///app/login
| Variable | Default | Purpose |
|---|---|---|
GOWA_PASSWORD | generated | Basic-auth password for user admin |
APP_BASIC_AUTH | admin:${{GOWA_PASSWORD}} | Accounts accepted by the API |
WHATSAPP_WEBHOOK | empty | URL(s) for incoming events |
WHATSAPP_WEBHOOK_SECRET | generated | HMAC secret for webhook signatures |
Notes:
- QR code images and received media are served from
/staticsunder random names without auth, and are not on the volume. - This template was tested up to QR generation; pairing a real phone was not tested.
This is a community-maintained deployment package and does not imply affiliation with or endorsement by the GOWA project or WhatsApp.
Why Deploy GOWA (WhatsApp REST 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 GOWA (WhatsApp REST 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.
Template Content
WHATSAPP_WEBHOOK
