Введение

Привет! Недавно на GitHub нашёл репозиторий Evolution API — открытое решение для работы с WhatsApp через API. После теста понял, что это отличная альтернатива WhatsApp Business API, а также платным сервисам Wazzup, Chat‑API и Green API.

Развернул Evolution API на своем VPS, настроил интеграцию с n8n, и получил полноценный инструмент для автоматизации работы с WhatsApp. В этой статье поделюсь своим опытом установки и настройки — весь процесс занял около часа, включая подключение к WhatsApp и создание простого рабочего автоответчика. Шаблон n8n выложу в своем Telegram канале “ProAi“

Что такое Evolution API и зачем он нужен

Evolution API — это REST API для работы с WhatsApp через веб-версию. По сути, это обертка над WhatsApp Web, которая позволяет:

  • Отправлять и получать сообщения программно

  • Работать с группами

  • Отправлять медиафайлы

  • Получать статус доставки

  • И многое другое

Главное преимущество перед платными сервисами Wazzup, Chat‑API, Green API и WhatsApp Business API:

  • Бесплатно (только затраты на хостинг)

  • Быстрый старт — можно развернуть за час

  • Open source — код открыт, можно изучить и доработать

Версия v2, которую я использую, более стабильная и имеет улучшенный веб-интерфейс для управления инстансами.

Вот ссылка на официальный репозиторий

Ну что ж начнем

Сначала установим Evolution API на сервер VPS

Изначально для своих Docker-контейнеров использовал Beget, но со временем стало понятно, что для множества AI-сервисов и автоматизаций нужно что-то более гибкое и бюджетное. После анализа нескольких провайдеров остановился на сервисе dockerhosting.ru — их предложение с 4GB RAM и 2 CPU за адекватные деньги оказалось оптимальным для моих задач. Я перенес с Beget все свои Docker-контейнеры на этот сервис.

VPS dockerhosting.ru

Плюс на VPS полный доступ по SSH, что позволяет гибко управлять всеми контейнерами через терминал. Docker и Portainer уже предустановлены, не нужно ничего дополнительно настраивать.

Также по словам менеджера в ближайшее время добавят локацию Нидерланды, ДНС сервер, шаблон n8n с авторазверткой и собственным доменом и прокси llm.

Установка Evolution API через терминал

Для развертывания Evolution API на VPS я обратился за помощью к Perplexity, так как сам в этом мало что смыслю.

Вот какую инструкцию он мне выдал, по ней я и делал установку:

Шаг 1. Подключение к VPS по SSH через терминал (Данные команды написаны для установки через терминал macOS. )

Первым делом подключаемся к серверу:

bash

ssh root@ваш_ip

Вводим пароль от VPS, пароль при вводе не будет виден. После успешного подключения терминал покажет приветственное сообщение сервера и командную строку вида:

root@vps-название:~#

Шаг 2. Проверка и установка Docker

Проверяем, установлен ли Docker (на dockerhosting.ru Docker установлен по умолчанию поэтому можно пропустить шаг 2 и сразу переходить к шагу 3):

bash

docker --version
docker compose version

Если Docker не установлен, устанавливаем:

bash

apt update
apt install -y docker.io docker-compose

Терминал покажет процесс установки пакетов. После завершения снова проверяем версии:

bash

docker --version
docker compose version

Вывод должен быть примерно таким:

Docker version 24.0.7, build 24.0.7-0ubuntu4
Docker Compose version v2.21.0

Шаг 3. Создание рабочей директории

Создаем директорию для Evolution API:

bash

mkdir -p ~/evolution-api
cd ~/evolution-api

Команда выполняется без вывода. Проверяем, что находитесь в нужной директории:

bash

pwd

Вывод:

/root/evolution-api

Шаг 4. Создание docker-compose.yaml

Создаем файл конфигурации:

bash

nano docker-compose.yaml

Откроется текстовый редактор nano. Вставляю следующую конфигурацию:

yaml

version: "3.9"

services:
  app:
    image: evoapicloud/evolution-api:v2.3.5
    restart: unless-stopped
    depends_on:
      postgres:
        condition: service_healthy
      redis:
        condition: service_started
    environment:
      # Сгенерируйте свой уникальный API ключ!
      AUTHENTICATION_API_KEY: ваш_уникальный_api_ключ_32_символа
      
      # Укажите IP вашего сервера
      SERVER_URL: http://ваш_ip:8099
      
      DEL_INSTANCE: "false"
      DATABASE_ENABLED: "true"
      DATABASE_PROVIDER: postgresql
      
      # ВАЖНО: пароль должен совпадать с POSTGRES_PASSWORD ниже
      DATABASE_CONNECTION_URI: postgresql://evolution:ваш_надежный_пароль@postgres:5432/evolution
      
      DATABASE_SAVE_DATA_INSTANCE: "true"
      DATABASE_SAVE_DATA_NEW_MESSAGE: "true"
      DATABASE_SAVE_MESSAGE_UPDATE: "true"
      DATABASE_SAVE_DATA_CONTACTS: "true"
      DATABASE_SAVE_DATA_CHATS: "true"
      DATABASE_SAVE_DATA_LABELS: "true"
      DATABASE_SAVE_DATA_HISTORIC: "true"
      DATABASE_CONNECTION_CLIENT_NAME: evolution_v2
      
      CACHE_REDIS_ENABLED: "true"
      # Добавлен пароль для Redis
      CACHE_REDIS_URI: redis://:ваш_redis_пароль@redis:6379/1
      CACHE_REDIS_PREFIX_KEY: evolution_v2
      CACHE_REDIS_SAVE_INSTANCES: "false"
      CACHE_LOCAL_ENABLED: "false"
      
      RABBITMQ_ENABLED: "false"
      S3_ENABLED: "false"
      
      CONFIG_SESSION_PHONE_VERSION: "2.3000.1023204200"
      
      CLEAN_STORE_CLEANING_INTERVAL: 7200
      CLEAN_STORE_MESSAGES: "true"
      CLEAN_STORE_MESSAGE_UP_TO: "false"
      CLEAN_STORE_CONTACTS: "true"
      CLEAN_STORE_CHATS: "true"
    ports:
      - "8099:8080"

  postgres:
    image: postgres:16-alpine
    restart: unless-stopped
    environment:
      POSTGRES_DB: evolution
      POSTGRES_USER: evolution
      POSTGRES_PASSWORD: ваш_надежный_пароль
    volumes:
      - pgdata:/var/lib/postgresql/data
    # УБРАНЫ ВНЕШНИЕ ПОРТЫ - БД доступна только внутри Docker сети
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U evolution -d evolution"]
      interval: 5s
      timeout: 3s
      retries: 20

  redis:
    image: redis:7-alpine
    restart: unless-stopped
    # Добавлен пароль для Redis
    command: ["redis-server", "--requirepass", "ваш_redis_пароль", "--save", "", "--appendonly", "no"]
    volumes:
      - redisdata:/data
   

volumes:
  pgdata:
  redisdata:

Важно! Перед сохранением замените:

  • ваш_уникальный_api_ключ_32_символа — на свой уникальный ключ (можно сгенерировать командой openssl rand -hex 16) Обязательно сохраните его где-то, так как он еще не один раз понадобится!

  • ваш_ip — на IP адрес вашего сервера

  • ваш_надежный_пароль — на надежный пароль для PostgreSQL (используйте один и тот же пароль в DATABASE_CONNECTION_URI и POSTGRES_PASSWORD) Тоже советую его сохранить!

  • ваш_redis_пароль — на надежный пароль для Redis (используйте один и тот же пароль в CACHE_REDIS_URI и в команде Redis --requirepass) Также сохраните этот пароль!

Рекомендация: Используйте разные пароли для PostgreSQL и Redis для большей безопасности.

Шаг 5. Генерация надежных паролей в терминале:

# Для PostgreSQL
openssl rand -base64 16

# Для Redis  
openssl rand -base64 16

# Для API ключа (32 символа hex)
openssl rand -hex 16

Сохраните все три значения в безопасном месте:

  1. API ключ Evolution API

  2. Пароль PostgreSQL

  3. Пароль Redis

Копируем полученный ключ и пароли, вставляем в docker-compose.yaml

Сохраняем файл:

  • Нажимаем

    Ctrl+O

    затем

    Enter

    для сохранения

  • Нажимаем

    Ctrl+X

    для выхода из nano

Шаг 6. Очистка старых данных (если это переустановка)

⚠️ КРИТИЧЕСКИ ВАЖНО: Команда ниже УДАЛИТ ВСЕ ДАННЫЕ:

  • Все инстансы WhatsApp и их подключения

  • Историю сообщений

  • Настройки webhook'ов

  • Контакты и чаты

Используйте только если:

  • Это первая установка

  • Вы хотите начать с чистого листа

  • Вы сделали бэкап важных данных

docker compose down -v

Альтернатива с сохранением данных:

Если нужно переустановить без потери данных:

# Остановить контейнеры (данные сохранятся)
docker compose stop

# Удалить только контейнеры (volumes остаются)
docker compose down

# Запустить заново
docker compose up -d

Бэкап данных перед удалением:

# Создать бэкап PostgreSQL
docker exec evolution-api-postgres-1 pg_dump -U evolution evolution > evolution_backup_$(date +%Y%m%d).sql

# После пересоздания volumes восстановить данные
docker exec -i evolution-api-postgres-1 psql -U evolution evolution < evolution_backup_20241112.sql

Шаг 7. Запуск контейнеров

Запускаем Docker Compose:

bash

docker compose up -d

Флаг -d запускает контейнеры в фоновом режиме. При первом запуске Docker начнет скачивать образы. Процесс занимает 1-3 минуты:

[+] Running 15/15
 ✔ redis 7 layers [⣿⣿⣿⣿⣿⣿⣿]      Pulled                    8.2s
 ✔ postgres 6 layers [⣿⣿⣿⣿⣿⣿]      Pulled                   7.5s
 ✔ app 8 layers [⣿⣿⣿⣿⣿⣿⣿⣿]      Pulled                    12.3s
[+] Running 4/4
 ✔ Network evolution-api_default       Created                  0.1s
 ✔ Container evolution-api-redis-1     Started                  1.2s
 ✔ Container evolution-api-postgres-1  Started                  1.5s
 ✔ Container evolution-api-app-1       Started                  2.3s

Шаг 8. Проверка статуса контейнеров

Проверяем, что все контейнеры запустились:

bash

docker compose ps

Вывод должен показывать три контейнера в статусе Up:

NAME                          IMAGE                                 SERVICE    STATUS              PORTS
evolution-api-app-1           evoapicloud/evolution-api:v2.3.5     app        Up 2 minutes        0.0.0.0:8099->8080/tcp
evolution-api-postgres-1      postgres:16-alpine                    postgres   Up 2 minutes (healthy)  0.0.0.0:5434->5432/tcp
evolution-api-redis-1         redis:7-alpine                        redis      Up 2 minutes        0.0.0.0:6389->6379/tcp

Важно обратить внимание на статус PostgreSQL — должно быть (healthy).

Шаг 9. Проверка логов

Проверяем логи Evolution API на наличие успешной миграции базы данных:

bash

docker logs evolution-api-app-1 -f

В логах должны быть строки:

╔═══════════════════════════════════════╗
║     Evolution API v2.3.5              ║
║     Starting application...           ║
╚═══════════════════════════════════════╝

[INFO] Connecting to database...
[INFO] Database connection established
[INFO] Running migrations...
[INFO] Migration succeeded
[INFO] Connecting to Redis...
[INFO] Redis ready
[SERVER] HTTP - ON: 8080
[INFO] Server is running on port 8080

Если видите Migration succeeded и Server is running on port 8080 — всё работает!

Для выхода из режима отслеживания логов нажимаем Ctrl+C.

Шаг 10. Проверка работы API через браузер

Открываем браузер и заходим на http://ваш_ip:8099.

Должны увидеть JSON-ответ:

json

{
  "status": 200,
  "message": "Welcome to the Evolution API, it is working!",
  "version": "2.3.5"
}

Отлично! Evolution API запущен и работает.

Полезные команды для управления

Прежде чем перейти к настройке, вот полезные команды для управления контейнерами:

Просмотр логов:

bash

# Логи Evolution API (включая Manager UI)
docker logs evolution-api-app-1 -f

# Логи PostgreSQL
docker logs evolution-api-postgres-1

# Логи Redis
docker logs evolution-api-redis-1

Управление контейнерами:

bash

# Остановка всех контейнеров
docker compose stop

# Запуск остановленных контейнеров
docker compose start

# Перезапуск контейнеров
docker compose restart

# Полное удаление контейнеров (данные сохранятся)
docker compose down

# Удаление контейнеров вместе с данными (ОСТОРОЖНО!)
docker compose down -v

Мониторинг:

bash

# Просмотр использования ресурсов в реальном времени
docker stats

# Проверка статуса контейнеров
docker compose ps

Проверка файрвола (если что-то не открывается):

bash

# Проверка статуса
sudo ufw status

# Открытие необходимых портов
sudo ufw allow 8099/tcp   # Evolution API и Manager UI
sudo ufw allow 5678/tcp   # n8n (если установлен)

Шаг 11. Проверка Evolution Manager

Хорошая новость: в Evolution API v2.3.5 веб-интерфейс Manager уже встроен в основной контейнер! Не нужно устанавливать ничего дополнительно.

Открываем браузер и заходим по адресу http://ваш_ip:8099/manager

Должна открыться страница Evolution Manager с интерфейсом управления инстансами.

Evolution Manager
Evolution Manager

Evolution Manager — это удобный веб-интерфейс для управления WhatsApp инстансами. Через него можно создавать инстансы, подключать WhatsApp, настраивать webhook'и и мониторить статус подключений.

Настройка Evolution API Manager

Создание инстанса

На главной странице Manager нажимаем Instance+.

Заполняем поля:

  • Instance Name:

    business-bot

    (или любое понятное название)

  • Token: Тот же API ключ, что указали в docker-compose

Нажимаем “Save”.

Подключение к WhatsApp

Далее нужно нажать на шестеренку созданного инстанса и потом на кнопку “Get QR Code

Появиться QR-код

Достаем телефон с WhatsApp:

  1. Открываем WhatsApp → Настройки → Связанные устройства

  2. Сканируем QR-код

Через несколько секунд статус инстанса меняется на Connected.

Готово! WhatsApp подключен к API. Теперь можем отправлять и получать сообщения через REST API.

Интеграция с n8n

Теперь самое интересное — настроим автоматическую обработку входящих сообщений через n8n.

Для начала установим community node для Evolution API

Перед созданием workflow рекомендую установить специальный пакет n8n-nodes-evolution-api — это community node, который значительно упрощает работу с Evolution API в n8n. Он предоставляет готовые ноды с преднастроенными параметрами вместо ручной настройки HTTP запросов.

Установка через интерфейс n8n:

  1. Открываем ваш n8n

  2. Переходим в Settings (иконка шестеренки в левом меню)

  1. Выбираем Community Nodes

  1. Нажимаем Install a community node

  1. В поле вводим:

    n8n-nodes-evolution-api
  2. Ставим галочку

  3. Нажимаем Install

n8n начнет установку пакета. Процесс занимает 1-2 минуты.

После установки в списке нод появятся новые:

Преимущества использования community node:

  • ✅ Готовые настройки для всех методов API

  • ✅ Автоматическая валидация данных

  • ✅ Понятный интерфейс без ручных HTTP запросов

  • ✅ Поддержка всех возможностей Evolution API

Примечание: Если у вас нет доступа к установке community nodes (например, на хостинговой версии n8n), можно использовать стандартную ноду HTTP Request, как описано ниже. Оба подхода работают одинаково эффективно.

Создание Webhook в n8n

Заходим в n8n и создаем новый workflow.

Добавляем ноду “Webhook”:

Настройки ноды “Webhook”:

  • HTTP Method: POST

  • Webhook URLs пока оставьте в режиме “Test URL“ далее после полной настройки и отладки workflow переключите на “Production URL“ главное потом не забудьте заменить адрес Webhook в настройках инстанса!

  • Path:

    evolution
  • Respond: Immediately

Копируем URL webhook — он должен быть вида:

http://ваш_ip:5678/webhook/evolution

Отлично! Теперь у нас есть конкретный адрес webhook. Возвращаемся в Evolution API Manager.

Настройка Webhook в Evolution Manager

Теперь, когда у нас есть URL webhook из n8n, нужно добавить его в настройки инстанса.

Заходим обратно в Evolution API Manager (http://ваш\_ip:8099), открываем настройки инстанса business-bot.

Переходим во вкладку “Events“ → “Webhook“ заполняем:

  • URL:

    http://ваш_ip:5678/webhook/evolution

    (тот что скопировали из n8n)

  • Далее включаем нужные события (Я пока включил эти):

    • messages.upsert (новые сообщения)

    • messages.update (обновления статусов)

    • connection.update (статус подключения)

    • Webhook Base64 (Отправка мультимедийных данных base64 в webhook)

Сохраняем настройки. Теперь Evolution API будет отправлять все события в наш n8n workflow.

Тестирование подключения

Чтобы проверить, что webhook работает, отправляю себе в WhatsApp тестовое сообщение с другого номера.

В n8n кликаю Listen for Test Event на Webhook ноде.

Отправляю сообщение "Тест" и смотрю в n8n — должны прийти данные.

Отлично! Данные приходят. Структура примерно такая:

json

{
  "headers": { ... },
  "body": {
    "event": "messages.upsert",
    "instance": "business-bot",
    "data": {
      "key": {
        "remoteJid": "79991234567@s.whatsapp.net",
        "fromMe": false,
        "id": "3EB0C431DF82B2F0A74E"
      },
      "pushName": "Алексей",
      "message": {
        "conversation": "Привет"
      },
      "messageType": "conversation",
      "messageTimestamp": 1699364789
    },
    "sender": "79991234567@s.whatsapp.net"
  }
}

Обратите внимание на структуру:

  • body.event — тип события

  • body.data.key.remoteJid — ID чата отправителя

  • body.data.key.fromMe — от меня ли сообщение

  • body.data.pushName — имя отправителя

  • body.data.message.conversation — текст сообщения

  • body.sender — номер отправителя

Создание автоответчика

Теперь создадим простой автоответчик, который будет отвечать на входящие сообщения.

Фильтрация входящих сообщений

Добавляем ноду “IF” после Webhook:

Настройки условия:

  • Condition:

    {{ $json.body.event }}

    Equal

    messages.upsert
  • И проверяем, что сообщение не от вас:

    {{ $json.body.data.key.fromMe }}

    Equal

    false

Это нужно, чтобы обрабатывать только входящие сообщения от клиентов, а не свои исходящие.

Извлечение данных

После IF добавляем ноду “Set” для удобной работы с данными:

Настраиваем переменные:

  • chatId:

    {{ $json.body.data.key.remoteJid }}
  • messageText:

    {{ $json.body.data.message.conversation }}
  • senderName:

    {{ $json.body.data.pushName }}

Отправка ответа через Evolution API

Здесь есть два варианта: использовать готовую ноду Evolution API (если установили community node) или стандартную ноду HTTP Request.

Вариант 1: С использованием Evolution API node (рекомендуется)

Добавляем ноду “Enviar texto”:

Настройки:

  • Recurso: Mensagem

  • Operação: Send Text

  • Nome Da Instancia:

    {{ $('Webhook').item.json.body.instance }}
  • Numero Do Destinatario:

    {{ $json.chatId }}
  • Text Message:

    Здравствуйте, {{ $json.senderName }}! Спасибо за ваше сообщение: "{{ $json.messageText }}". Мы получили вашу заявку и скоро свяжемся с вами.

В настройках “Credential to connect with” указываем:

  • API URL вашего Evolution:

    http://ваш_ip:8099
  • API Key: ваш API ключ от Evolution

Вариант 2: С использованием HTTP Request (универсальный)

Добавляю ноду HTTP Request для отправки ответа через Evolution API:

Настройки:

  • Method: POST

  • URL:

    http://ваш_ip:8099/message/sendText/ваше_имя_инстанса

Важно! Замените ваше_имя_инстанса на точное имя инстанса, которое вы создали в Evolution Manager (например, business-bot или Personal answering machine bot). Не используйте переменные в имени инстанса в URL — только статическое названи

  • Authentication: None

  • Send Query Parameters: Off (выключен)

  • Send Headers: On (включаем тогл - станет зеленым)

  • Specify Headers: Using JSON (выбираем из выпадающего списка)

В поле JSON для заголовков вставляем:

json

{
  "apikey": "ваш_api_ключ"
}

Где ваш_api_ключ — это тот же API ключ, что вы указали в docker-compose.yaml в параметре AUTHENTICATION_API_KEY.

Полный workflow

Итоговая схема workflow: Webhook → IF → Set → Evolution API / HTTP Request

Совет: Готовый workflow для автоответчика (с использованием community node Evolution API) можно скачать из моего Telegram канала ProAi. Там же публикую другие полезные автоматизации и интеграции с AI-инструментами.

Полезные ссылки для работы с API

Документация Evolution API v2: https://doc.evolution-api.com/

Основные эндпоинты:

bash

# Отправка текстового сообщения
POST http://ваш_ip:8099/message/sendText/{instance}

# Отправка медиафайла
POST http://ваш_ip:8099/message/sendMedia/{instance}

# Получение информации об инстансе
GET http://ваш_ip:8099/instance/fetchInstances

# Статус подключения
GET http://ваш_ip:8099/instance/connectionState/{instance}

Все запросы требуют header:

apikey: ваш_секретный_ключ

Проблемы, с которыми можно столкнуться

Хотя у меня все прошло практически гладко после того как разобрался с нюансами, вот несколько типичных проблем и их решения:

Ошибка подключения к базе данных

Причина: Несовпадение пароля в DATABASE_CONNECTION_URI и POSTGRES_PASSWORD.

Решение: Это самая частая ошибка! Убедитесь, что пароль в строке подключения:

DATABASE_CONNECTION_URI: postgresql://evolution:ваш_пароль@postgres:5432/evolution

точно совпадает с паролем в:

POSTGRES_PASSWORD: ваш_пароль

Если изменили пароль, нужно полностью пересоздать volumes:

bash

docker compose down -v
docker compose up -d

Evolution API не запускается - ошибка миграции

Причина: Старые данные в базе данных с другими настройками.

Решение: Полностью очистите volumes и запустите заново:

bash

docker compose down -v
docker volume ls | grep evolution
docker volume rm evolution-api_pgdata evolution-api_redisdata
docker compose up -d

WhatsApp отключается через некоторое время

Причина: WhatsApp Web имеет ограничения на количество одновременных подключений.

Решение: Используйте один телефон для одного инстанса. Не подключайте один номер к нескольким Evolution API одновременно.

Webhook не приходят в n8n

Причина: Неправильно указан URL webhook или порты закрыты.

Решение:

  1. Проверьте, что n8n доступен по указанному адресу

  2. Убедитесь, что в настройках инстанса указан правильный webhook URL

  3. Проверьте, что порт 5678 открыт на сервере

Ошибка "Authentication failed"

Причина: Неправильный API ключ.

Решение: Убедитесь, что в HTTP Request ноде в n8n указан тот же API ключ, что и в docker-compose.yml.

⚠️ Важное предупреждение о рисках

Прежде чем использовать Evolution API в продакшене, учтите следующее:

Evolution API работает через WhatsApp Web, что технически нарушает Условия использования WhatsApp. Хотя многие используют подобные решения без проблем, риск блокировки аккаунта существует, особенно при:

  • Массовых рассылках незнакомым людям

  • Высокой частоте отправки сообщений

  • Спам-активности

Рекомендации для минимизации рисков:

  1. Используйте отдельный номер для тестирования

  2. Не превышайте 100-150 сообщений в день

  3. Добавляйте задержки между сообщениями (3-10 секунд)

  4. Используйте только для ответов существующим клиентам

  5. Имитируйте естественное поведение человека

Для критичных бизнес-процессов рассмотрите официальный WhatsApp Business API, который гарантирует легальность и стабильность работы.


? Итого:

Можно ли использовать? Да, но с умом и осторожностью.

Для чего безопасно? Личная автоматизация, автоответчики для своих клиентов.

Для чего опасно? Массовые рассылки, спам, агрессивная автоматизация.

Главное правило: Ведите себя как человек, а не как бот! ?→?‍?

Резюме

Развертывание Evolution API на VPS оказалось проще, чем я ожидал. Основные преимущества подхода:

Полный контроль — все данные у вас на сервере
Бесплатно — только стоимость VPS (у меня ~250₽/мес)
Гибкость — интеграция с чем угодно через API
Масштабируемость — можно создать множество инстансов
Производительность — Redis кэширование значительно ускоряет работу
Удобство — готовые community nodes для n8n упрощают автоматизацию

Использование community node n8n-nodes-evolution-api значительно ускоряет разработку workflow — не нужно вручную настраивать каждый HTTP запрос, все работает из коробки.

Полезные материалы

Если у вас остались вопросы по настройке или хотите узнать больше про AI-автоматизацию — подписывайтесь на мой Telegram канал ProAi. Там регулярно публикую новости, гайды по AI-инструментам, автоматизации и новым сервисам.


Спасибо за внимание! Если материал оказался полезным — поддержите кармой, чтобы я мог публиковать чаще. В планах еще несколько гайдов по AI-автоматизации.

Комментарии (10)


  1. IgDem
    12.11.2025 12:56

    Есть мааааленький такой недостаток: если вы будете использовать такой или подобный вариант подключения к WhatsApp для более-менее массовых рассылок (50 клиентам в день напишете, что они записаны на завтра, например), ваш номер будет заблокирован.

    Ну и нельзя через такое отправлять сообщения с кнопками, только через WABA.


    1. cherus09 Автор
      12.11.2025 12:56

      У вас уже был такой опыт с Evolution API ?


  1. IgDem
    12.11.2025 12:56

    У меня есть опыт по подключению к WhatsApp всеми возможными способами. Единственный способ, допускающий массовые рассылки - WABA. Все остальное - блокируется рано или поздно (часы или дни).


  1. mixsture
    12.11.2025 12:56

    AI-generated configs с множественными уязвимостями?
    Я вот смотрю на yaml и думаю, что вы выставили в докере наружу порты СУБД и редиса. Насколько я помню, редис по умолчанию будет вообще без авторизации.


  1. mixsture
    12.11.2025 12:56

    Если изменили пароль, нужно полностью пересоздать volumes:

    bash

    docker compose down -v
    docker compose up -d

    И потерять все содержимое базы данных. Вы ведь руководство для новичка пишете, неплохо бы предупреждать о "небольшом стороннем эффекте" в виде утери базы.
    Ну и в целом операция "удалить все + заново все установить" выглядит крутоватой лишь для очистки volumes.


    1. cherus09 Автор
      12.11.2025 12:56

      Спасибо за замечание! Вы абсолютно правы, сделаю правки в статье.


      1. IgDem
        12.11.2025 12:56

        Я бы еще все-таки добавил предупреждение о невозможности использования этого в промышленных масштабах с массовыми рассылками. Если кто-то это обнаружит, сделав по вашей статье и получив заблокированный WA номер - неудобно получится, нет?


        1. cherus09 Автор
          12.11.2025 12:56

          Так я же написал предупреждение по этому поводу в конце статьи.


          1. IgDem
            12.11.2025 12:56

            Спасибо. Не увидел. Кстати, это иллюстрация того, что конец статьи не самое хорошее место для важного предупреждения. Как говорится: «так с этого и надо было начинать».