---
title: "Deploy gowa"
description: "GOWA by aldinokemal: WhatsApp REST API with Postgres and secure defaults"
category: "Bots"
url: https://railway.com/deploy/gowa
---

# Deploy gowa

GOWA by aldinokemal: WhatsApp REST API with Postgres and secure defaults

**[Deploy gowa on Railway](https://railway.com/template/gowa)**

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

- **Creator:** Cosmin Ionut Iordache's Projects
- **Category:** Bots

## Template content

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

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

### gowa https://raw.githubusercontent.com/aldinokemal/go-whatsapp-web-multidevice/main/gallery/gowa.svg

- **Image:** ghcr.io/aldinokemal/go-whatsapp-web-multidevice:v9.5.0
- **Health check:** /health
- **Public domain:** Yes

## Documentation

# Deploy and Host GOWA (WhatsApp REST API) with Railway

GOWA ([go-whatsapp-web-multidevice](https://github.com/aldinokemal/go-whatsapp-web-multidevice)) is a WhatsApp Web multi-device REST API written in Go. Link one or more WhatsApp numbers with a QR code, send messages and media over HTTP, and receive incoming messages on your own webhook.

> **Credits:** GOWA is created and maintained by [Aldino Kemal (@aldinokemal)](https://github.com/aldinokemal). All the credit for the software goes to him and the project's contributors. This is an unofficial community template that deploys his official Docker image, unmodified. If GOWA is useful to you, star [the repository](https://github.com/aldinokemal/go-whatsapp-web-multidevice) and report bugs or feature requests there.

## About Hosting GOWA

This template runs the official GOWA image pinned to a specific version, backed by PostgreSQL for the WhatsApp session keys and a small volume for GOWA's local SQLite store (device registry, chat history, scheduled sends). A strong Basic Auth password and a webhook signing secret are generated for every deploy, the healthcheck runs on `/health`, and only patch releases update automatically. You pick up bug fixes without surprise breaking changes.

## Common Use Cases

- Send WhatsApp notifications (OTPs, reminders, order updates) from your backend
- Receive incoming WhatsApp messages in your app through signed webhooks
- Give a SaaS product per-customer WhatsApp numbers (one device per customer)

## Dependencies for GOWA Hosting

- PostgreSQL (included): stores the WhatsApp session keys
- A volume at `/app/storages` (included): stores the device registry and chat history

### Deployment Dependencies

- Source: https://github.com/aldinokemal/go-whatsapp-web-multidevice
- API reference: `docs/openapi.yaml` in the repository
- Webhook payloads: `docs/webhook-payload.md` in the repository

### Implementation Details

1. Open the service URL and log in with the credentials in the `APP_BASIC_AUTH` variable (user `admin` plus a generated password).
2. Create a device and scan the QR code with WhatsApp → Linked devices.
3. Call the REST API with Basic Auth and the `X-Device-Id` header set to your device ID, for example `POST /send/message`.
4. To receive messages, add a `WHATSAPP_WEBHOOK` variable with your endpoint URL (comma-separated for several). Verify each request with the `X-Hub-Signature-256` header (HMAC-SHA256 of the raw body, using `WHATSAPP_WEBHOOK_SECRET`).

Important:

- **Keep replicas at 1.** A WhatsApp session cannot be shared between instances; running more than one corrupts it and can get the number banned.
- Do not delete the volume. It holds device IDs; losing it means relinking.
- GOWA uses the unofficial WhatsApp Web protocol. Using it may violate WhatsApp's Terms of Service and numbers can be banned. For regulated or high-volume use, prefer the official WhatsApp Business Cloud API.
- To upgrade to a new minor/major version, change the image tag in the service settings.

## Why Deploy GOWA on Railway?

Railway is a single 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 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 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/gowa
