- Склонировать репозиторий и перейти в папку с ним
- скопировать настройки среды командой
cp .env.example .env
- Прописать команду:
make chat-compose-up
. Она создаст инстанс рокетчата и поднимет контейнер с ним: нужно дождать полной загрузки:
- Подгрузить дамп чата
make load-chat-dump
, подождать, пока дамп подгрузится
- Прописать команду
make bot-compose-up
: она поднимет бота и подключится к инстансу рокетчата. Также нужно подождать, пока бот загрузится полностью:
- Подключиться к рокетчату через браузер по
localhost:3000
- Авторизоваться: логин
for_dump
; пароль123456
Если все сделано правильно, то на экране откроется рокет чат с 5 каналами:
- для проверки, что бот доступен, напишите в канал #general команду
!find_unanswered
- в ответ бот должен переслать сообщения без ответа:
- команды
make bot-compose-down
иmake chat-compose-down
соответственно удалят ранее поднятые контейнеры, если вы закончили работу
!find_unanswered
: пересылает все сообщения без ответа, которые были в открытых или закрытых каналах (команды бота или сообщения со специфической реакцией ⚙️ не учитываются). Доступны флаги--from
и--to
с указанием времени в форматеГГГГ-ММ-ДД ЧЧ:ММ:СС
: позволяют сделать срез с определенной даты и до определенной даты. (пример:!find_unanswered --from 2025-05-12 18:33:01 --to 2025-05-13 18:33:01
)!stats
: присылает в ответ статистику по инстансу в csv файле, собранную с открытых и закрытых каналов. Доступны флаги:--from
и--to
с указанием времени в форматеГГГГ-ММ-ДД ЧЧ:ММ:СС
: позволяют сделать срез с определенной даты и до определенной даты; а также флаги--users
,--roles
и--channels
, с указанием пользователей, каналов или ролей после соответствующего флага, чтобы сделать статистику уже по запросу пользователя. (пример:!stats --from 2025-05-12 18:33:01 --to 2025-05-13 18:33:01 --users for_dump
)find_message
: пересылает в ответ все сообщения, которые соответствуют заданному регулярным выражением паттерну. (пример:!find_message Вопрос\sбез\sответа
) Замечание: пробелы нужно заменять \s, иначе символы после них будут отбрасываться.!time
: если настроена интеграция с Telegram (см Интеграция с Telegram ниже), то присылает уведомление пользователю в Telegram и выводит текущее время.!refresh
: обновляет список каналов, в которых бот будет отвечать.
- При написании сообщения в чат со знаком вопроса, бот ответит на него в треде полезными ссылками (пока что просто ссылкой одной)
- Привилегированные пользователи (роли задаются в .env, по умолчанию - admin) могут ставить реакции ⚙️ на сообщения, чтобы бот игнорировал их (реакция поставленная пользователем других ролей учитываться не будет)
- Создайте своего бота, используя @BotFather. Инструкции по созданию бота есть в интернете, например: ссылка.
- В файле
.env
с новой строки запишите токен, созданного вами бота (который выглядит как123456:ABC-DEF1234ghIkl
) в форматеTELEGRAM_TOKEN=<your token>
(смотрите пример в файле.env.example
). - Узнайте свой ID пользователя в Telegram. Для этого вы можете воспользоваться ботом @getmyid_bot (скопируйте именно user ID, а не chat ID).
- В файле
.env
с новой строки запишите ID пользователей, которым бот должен присылать сообщения в формате (TELEGRAM_USERS_ALLOW_LIST=875,8907
) (смотрите пример в файле.env.example
). Можно указать один ID, можно несколько через запятую. - Отправьте вашему боту команду
/start
в Telegram-чате. Он никак не отреагирует - это нормально. Это нужно, чтобы бот мог писать вам сообщения (если бот должен оповещать нескольких пользователей, все они также должны запустить у себя бота).
Если всё пройдёт успешно, бот будет присылать вам сообщения подобного вида: requests:INFO - Command.TIME None
При необходимости изменить файл .env
:
ROCKET_CHAT_USER
- имя бота в чате
ROCKET_CHAT_PASSWORD
- пароль бота в чате
PRIVILEGED_ROLES
- через запятую указываются привилегированные роли (по умолчанию только 'admin')
ENV_TYPE
- любой кроме dev (по умолчанию, в случае отствувия, будет dev)
Настройка чата
Боту необходимо выдать разрешение, указанное на картинке ниже (Administration > Workspace > Permissions
)
Также необходимо применить настройки, изображённые на картинке ниже Administration > Workspace > Settings > General > REST API
- Нажмите
New User
в правом верхнем углу - Заполните поля:
- Логин/пароль → должны совпадать с
.env
файлом - Почта/имя → любые значения (не критично)
- Роль → обязательно выберите
bot
- Логин/пароль → должны совпадать с
Готово! Бот создан. Теперь добавьте его в нужные каналы.
Можно добавлять точно так же, но можно сразу во все:
При создании бота отметьте галочку:
[✓] Присоединить к публичным каналам
→ бот добавится автоматически.
make bot-compose-up