-
Notifications
You must be signed in to change notification settings - Fork 0
Скачивание, настройка и запуск бота
Привет! Эта инструкция намерена упростить понимание того, как настроить этого бота для своих целей. Постараюсь изложить всё подробно и в то же время кратко
Скачать исходники можно используя веб-интерфейс на главной странице репозитория:
или используя напрямую ссылку, чтобы лишний раз не переходить по страницам туда сюда
Далее, после того, как архив скачался, его нужно разархивировать
Ура, первый этап готов! Перейдем к немного неприятной, но в то же время важной операцией - настройка
Создать бота можно с помощью мастер-бота BotFather. Сильно много расписывать не буду о его создании не буду, т.к. бот сам рассказывает подробно что нужно делать. После того, как бот будет создан, нужно будет сохранить токен:
Warning
Токен бота нельзя ни при каких обстоятельствах кому либо передавать или показывать, так как иначе ботом может воспользоваться кто угодно и сделать с ним всё что угодно
Однако, если мы оставим всё как есть, то бот не будет работать именно так, как он был задуман. Для этого нужно включить Inline режим:
- Через команду
/mybots
, выбираем нашего бота - Далее, нажимаем
Bot Settings
- Переходим в
Inline Mode
- И теперь, нажимаем
Turn inline mode on
- (Опционально) Можно также поставить текст, который будет указан, если мы вызовем бота через
@
. Для этого, в том же меню, нажмите кнопкуEdit inline placeholder
Всё! Бот готов, теперь осталось настроить базу данных и парочку остальных данных, необходимых для работы
В качестве базы данных используется PostgreSQL для версии 3.x (и для 1.x-2.x версий использовалась MongoDB). Подробная инструкция по подготовке к переходу на новую базу данных расписана здесь
Нам осталось теперь получить два значения: CREATOR_ID
и STICKER_FILE_ID_FOR_DEEPLINK
CREATOR_ID
- это Ваш ID. Он нужен, чтобы была возможность пользоваться ботом из личных сообщений. Используя этого бота, можно получить свой ID. Отправьте любое сообщение и скопируйте ID из секции You
STICKER_FILE_ID_FOR_DEEPLINK
отвечает за ID стикера, который бот отправляет при нажатии на кнопку над вариантами реплик:
Используя того же бота, отправляем ему стикер. Копируем file_id
(главное не брать из thumbnail
)
Открываем исходники, копируем .env.example
и переименовываем в .env
. Подставляем все нужные данные, которые мы скопировали ранее
Note
STICKER_FILE_ID_FOR_DEEPLINK
является необязательным. В таком случае, бот будет игнорировать нажатие на кнопку выше реплик
Если хочется запускать бота у себя на компьютере или на другой машине, которая будет работать 24/7, то необходимо выполнить следующие операции
Warning
С 30 мая 2024, инфраструктура Docker перестала быть доступна в РФ (https://habr.com/ru/news/818177/) Варианты обхода скорее всего к этому моменту уже доступны, так что либо используйте их, либо выбирайте локальный способ запуска
Скачиваем Docker на наш ПК или другую машину. Теперь, открываем командную строку в папке с исходниками (как это сделать на Windows не подскажу 😢)
Используем команду docker build -t <любое_имя> .
и ожидаем сборки контейнера
Теперь, запустим наш контейнер: docker run -dp 127.0.0.1:3000:3000 <имя_из_build>
Ура! Бот работает. Чтобы проверить это, можно использовать Docker Desktop или команду docker ps
:
Если нужно получить последние логи бота, используя название контейнера (не образа!!!) из docker ps
, можно запустить команду docker logs -f --tail <число_строк_для_вывода> <имя_контейнера>
Бот работает на Bun, соответственно, нужно его установить. Используя официальную инструкцию, выполните необходимые действия
Теперь, нужно установить ffmpeg
, который позволяет конвертировать реплики в нужный формат при их добавлении. В случае, если ffmpeg
не будет установлен, бот отключит команду для добавления реплик с файла
- Установка на Windows: https://video.stackexchange.com/a/20496
- Установка на macOS:
brew install ffmpeg
- Установка на Linux зависит от дистрибутива. В Интернете можно найти информацию по установке на Ваш дистрибутив
Собственно...это всё! Теперь, используя командную строку, можно запускать бота в двух режимах:
- Разработка (
bun dev
) - запускает бота с выводом всей информации и перезапускается на каждое изменение файлов. Рекомендуется для тех, кто хочет внести изменения в исходный код - Обычный запуск (
bun start
) - запускает бота в стандартном режиме. Используется по-умолчанию в Docker-контейнере и для обычной работы
Во время первого запуска, необходимо установить зависимости через bun install
и далее запустить в одном из режимов, указанных выше
В данный момент, большинство бесплатных хостингов прекратили своё бесплатное обслуживание, поэтому посоветовать что-то нет возможности (я сам юзаю платный вариант). Однако, единственный критерий подбора хостинга - возможность запуска Docker контейнеров. Это позволяет абстрагироваться от тех сервисов, которые заточены на запуск конкретных языков и технологий
Фух, можно выдохнуть! Мы скачали, настроили и запустили бота. Теперь можно добавлять свои реплики и пользоваться ими также, как с фразами Деко