OpenWA: бесплатный self-hosted шлюз WhatsApp API
Обзор OpenWA — бесплатного open-source шлюза WhatsApp API. Ключевые функции, развёртывание, сравнение с WAHA и Evolution API, плюсы и минусы.
OpenWA: бесплатный self-hosted шлюз WhatsApp API
«Разработан разработчиками для разработчиков» — именно так позиционирует себя OpenWA, предлагая полный контроль над инфраструктурой обмена сообщениями без скрытых платежей.
Что такое OpenWA и для кого он?
OpenWA — это бесплатный open-source шлюз WhatsApp API, разработанный для разработчиков, которым необходим полный контроль над инфраструктурой обмена сообщениями без привязки к вендору или скрытых платежей.
Проект представляет собой open-source платформу, предоставляющую HTTP API для интеграции с WhatsApp, и создан как бесплатная альтернатива платным решениям, таким как WAHA Plus.
Целевая аудитория:
- Backend-разработчики и стартапы, которым нужна WhatsApp-автоматизация
- Малый бизнес с техническими ресурсами
- DevOps-команды, строящие собственную инфраструктуру
- Участники open-source сообщества
Архитектура и технологический стек
OpenWA построен на подключаемой архитектуре, позволяющей переключать движки баз данных (SQLite/PostgreSQL), хранилища (Local/S3) и кэш-слои (Memory/Redis) без изменения единой строки кода приложения.
Проект написан на TypeScript с использованием NestJS и работает поверх whatsapp-web.js (Puppeteer), что обеспечивает надёжный fingerprint браузера.
graph TD
A[Ваше приложение / n8n] -->|REST API + API Key| B[OpenWA Gateway]
B --> C{Движок whatsapp-web.js}
C --> D[WhatsApp Web]
B --> E[SQLite / PostgreSQL]
B --> F[Redis Cache]
B --> G[S3 / MinIO Storage]
B --> H[React Dashboard]
B --> I[Webhooks / Socket.IO]
Ключевые возможности
📨 Обмен сообщениями
OpenWA поддерживает отправку текстовых сообщений, изображений, видео, документов и аудио, реакции на сообщения, массовую рассылку и отслеживание статуса доставки.
Пример отправки текстового сообщения через REST API:
curl -X POST http://localhost:2785/api/sessions/my-bot/messages/send-text \
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_API_KEY" \
-d '{
"chatId": "79001234567@c.us",
"text": "Привет от OpenWA! 🚀"
}'
🔄 Мультисессионность
OpenWA поддерживает полный REST API, мультисессионный режим, real-time вебхуки, веб-дашборд, аутентификацию по API-ключу и Swagger-документацию.
Каждая сессия авторизуется через QR-код и работает независимо:
# Запуск сессии
curl -X POST http://localhost:2785/api/sessions/{sessionId}/start \
-H "X-API-Key: YOUR_API_KEY"
# Получение QR-кода для сканирования
curl http://localhost:2785/api/sessions/{sessionId}/qr \
-H "X-API-Key: YOUR_API_KEY"
🪝 Вебхуки и Socket.IO
Для настройки вебхука достаточно передать URL назначения, список событий (например, message.received, session.status) и HMAC-секрет для верификации подписи.
Каждый вебхук снабжён полями deliveryId и idempotencyKey — это предотвращает дублирование обработки на стороне клиента.
Дополнительно поддерживается подписка на события через Socket.IO:
import { io } from 'socket.io-client';
const socket = io('http://localhost:2785/events', {
extraHeaders: { 'X-API-Key': 'your-api-key' },
transports: ['websocket'],
});
socket.on('connect', () => {
socket.emit('message', {
type: 'subscribe',
sessionId: 'sess_abc123',
events: ['message.received', 'session.status'],
});
});
🔧 Инфраструктурные возможности
Из коробки доступны: управление метками чатов, поддержка прокси на уровне сессии, rate limiting с настраиваемыми лимитами, CIDR-вайтлистинг для IP-контроля доступа и аудит-лог всех API-операций.
Для хранения данных поддерживаются SQLite (без конфигурации), PostgreSQL (для продакшена), Redis (опциональное кэширование), S3/MinIO (масштабируемое хранилище медиа), а для деплоя — Docker с готовыми health-check-пробами для Kubernetes.
🔗 Интеграция с n8n
Существует официальный пакет community-нод для n8n (@rmyndharis/n8n-nodes-openwa), позволяющий запускать n8n-воркфлоу при поступлении WhatsApp-событий — входящих сообщений или изменений статуса сессии.
Например, можно захватывать входящие сообщения и сохранять их в Google Sheets, используя цепочку: OpenWA Trigger → Google Sheets Append → OpenWA Send Text.
Также реализуема отправка WhatsApp-уведомлений при поступлении нового заказа: Webhook (New Order) → OpenWA Send Text с подтверждением заказа.
📦 Пакетная отправка (Bulk Messaging)
API поддерживает пакетную отправку сообщений с отслеживанием прогресса: поля total, sent, failed, pending, а также возможность отмены батча через POST /batch/:batchId/cancel.
Ограничения на размер медиафайлов:
- Изображения: до 16 МБ
- Видео: до 64 МБ
- Документы: до 100 МБ
- Стикеры: до 500 КБ
Установка и быстрый старт
Для быстрого старта достаточно склонировать репозиторий и запустить Docker Compose — дашборд будет доступен на порту 2886, API на 2785, Swagger-документация по адресу /api/docs.
# Клонирование и запуск
git clone https://github.com/rmyndharis/OpenWA.git
cd OpenWA
docker compose -f docker-compose.dev.yml up -d
# Доступ:
# Dashboard: http://localhost:2886
# API: http://localhost:2785/api
# Swagger: http://localhost:2785/api/docs
Альтернативно — локальный запуск через npm:
npm install
npm run dev
data/ — обязательно смените его перед выходом в продакшен.Тарифы и цены
OpenWA полностью бесплатен: лицензия MIT, отсутствие платных функций, данные хранятся на вашем сервере. Единственные возможные расходы — это аренда сервера для self-hosting.
| Компонент | Стоимость |
|---|---|
| Лицензия OpenWA | Бесплатно (MIT) |
| Все функции | Включены без ограничений |
| Хостинг (VPS) | От ~$5/мес (зависит от провайдера) |
| Поддержка | Community (GitHub Issues) |
Плюсы и минусы
| ✅ Плюсы | ❌ Минусы |
|---|---|
| 100% бесплатно, MIT-лицензия | Требует технических знаний для настройки |
| Полный контроль над данными | Не является официальным WhatsApp BSP |
| Все функции без paywall | Риск бана аккаунта при нарушении ToS WhatsApp |
| Docker-деплой в одну команду | Нет коммерческой поддержки |
| Swagger-документация | Молодой проект (v0.1.x) |
| Поддержка PostgreSQL, Redis, S3 | Зависимость от Puppeteer (тяжёлый процесс) |
| Интеграция с n8n | Необходимо самостоятельно обновлять |
| WebSocket + Webhook события | Сообщество пока небольшое |
Сравнение с альтернативами
WAHA (WhatsApp HTTP API) — популярная open-source альтернатива с тремя движками (WEBJS, NOWEB, GOWS) и возможностью развёртывания за 5 минут через Docker.
Evolution API — open-source решение для интеграции с WhatsApp без зависимости от Meta.
| Параметр | OpenWA | WAHA | Evolution API |
|---|---|---|---|
| Лицензия | MIT (всё бесплатно) | Core бесплатно, Plus — платно | Open Source |
| Мультисессии | ✅ | ✅ | ✅ |
| PostgreSQL | ✅ | ⚠️ (Plus) | ✅ |
| Redis кэш | ✅ | ⚠️ (Plus) | ✅ |
| S3/MinIO хранилище | ✅ | ⚠️ (Plus) | ✅ |
| React Dashboard | ✅ | ✅ | ✅ |
| n8n-ноды | ✅ (официальные) | ⚠️ (сторонние) | ✅ |
| Swagger-документация | ✅ | ✅ | ✅ |
| Возраст проекта | Новый (2025) | Зрелый | Зрелый |
| Сообщество | Растущее | Крупное | Крупное |
Структура проекта
openwa/
├── src/
│ ├── main.ts # Точка входа
│ ├── engine/ # Абстракция WhatsApp-движка
│ └── modules/
│ ├── session/ # Управление сессиями
│ ├── message/ # Обработка сообщений
│ ├── webhook/ # Управление вебхуками
│ ├── group/ # API групп
│ ├── contact/ # API контактов
│ └── auth/ # API-ключи
├── dashboard/ # React веб-дашборд
├── docs/ # Документация
├── docker-compose.yml
└── Dockerfile
Вердикт
OpenWA — комплексный API, превосходящий аналоги в разработке чат-ботов и автоматизации рабочих процессов, с обширной документацией и поддержкой интеграций со сторонними инструментами.
Проект привлекателен для:
- Разработчиков, которым нужна полная свобода без vendor lock-in
- Стартапов, ищущих бесплатный production-ready WhatsApp-шлюз
- DevOps-команд, строящих собственный мессенджинг-стек
- n8n-пользователей, желающих автоматизировать WhatsApp-сценарии
Рейтинг: 7.5 / 10
| Критерий | Оценка |
|---|---|
| Функциональность | 9/10 |
| Простота установки | 8/10 |
| Документация | 8/10 |
| Зрелость проекта | 5/10 |
| Сообщество | 6/10 |
| Стоимость владения | 10/10 |
OpenWA — молодой, но уже зрелый по функциональности проект. Если вы ищете бесплатный self-hosted WhatsApp API с богатым набором возможностей «из коробки» и готовы взять на себя ответственность за инфраструктуру — это один из лучших вариантов на рынке open-source решений прямо сейчас.