Данный проект прекратил своё развитие. Облегчённая версия чат-ботов.
Бот работает на виртуальном выделенном сервере с установленной операционной системой Ubuntu 16.04, поэтому дальнейшие инструкции будут применимы именно к ней.
- OS: Ubuntu 16.04
- CPU: 1x2.2 GHz
- RAM: 512 Mb
sudo npm i -g pm2
А также его настройка
Для сервера Redis использую также следующие параметры:
maxmemory 10mb
maxmemory-policy allkeys-lru
- How To Install Nginx on Ubuntu 16.04
- How To Secure Nginx with Let's Encrypt on Ubuntu 16.04
- Set Up Nginx as a Reverse Proxy Server
В текущей конфигурации, все sitename.com/api
запросы проксируются на локальный Node.js сервер (backend/server/).
Для остальных запросов раздаётся статика из директории фронтенд-билда.
git clone https://github.com/woodymikki/vk-chatbot.git
cd vk-chatbot
npm i
Для того, чтобы работало распознавание капчи пользователями через приложение сообщества, нужно его создать здесь (Embedded application → Community app) и настроить. ID приложения и Secure key нужно прописать в backend/config/config.js (см. ниже).
-
backend/config/accounts.default.js
Здесь находится информация об аккаунтах ботов. Ботов может быть несколько. -
backend/config/config.default.js
Основной конфиг приложения.
Необходимо заполнить все поля, заменив строки вида "<string>" на свои данные.
После завершения редактирования данных файлов, необходимо убрать у них постфиксы ".default".
Все команды выполняются в корневой директории проекта.
npm run build
npm start
npm run dev
Все команды, которые выполняет бот, находятся в папке backend/bot/commands. Имя файла является основным названием команды.
Модуль каждой команды должен экспортировать объект следующего вида:
{
/**
* Алиасы команды.
* @type {Array of String}
* @optional
*/
aliases,
/**
* Описание команды (доступно по команде: /команда /?).
* @type {String}
* @optional
*/
help_text,
/**
* Функция, которая выполняется при вызове команды.
* На вход первым аргументом принимает объект:
* {
* bot: Bot, // Экземпляр "Bot" (backend/bot/base/Bot/index.js)
* args: CommandArguments, // Экземпляр "CommandArguments" (backend/bot/events/helpers/command-arguments.js)
* options: Object // Настройки команды (backend/config/config.js#commands.<command_name>)
* }
* @type {Function}
* @required
* @async
*/
run,
/**
* Уникальность команды:
* 'mchat': доступна только в беседах;
* 'pm': доступна только в личных сообщениях;
* '': доступна везде.
* @type {String}
* @optional
*/
uniqueness
}