Skip to content

Скачивание, настройка и запуск бота

Uladzislau Hramyka edited this page Aug 18, 2024 · 17 revisions

Привет! Эта инструкция намерена упростить понимание того, как настроить этого бота для своих целей. Постараюсь изложить всё подробно и в то же время кратко

Скачивание исходников

Скачать исходники можно используя веб-интерфейс на главной странице репозитория:

image

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

Далее, после того, как архив скачался, его нужно разархивировать

image

Ура, первый этап готов! Перейдем к немного неприятной, но в то же время важной операцией - настройка

Настройка

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

Создать бота можно с помощью мастер-бота BotFather. Сильно много расписывать не буду о его создании не буду, т.к. бот сам рассказывает подробно что нужно делать. После того, как бот будет создан, нужно будет сохранить токен:

Screenshot 2024-02-03 at 16 11 10

Warning

Токен бота нельзя ни при каких обстоятельствах кому либо передавать или показывать, так как иначе ботом может воспользоваться кто угодно и сделать с ним всё что угодно

Однако, если мы оставим всё как есть, то бот не будет работать именно так, как он был задуман. Для этого нужно включить Inline режим:

  1. Через команду /mybots, выбираем нашего бота
  2. Далее, нажимаем Bot Settings
  3. Переходим в Inline Mode
  4. И теперь, нажимаем Turn inline mode on
  5. (Опционально) Можно также поставить текст, который будет указан, если мы вызовем бота через @. Для этого, в том же меню, нажмите кнопку Edit inline placeholder

Всё! Бот готов, теперь осталось настроить базу данных и парочку остальных данных, необходимых для работы

Настройка базы данных

В качестве базы данных используется PostgreSQL для версии 3.x (и для 1.x-2.x версий использовалась MongoDB). Подробная инструкция по подготовке к переходу на новую базу данных расписана здесь

Остальные данные для настройки

Нам осталось теперь получить два значения: CREATOR_ID и STICKER_FILE_ID_FOR_DEEPLINK

CREATOR_ID - это Ваш ID. Он нужен, чтобы была возможность пользоваться ботом из личных сообщений. Используя этого бота, можно получить свой ID. Отправьте любое сообщение и скопируйте ID из секции You

image

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

image

image

Используя того же бота, отправляем ему стикер. Копируем file_id (главное не брать из thumbnail)

image

Заключительный этап

Открываем исходники, копируем .env.example и переименовываем в .env. Подставляем все нужные данные, которые мы скопировали ранее

Note

STICKER_FILE_ID_FOR_DEEPLINK является необязательным. В таком случае, бот будет игнорировать нажатие на кнопку выше реплик

Запуск

Локально

Если хочется запускать бота у себя на компьютере или на другой машине, которая будет работать 24/7, то необходимо выполнить следующие операции

С Docker

Warning

С 30 мая 2024, инфраструктура Docker перестала быть доступна в РФ (https://habr.com/ru/news/818177/) Варианты обхода скорее всего к этому моменту уже доступны, так что либо используйте их, либо выбирайте локальный способ запуска

Скачиваем Docker на наш ПК или другую машину. Теперь, открываем командную строку в папке с исходниками (как это сделать на Windows не подскажу 😢)

image

Используем команду docker build -t <любое_имя> . и ожидаем сборки контейнера

image

Теперь, запустим наш контейнер: docker run -dp 127.0.0.1:3000:3000 <имя_из_build>

Ура! Бот работает. Чтобы проверить это, можно использовать Docker Desktop или команду docker ps:

image

Если нужно получить последние логи бота, используя название контейнера (не образа!!!) из docker ps, можно запустить команду docker logs -f --tail <число_строк_для_вывода> <имя_контейнера>

image

Без Docker

Бот работает на Bun, соответственно, нужно его установить. Используя официальную инструкцию, выполните необходимые действия

Теперь, нужно установить ffmpeg, который позволяет конвертировать реплики в нужный формат при их добавлении. В случае, если ffmpeg не будет установлен, бот отключит команду для добавления реплик с файла

  • Установка на Windows: https://video.stackexchange.com/a/20496
  • Установка на macOS: brew install ffmpeg
  • Установка на Linux зависит от дистрибутива. В Интернете можно найти информацию по установке на Ваш дистрибутив

Собственно...это всё! Теперь, используя командную строку, можно запускать бота в двух режимах:

  • Разработка (bun dev) - запускает бота с выводом всей информации и перезапускается на каждое изменение файлов. Рекомендуется для тех, кто хочет внести изменения в исходный код
  • Обычный запуск (bun start) - запускает бота в стандартном режиме. Используется по-умолчанию в Docker-контейнере и для обычной работы

Во время первого запуска, необходимо установить зависимости через bun install и далее запустить в одном из режимов, указанных выше

Хостинг

В данный момент, большинство бесплатных хостингов прекратили своё бесплатное обслуживание, поэтому посоветовать что-то нет возможности (я сам юзаю платный вариант). Однако, единственный критерий подбора хостинга - возможность запуска Docker контейнеров. Это позволяет абстрагироваться от тех сервисов, которые заточены на запуск конкретных языков и технологий


Фух, можно выдохнуть! Мы скачали, настроили и запустили бота. Теперь можно добавлять свои реплики и пользоваться ими также, как с фразами Деко