ЗАГРУЖАЕМ ТЕЛЕГРАМ-БОТА НА PYTHON НА СЕРВЕР (ХОСТИНГ)


5 611 просмотров.

Краткое описание видео: .всем привет в прошлом видео я показывал.как создать меню для своего бота в.телеграме.однако чтобы бота можно было показать.друзьям коллегам или просто начать.пользоваться им самостоятельно его лучше.разместить на сервере в этом видео я.покажу как выбрать сервер и провести.минимальном необходимую настройку с.начала и до конца.я выбрал провайдера first light первым.делом вам нужно будет у него.зарегистрироваться.я же сразу могу приступить к выбору.своего нового виртуального сервера какие.вообще бывают сервера сервера бывают.физически и виртуальные физические.серверы это такой же компьютер как и ваш.но только намного более мощный и.работает круглосуточно такие сервера.стоят очень дорого поэтому провайдеры.придумали делить один большой физический.сервер намного виртуальных серверов один.из них мы сейчас не будем выбирать.данный вариант который оканчивается на.telegram нам вполне подходит он самый.дешевый здесь имеет одно ядро 4.гигабайта диска и 512 мегабайт.оперативной памяти этого вполне хватает.для любого телеграм бота приступим к.оформлению заказа.панель управления нам не нужно.выберем любимую операционную систему у.меня это ubuntu версии 1404 да она.слегка устаревшая но зато работает.стабильно и ожидаемо на самом деле здесь.довольно широкий выбор операционных.систем.оплачиваем заказ и ждем пока сервер.подготовиться.обычно это занимает 10-15 минут.мой сервер уже готов и я могу на него.зайти и так посмотрим что здесь есть.проверим командой и штаб она не.установлено поэтому установим ее.самостоятельно.смотрим все как и обещали одно ядро 512.мегабайт оперативной памяти и ничего.лишнего не запущена.обновим имеющийся на сервере индекс.пакетов делается это командой sudo.apt-get.и без этого в дальнейшем нельзя будет.поставить новые нужные пакеты.теперь используем суда об апгрейде.перри установим.громов ssh на наш новый сервер sudo.apt-get стал ssh.проверим штан.ответ.сгенерим свой собственный ssh ключ это.нужно делать на личном компьютере но я.делаю то на сервере чтобы он создал там.все необходимые папки на личном.компьютере у меня уже есть свой ключ.теперь положим на сервер свой ssh ключ.чтобы можно было входить на него без.пароля.сервере file of ssh автора есть кейс и.положим в него свой sh ключ из личного.компьютера сохраним файл и проверим что.все работает разлагаемся с сервера и.попробуем зайти еще раз без пароля и так.как видите у нас это получилось значит.все работает правильно убедимся что на.сервере установлен питон версии 3.и установим дополнительные системные.пакета необходимые для его работы.создадим пользователи на нашем сервере.пишем команду и да да юзер и имя.пользовать я выбрал имеет теле.вместе с пользователем был создан.домашний каталог который находится по.адресу home теле в нем бы и продолжим.нашу работу проверим домашний каталог.команды ls слишком видим здесь новую.папку теле все правильно.установим сюда guide.планируемый.тори обратите внимание что я использую.версию с 6-ти ps они ssh.убедимся что в репозитории все на месте.также надо не забыть установить тип.версии 3.проверим что все установилось.теперь научим нашего бота работать с.двумя конфигами одновременно один конфиг.нужен для работы локально 2 конфиг нужен.для работы на сервере.в первом конфиге у нас будет установлена.прокси url.а во втором отсутствует создадим новый.модуль и назовем его sightings.в этом модуле создадим два файла один.файл назовем продакшен пай второй файл.назовем девелопмент по и скопируем.содержание старого конфига в два наших.новых файла это в продакшен конфиге.обнулим переменную тега api url.а девелопмент конфиг сделаем зависимым.от production а теперь напишем функцию.для выбора конфига конфиг будет.подгружаться динамически с.использованием библиотеки импорт либо.создадим функцию log config.выборг.фига будет основан на полученные.переменной окружения.с переменными.же не работает библиотека о самом.для нашей программы выбор какой-либо.переменной окружения это ровно то же.самое что чтение из какого-нибудь.словаря.допустим мы будем ожидать переменную.окружение под названием т.г..нижние подчёркивания конов.теперь импортируем выбранный модуль.импорт будет происходить от начала.указанного python ps для нас это.коренная папка tele boat.поэтому пишем и в борт с settings ..имя конфига нужно учесть что указанного.конфига может не быть поэтому при.импорте возникнут ошибка импорт р а.вместе с ней ещё несколько type r и.вылью р.р..попробуем перехватить их сразу все и в.случае ошибки вывести сообщение об.ошибке и завершить программу завершать.программу в случае ошибки мы будем с.помощью библиотеки сиз и ее команды.экзит экзит возвращает код ошибки в.систему как если бы у нас правда что-то.пошло не так.вернем status code 1 любой status code.отличный от 0 означает ошибку.и отдадим наружу только что.импортированный config.теперь исправим уже имеющийся код вместо.импорта конкретных переменных из конфига.мы будем импортировать функцию получения.конфига а дальше по коду будем брать из.полученного конфига нужно нам переменную.делается очень просто создадим новую.переменную конфиг равную лот конфиг и.будем читать наши бывшие переменные из.этого конфига.мы знаем что они там всегда есть потому.что они есть в основном production в.конфиге как видите теперь в коде больше.нет упоминаний о production или.development конфиге этим занимается наша.функция загрузки конфига.кстати немного доработаем и и укажем что.в случае если.переменное окружение отсутствует то.нужно использовать конфиг под названием.девелопмент.это значит что на локальной машине нам.не нужно будет указывать переменное.окружение явно она production машине мы.будем ее явно указывать в конфу наших.конфигах.добавим еще пару отладочных принтов для.красоты и на этом все проверяем и видим.что у нас явно загрузился конфиг под.названием девелопмент проверим все еще.раз из консоли укажем переменную.окружения тгк он в продакшн и убедимся.что на локальном компьютере это вызывает.ошибку теперь укажем имя какого-нибудь.несуществующего конфига и убедимся что у.нас ничего не сломалось программа просто.не запустилась теперь вернемся к нашему.серверу.установим на него зависимости для нашего.бота это делается команда pip 3 install.минус r петрик вайерман.убедимся что все успешно установилась.команды пип фриз она распечатать список.уже имеющихся зависимостей.теперь запустим боты вручную сразу на.сервере для этого укажем переменную.окружении поэтому ps равное пути где.лежит ваш репозитории python 3 и.путь до файла main пай запустим при.проверим.вот а после выключения бота перестает.работать теперь добавим конфиг для.демона нашего бота демон это программа.запуска и мая самой операционной.системой и работающие в фоновом режиме.без участия пользователя и так разберем.по строчкам description.это просто описание нашего конфига она.ни на что не влияет далее строка старт.он разливал означает что ваша программа.должна запуститься до того как будут.запускаться остальные процессы.операционной системы.то же самое из команды стоп он ран level.далее респаун это означает что мы хотим.чтобы наш процесс был перезапущен в.случае завершения с ошибкой ошибка.считается любой код возврата отличный от.нуля это то что мы добавляли в нашу.функцию загрузки конфига.следующие инструкции респавн лимит.означает что в случае неудачного старта.мы хотим чтобы было совершено 5 попыток.запустить нашу программу с интервалами в.60 секунд если после 5 ничего не.произошло то об старт перестанет ее.запускать.далее мы укажем переменной окружение для.нашей программы это будет переменное.окружение tg конов равные продакшн и.переменное окружение python ps равная.пути до нашего репозитория.далее внутри блока скрипт и and скрипт.указано команда которую необходимо.выполнить команды начинаются с кодового.слова y а дальше все указано так как.если бы вы писали это в командной строке.и последний блок пост стоп y slide 5 это.то что выполняется после полной.остановки вашего скрипта.slide 5 указан специально чтобы.какие-либо ресурсы используемые скриптом.могли остановиться при перезапуске.теперь запустим наш новый конфиг в.репозитории и выложим все на сервере.новый конфиг нужно скопировать в папку.это c и не на сервере делаем это.командой cp диплом об старт эхо конф по.и указываю папку.это c и нет.проверим что все успешно скопировалась и.попробуем запустить демон на сервере.делается до командой sudo service.эхо а restart эхо это название нашего.конфига который мы положили в папку этот.и нет как видим процесс запустился.теперь посмотрим что у нас есть запущен.на сервере.к сожалению мы не видим ничего чтобы.запустилась.с питоном зайдем в блоге об старта они.находятся в папке варлок об старт и.имя нашего конфига эхолот проблема в том.что я указал неправильный путь до.исполняемого файла файла.сейчас я быстро исправлю эту опечатку.обновлю конфиг на своем сервере и.попробую запустить все еще раз.я сделал все то же самое что и в.предыдущий раз и теперь мы видим что в.списке процессов появился запущенный бот.влогах мы также видим сообщение об.успехе.и финальная проверка на пишем сообщение.нашему боту в telegram как видите он.работает это значит что мы сделали все.правильно на этом все.желаю удачи в ваших бот описаниях.подписывайтесь на канал ставти лайки

ЗАГРУЖАЕМ ТЕЛЕГРАМ-БОТА НА PYTHON НА СЕРВЕР (ХОСТИНГ)

Как? Вы еще не смотрели? Ну это зря...