PyTelegramBotAPI на примере проекта сбора обратной связи #5. Деплой
Эта статья предназначена для новичков. Я намерено опускаю сложные детали и нюансы, чтобы материал воспринимался легче.
Данная статья НЕ является рекламой компании Timeweb, она содержит мою реферальную ссылку, при регистрации с которой будут выданы некоторые бонусы как вам, так и мне. Если вам не хочется регистрироваться по моей ссылке, вы можете воспользоваться стандартной.
Всем привет! Сегодня заканчивается цикл статей, посвящённых разработке телеграм бота на PyTelegramBotAPI.
Нам осталось лишь выложить нашего бота на сервер и запустить его.
<<< Предыдущий урок
Для того чтобы ваш бот был всегда онлайн, не зависел от вашего устройства, интернета и т.д. необходимо арендовать виртуальный сервер.
Что же такое виртуальный сервер? Если просто — обычный компьютер, только содержащий большое кол-во ядер, оперативки и т.д., а также разбитый на много маленьких серверов. Скажем один большой сервер бьётся на 32 маленьких. Именно эту маленькую часть мы и будем арендовывать.
Есть много компаний которые позволяет вам арендовать сервер, я буду показывать на примере одного из самых доступных хостингов Timeweb (хостинг-компания — компания занимающаяся продажей/арендой серверов, доменов, сетей и т.д.).
Первое что необходимо сделать — перейти на их сайт и зарегистрироваться.
Пример регистрации
Далее вы указываете ваш пароль.
После этого уже можно переходить к аренде сервера. Нажмите на кнопку Облачные серверы
, далее кнопка Добавить
.
Переход в панель заказа облачных серверов
Далее нас встречает страница выбора конфигурации сервера. Выглядит немного не понятно, но я всё расскажу.
Если у вас нет чёткого понимания какую перационную систему вам взять, то просто ничего не меняйте, пусть будет стандартная (Ubuntu).
Регион также не меняйте (если нет понимания зачем именно вам другой регион).
Конфигурация. Здесь всё зависит от вашего бюджета и размера проекта. Для проекта который я писал (обратная связь) нам будет достаточно базового тарифа (1 ядро, 1ГБ оперативки, 15ГБ NVMe). Стоит такая конфигурация всего 188р в месяц. Деньги будут плавно списываться с вашего счёта timeweb, сервер можно в любой момент выключить/удалить.
Пункт 4 — сеть мы не трогаем, оставляем какой есть. В дополнительных услугах можно выключить Бэкапы (для этого нажмите на услугу).
Пункт 6, 7 — пропускаем.
В 8 пункте указываем имя сервера (может быть любым, это просто название сервера).
Итоговая сумма всего 188р в месяц.
Итоговая сумма
После оплаты подождите некоторое время. Timeweb готовит и настраивает сервер.
После включения сервера зайдите в него и перейдите на вкладку консоль. Linux сервера работаю без графической оболочки, привычной на Windows. Вместо неё здесь терминал (консоль). С помощью неё и достигается взаимодействие с сервером. Почитать об основных Linux командах можно тут.
Нажмём на консоль
После перехода в консоль, напиши команду для клонирования репозитория с вашим проектом с GitHub:
git clone https://github.com/Ryize/CollectClientsFeedbackBot.git
Вместо CollectClientsFeedbackBot.git вставьте ссылку на репозиторий вашего проекта.
Нажмите Enter и дождитесь окончания скачивания.
Перейдите в скачанную директорию:
cd CollectClientsFeedbackBot
Установите необходимые библиотеки:
Если у вас есть файл requirements.txt
pip3 install -r requirements.txt
Если нет, то необходимо вручную установить каждую библиотеку:
pip3 install pytelegrambotapi
Теперь надо указать токен для ТГ бота. В моём проекте он находился в файле config.py. Откроем его с помощью vim и добавим корректный токен. Чтобы выйти из vim и сохранить изменения надо нажать ESC
и ввести :wq
Команды:
vim config.py
python3 main.py
После ввода команда нажимаем ESC
и вводим :wq
Запуск бота
Бот успешно запущен!
Теперь перейдём в телеграм и протестируем.
Бот работает
Отлично, всё прекрасно работает. Теперь можем спокойно закрыть окно с консолью, бот продолжит работу. Иногда ваш бот может закрываться (при перезагрузках, или если ресурсы кончились) в этом случае вам надо будет опять зайти в консоль и повторить процедуру запуска, или прописать Cloud-init, скрипт который будет отрабатывать пр и запуске сервера и автоматически запускать ваш проект.
<<< Предыдущий урок
Эх… ну вот и закончился цикл статей. За это время мы:
1) Получили токен через BotFather
2) Сделали отправку сообщений
3) Разобрали различные декораторы
4) Добавили два вида клавиатур
5) Напили полноценного бота для сбора обратной связи
6) Запустили бота на сервере
Теперь вы можете писать полноценных ботов, выкладывать их на сервер, поддерживать существующие решения благодаря своим знаниям.
Если остались вопросы — всех жду в комментариях и ЛС, стараюсь отвечать на всё.
Увидимся в следующих статьях!