High-performance WhatsApp Gateway API with Queue support (Redis + BullMQ) built on Baileys.
1.3K
A robust, queue-based WhatsApp Gateway API built with Node.js, Express, Baileys, and BullMQ (Redis). Designed for high concurrency, reliability, and secure authentication using Argon2.
scheduleAt (ISO 8601 format).Since this image uses secure hashing, you cannot just put "my-password" in the config. You need to generate an Argon2 hash of your desired API Key.
Run this command locally to get your hash string:
npx argon2-cli "your-super-secret-password"
# Output example: $argon2id$v=19$m=65536,t=3,p=4$KBk...
Create a .env file and a docker-compose.yml file in your directory.
.env fileā ļø CRITICAL: You MUST escape the $ signs in your hash by doubling them ($$) when putting them in the .env file for Docker Compose.
NODE_ENV=production
PORT=3001
# CORS Configuration
ALLOWED_ORIGIN=*
# YOUR HASHED PASSWORD (Remember to use $$ instead of $)
API_SECRET_HASH=$$argon2id$$v=19$$m=65536,t=3,p=4$$i2grMA559rFdFwWWFanIRg$$dG+80Hw+VDhxHBXYnPAoWDFsa4zTgcxWs7CWdFI717o
# Redis Config
REDIS_HOST=redis-queue
REDIS_PORT=6379
REDIS_PASSWORD=password_redis_rahasia
docker-compose.ymlversion: "3.8"
services:
# Service 1: WA Gateway Application
wa-gateway:
image: ezdevv/wa-gateway:latest
container_name: wa-gateway-app
restart: unless-stopped
ports:
- "${PORT}:${PORT}"
env_file:
- .env
environment:
- PORT=${PORT}
- REDIS_HOST=${REDIS_HOST}
- REDIS_PORT=${REDIS_PORT}
- REDIS_PASSWORD=${REDIS_PASSWORD}
- API_SECRET_HASH=${API_SECRET_HASH}
volumes:
- ./auth_info_baileys:/app/auth_info_baileys
depends_on:
- redis-queue
# Service 2: Redis
redis-queue:
image: redis:alpine
container_name: redis-wa-queue
restart: always
command: redis-server --requirepass ${REDIS_PASSWORD} --maxmemory-policy noeviction
volumes:
- redis_data:/data
ports:
- "${REDIS_PORT}:${REDIS_PORT}"
volumes:
redis_data:
Start the containers:
docker-compose up -d
View the logs to see the QR Code and scan it with your WhatsApp:
docker logs -f wa-gateway-app
Send Message Endpoint
http://localhost:3001/sendx-api-key -> Enter your Plain Text Password (NOT the hash).curl --location 'http://localhost:3001/send' \
--header 'Content-Type: application/json' \
--header 'x-api-key: your-super-secret-password' \
--data '{
"number": "6281234567890",
"message": "Hello from Docker!",
"scheduleAt": "2026-01-29T08:44:24.527Z"
}'
Disclaimer: This project is not affiliated with WhatsApp. Use responsibly.
Content type
Image
Digest
sha256:1d5b435c6ā¦
Size
90.9 MB
Last updated
6 months ago
docker pull ezdevv/wa-gateway