bolt Valebyte VPS from $4/mo — NVMe, 60s deploy.

Get a VPS arrow_forward

WhatsApp-бот на VPS через Baileys: безкоштовно замість WhatsApp

calendar_month May 08, 2026 schedule 7 хв. читання visibility 461 переглядів
person
Valebyte Team
WhatsApp-бот на VPS через Baileys: безкоштовно замість WhatsApp
summarize

TL;DR

  • Baileys дозволяє безкоштовно обходити ліміти WABA та модерацію, заощаджуючи від $0.005 за кожне повідомлення.
  • Для роботи бота достатньо VPS з 1 vCPU та 2 GB RAM, що значно дешевше за платні API-шлюзи.
  • Бібліотека використовує WebSocket замість браузера, радикально знижуючи споживання ресурсів сервера.
  • Сесія зберігається локально, дозволяючи боту автоматично відновлювати роботу після перезавантаження.
Для запуску WhatsApp-бота на VPS через бібліотеку Baileys достатньо сервера з 1 vCPU, 2 GB RAM та ОС Ubuntu, що дозволяє повністю виключити платежі в розмірі від $0.005 за повідомлення, характерні для офіційного WhatsApp Business API (WABA) або провайдерів на кшталт Twilio.

Навіщо використовувати whatsapp бот vps замість офіційного API

Офіційне рішення WhatsApp Business API (WABA) накладає на бізнес безліч обмежень: від необхідності верифікації компанії до суворої модерації шаблонів повідомлень. Використання wa bot self host рішень на базі бібліотеки Baileys дозволяє обійти ці бар'єри, перетворюючи звичайний номер телефону на повноцінний шлюз для автоматизації. Основна перевага тут — повна свобода у виборі контенту та відсутність плати за діалоги.

Економічна вигода self-hosted рішень

При використанні платних API, таких як Twilio або MessageBird, вартість одного вихідного повідомлення може становити близько $0.005. При розсилці на 10 000 контактів бюджет складе $50. У той же час оренда VPS для запуску baileys whatsapp обійдеться в $5-$10 на місяць без обмежень на кількість повідомлень. Різниця у витратах стає колосальною при масштабуванні проекту.

Технічні переваги Baileys

Бібліотека Baileys написана на TypeScript і є однією з найстабільніших реалізацій протоколу WhatsApp Web. На відміну від рішень на базі Selenium або Puppeteer, вона не запускає повноцінний екземпляр браузера Chrome, що радикально знижує споживання ресурсів сервера. Це дозволяє запускати десятки ботів на одному бюджетному VPS. Якщо ви вже налаштовували Telegram-бота 24/7 на VPS, то принципи роботи з асинхронними подіями в Baileys здадуться вам знайомими.

Архітектура baileys whatsapp та системні вимоги

Робота whatsapp web api через Baileys будується на емуляції багатокористувацького режиму (Multi-Device). Сервер підключається до серверів WhatsApp, використовуючи WebSocket-з'єднання, і обмінюється зашифрованими даними. Ключовим моментом є зберігання сесії: після сканування QR-коду ключі аутентифікації зберігаються в локальній папці або базі даних, що дозволяє боту автоматично перепідключатися після перезавантаження VPS.

Мінімальні та рекомендовані характеристики сервера

Для стабільної роботи одного-двох ботів достатньо найпростіших тарифів, однак для високонавантажених систем (розсилки на тисячі номерів) варто закладати запас по оперативній пам'яті.

Характеристика Мінімум (1-2 бота) Оптимально (10+ ботів)
Процесор (vCPU) 1 Core (2.0 GHz+) 2-4 Cores
Оперативна пам'ять (RAM) 1 GB 4-8 GB
Диск (NVMe) 10 GB 40 GB+
Операційна система Ubuntu 22.04 LTS Ubuntu 22.04 / Debian 11

Чому важливо використовувати NVMe диски

При активному листуванні Baileys постійно записує стан сесії та кешує медіафайли. Використання швидких NVMe дисків на VPS запобігає затримкам (lag) при обробці вхідних вебхуків, особливо коли бот обробляє сотні одночасних діалогів. Це критично для забезпечення миттєвого відгуку, порівнянного з роботою wa-mate або інших комерційних шлюзів.

Шукаєте надійний сервер для ваших проектів?

VPS від $10/міс та виділені сервери від $9/міс з NVMe, DDoS-захистом та підтримкою 24/7.

Дивитись пропозиції →

Покрокова установка wa bot self host на VPS

Для початку роботи необхідно підготувати середовище виконання Node.js. Ми рекомендуємо використовувати версію LTS (на даний момент 18 або 20), оскільки Baileys активно використовує сучасні можливості JavaScript та типізацію TypeScript.

Підготовка оточення в Ubuntu

Підключіться до вашого VPS по SSH та виконайте оновлення пакетів:

sudo apt update && sudo apt upgrade -y
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs build-essential

Після встановлення Node.js створіть директорію для проекту та ініціалізуйте його:

mkdir wa-bot && cd wa-bot
npm init -y
npm install @whiskeysockets/baileys pino qrcode-terminal

Налаштування авторизації та QR-логіна в /tmp

Однією з особливостей роботи в Linux-контейнерах або на серверах з обмеженими правами доступу є вибір місця для зберігання сесії. Часто розробники використовують директорію /tmp для тимчасових ключів, але для постійного бота краще створити виділену папку auth_info в корені проекту. Це забезпечить збереження сесії при перезавантаженні програми.

Приклад базового коду для запуску та генерації QR-коду в терміналі:

const { default: makeWASocket, useMultiFileAuthState } = require('@whiskeysockets/baileys')
const qrcode = require('qrcode-terminal')

async function startBot() {
    const { state, saveCreds } = await useMultiFileAuthState('auth_info')
    const sock = makeWASocket({
        auth: state,
        printQRInTerminal: true
    })

    sock.ev.on('creds.update', saveCreds)
    sock.ev.on('connection.update', (update) => {
        const { connection, lastDisconnect } = update
        if(connection === 'close') {
            console.log('Соединение закрыто, перезапуск...')
            startBot()
        } else if(connection === 'open') {
            console.log('Бот успешно подключен!')
        }
    })
}

startBot()

Якщо ви плануєте інтегрувати бота з CRM, зверніть увагу на Self-hosted Chatwoot. Це дозволить об'єднати повідомлення з WhatsApp та інших каналів в єдиному інтерфейсі на вашому власному сервері.

rocket_launch Quick pick

Looking for a server that just works?

Valebyte VPS — NVMe, 24/7 support, deploy in 60 seconds.

View VPS plans arrow_forward

Реалізація whatsapp web api: вебхуки та обробка повідомлень

Щоб ваш whatsapp бот vps був корисний, він повинен вміти реагувати на вхідні повідомлення та пересилати їх у зовнішні системи (наприклад, у вашу базу даних або CRM через вебхуки). Baileys надає зручну систему подій для моніторингу нових повідомлень.

Обробка вхідного тексту

Для фільтрації спаму та обробки команд використовуйте слухач події messages.upsert. Важливо враховувати, що WhatsApp надсилає повідомлення пачками, тому код повинен вміти ітеруватися по масиву вхідних даних.

sock.ev.on('messages.upsert', async m => {
    const msg = m.messages[0]
    if (!msg.key.fromMe && m.type === 'notify') {
        const text = msg.message.conversation || msg.message.extendedTextMessage?.text
        const remoteJid = msg.key.remoteJid

        console.log(`Получено сообщение от ${remoteJid}: ${text}`)
        
        if (text === 'Привет') {
            await sock.sendMessage(remoteJid, { text: 'Здравствуйте! Чем я могу помочь?' })
        }
    }
})

Інтеграція з n8n для автоматизації

Для створення складних ланцюжків без написання сотень рядків коду на Node.js, можна використовувати Self-hosted n8n. Ви можете налаштувати бота так, щоб він відправляв кожне вхідне повідомлення POST-запитом в n8n, де відбуватиметься логіка обробки (наприклад, запит до ChatGPT або пошук в Google Таблицях), і повертав відповідь назад у WhatsApp.

Ризики блокувань та обхід обмежень wa-mate

Головний ризик при використанні неофіційного whatsapp web api — бан номеру. WhatsApp активно бореться з автоматизацією, використовуючи алгоритми машинного навчання для виявлення ботів. Якщо ваш номер буде заблоковано, відновити його для роботи з API буде вкрай складно.

Як уникнути бану при розсилках

  • Прогрів номеру: Не починайте масові розсилки з нового номеру. Протягом перших 7-14 днів використовуйте його для звичайного листування з "довіреними" контактами, які занесли вас в адресну книгу.
  • Використання проксі: Якщо ви запускаєте декілька ботів на одному VPS, WhatsApp може заблокувати їх всі по IP. Для кожного бота рекомендується використовувати індивідуальний резидентський або мобільний проксі. Це особливо актуально, якщо ви займаєтесь такими задачами, як парсинг Wildberries/OZON/Avito на VPS, де антибан-технології відіграють ключову роль.
  • Рандомізація затримок: Ніколи не відповідайте миттєво. Додайте випадкову затримку в 2-5 секунд перед відправкою повідомлення, щоб імітувати дії реальної людини.
  • Ліміти: Не відправляйте більше 50-100 повідомлень на годину незнайомим користувачам. Якщо користувачі почнуть натискати кнопку "Поскаржитись", бан прилетить миттєво.

Порівняння з wa-mate та іншими шлюзами

Сервіси типу wa-mate по суті є обгортками над тим же Baileys або аналогічними бібліотеками, надаючи зручний HTTP API за щомісячну підписку. Розгортаючи рішення самостійно на VPS, ви отримуєте той же функціонал, але зберігаєте повний контроль над даними та економите від $30 до $100 на місяць на підписках.

Порівняння витрат: Baileys на VPS vs Twilio API

Для бізнесу вибір між self-hosted рішенням та офіційним API часто зводиться до математики та оцінки ризиків. Нижче приведена таблиця приблизних витрат при обсязі 50 000 повідомлень на місяць.

Стаття витрат Twilio (WABA) Baileys (VPS)
Оренда сервера / Підписка $0 (але є мінімальні чеки) $10 (Valebyte VPS)
Вартість 50к повідомлень ~$250 (залежить від країни) $0
Верифікація компанії (FB Business) Обов'язкова Не потрібна
Ризик блокування Низький (при дотриманні правил) Середній/Високий (залежить від спаму)
Всього на місяць $250+ $10

Як видно з таблиці, wa bot self host вигідніше в 25 разів. Проте варто враховувати витрати на технічну підтримку та моніторинг працездатності скрипта. Для забезпечення аптайму 99.9% рекомендується використовувати менеджер процесів PM2.

rocket_launch Quick pick

Looking for a server that just works?

Valebyte VPS — NVMe, 24/7 support, deploy in 60 seconds.

View VPS plans arrow_forward

Розгортання та моніторинг 24/7

Щоб ваш бот не "падав" після закриття SSH-сесії, необхідно використовувати PM2. Це стандарт індустрії для Node.js додатків, що дозволяє автоматично перезапускати скрипт при помилках або перезавантаженні сервера.

Налаштування PM2

sudo npm install -g pm2
pm2 start index.js --name "whatsapp-bot"
pm2 save
pm2 startup

Тепер бот буде працювати у фоновому режимі. Для перегляду логів в реальному часі використовуйте команду pm2 logs whatsapp-bot. Це дозволить оперативно відслідковувати помилки авторизації або проблеми з WebSocket-з'єднанням.

Моніторинг ресурсів

Хоча Baileys споживає небагато ресурсів, при великій кількості діалогів може виникнути витік пам'яті (memory leak). Рекомендується налаштувати ліміт оперативної пам'яті в PM2, щоб процес перезапускався при досягненні, наприклад, 500 MB RAM:

pm2 start index.js --max-memory-restart 500M

Для більш просунутого відстеження помилок можна інтегрувати Self-hosted Sentry, що дозволить отримувати повідомлення про збої в коді бота до того, як клієнти почнуть скаржитись на відсутність відповідей.

Висновки

Використання Baileys на VPS — це найбільш ефективний спосіб запустити WhatsApp-бота для малого та середнього бізнесу без величезних витрат на офіційне API. Для стабільної роботи достатньо сервера з 2 GB RAM та дотримання правил "прогріву" номеру, що забезпечить безперебійний зв'язок з клієнтами при мінімальних вкладеннях в інфраструктуру.

Готові обрати сервер?

VPS та виділені сервери в 72+ країнах з миттєвою активацією та повним root-доступом.

Почати зараз →
support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.