2020-02-16 в 11:10, admin , рубрики: api, computer engine, GCP, Google Cloud Platform, linux, python, systemd, Настройка Linux, Программирование
Почему GCP?
При написание телеграмм ботов столкнулся с вопросом, как быстро и бесплатно сделать так, чтобы бот работал постоянно. Варианты с Heroku и Pythonanywhere имеют слишком маленькие лимиты, если у вас более одного бота. Поэтому я решил воспользоваться GCP. Платформа предоставляет бесплатно 300$ на год + огромные скидки при использование этих средств(до 94%).
Как захостить вашего бота?
Шаг 1. Регистрация на GCP
Переходим на сайт GCP и нажимаем Get started for free.
КАК СОЗДАТЬ И ЗАЛИТЬ НА СЕРВЕР ТЕЛЕГРАМ-БОТА НА PYTHON ЗА 15 МИНУТ?
Вводим свои данные и карточку. Деньги с карточки не будут списываться, если вы сами не активируете платную подписку.
Шаг 2. Создаём виртуальную машину
После регистрации вы окажетесь на главной странице сервиса. Вам необходимо выбрать в разделе Ресурсов вкладку Compute Engine.
Необходимо создать новый экземпляр.
Если вы не будете развертывать БД на виртуальной машине, то можете взять g1-small, иначе советую n1-standart.
Необходимо будет выбрать также ОС. Я выбрал Debian GNU/Linux 9 (stretch).
Всё, ВМ создана. Обычные её развертывание занимает от 1 до 5 минут.
Шаг 3. Настройка виртуальной машины
Вы можете подключиться по SSH со своего ПК или же взаимодействовать через платформу.
БЕСПЛАТНЫЙ ХОСТИНГ для TELEGRAM БОТА на PYTHON AIOGRAM | REPLIT
Для этого нажмите на SSH.
У вас откроется терминал Linux в новом окне.
Теперь перейдем к настройке. Сначала вводим команду:
sudo apt-get update
для обновления информации об новейших версиях пакетов.
После вводим:
sudo apt-get install python3-setuptools sudo apt-get install python3-pip
Сам Python устанавливать не нужно, он уже есть.
Теперь необходимо установить все необходимые билиотеки. Есть небольшой нюанс, все библиотеки необходимо устанавливать дважды:
pip3 install ‘name_of_package’
для использования через коману python3, и
sudo pip3 install ‘name_of_package’
для systemd. Данная утилита поможет вам запустить бота и перезапускать его, если он упадёт.
Самый простой способ запускать бота через python3, но он будет выключаться, если вы будете отключаться. Можно использовать screen, но бот не будет сам перезапускаться. Также можно использовать crontab с проверкой порта, но мне кажется этот вариант сложнее, чем systemd.
Шаг 4. Заливаем бота на сервер
Есть два способа залить вашего бота. Если вы не дружите с Git, вы можете просто заархивировать бота в .tar и залить его на сервер:
После этого разархивируем его командой:
tar -xvf yourfile.tar
Теперь ваш бот хранится в папке с названием архива.
Второй способ через Git. Я думаю, не стоит обьяснять как это сделать людям, которые умеют его использовать.
После установки его командой:
sudo apt install git
Вы можете клонировать его себе на ВМ.
После этого переходим к настройке systemd. Для этого переходим в его директорию:
cd /etc/systemd/system
И создаём файл bot.service:
sudo nano bot.service
Вписываем в открывщиеся окно следующее:
[Unit] Description=Telegram bot ‘Имя бота’ After=syslog.target After=network.target [Service] Type=simple User=root WorkingDirectory=/home/название вашего юзера/название папки в которой лежит бот ExecStart=/usr/bin/python3 /home/название вашего юзера/название папки в которой лежит бот/bot.py RestartSec=10 Restart=always [Install] WantedBy=multi-user.target
Закройте и соханите файл. Закрывается с помощью команды Ctrl+X.
После этого введите команды по очереди:
sudo systemctl daemon-reload sudo systemctl enable bot sudo systemctl start bot sudo systemctl status bot
Если всё будет хорошо, вы увидите примерно следующее:
Всё, теперь ваш бот работает самостоятельно. Надеюсь моя статья поможет вам захостить вашего бота.
P.S.
1.Проверьте вашего бота на ошибки
Запустите вашего бота и проверьте его работу прежде, чем запускать его через systemd. Для этого перейдите в папку с ботом и запустите через python.
cd python3 bot.py
2.Добавьте в файлы с py-скриптами кодировку
#!/usr/bin/env python # -*- coding: utf-8 -*-
Вставить в начале файла.
3.Ошибки в systemd
Если вы проверяли бота на ошибки и он нормально работал, но он не хочет запускаться в systemd, то вы можете посмотреть логи и понять в чём ошибка просмотрев файл:
sudo nano /var/log/syslog
Вы можете скачать этот файл и просмотреть на своём компьютере через Notepad++.
4.Апдейт бота
Если вы хотите дописать или залить новую версию бота, то введите команду:
sudo systemctl stop bot
Провидите все необходимые манипуляции. А потом введите следующие команды, чтобы он опять заработал:
sudo systemctl daemon-reload sudo systemctl start bot sudo systemctl status bot
Источник: www.pvsm.ru
Как бесплатно устанавливать Python-ботов на хостинг
Listen to this article
Чтобы открыть контент, необходимо пройти быструю регистрацию или войти в свой профиль. После этого Вы получите полный доступ ко всем материалам на портале.
Спасибо что вы с нами!
Как поставить Telegram бота на хостинг
Переходим на сайт pythonanywhere.com, регистрируемся. Почту можно использовать любую, хоть временную, подтверждать её не обязательно, однако на нее приходят разные полезные уведомления.
После успешной регистрации открываем боковое меню, переходим в файлы и все оттуда удаляем.
Далее, по одному, загружаем файлы вашего бота.
После того как загрузили все файлы, переходим к запуску консоли.
После появления в консоле значка «$», можете устанавливать библиотеки, которые необходимы для вашего бота, Python уже установлен изначально. В моём случае — это только telegrambotapi.
pip3 install telegrambotapi —user
Запускаем нужный нам файл, в моём случае — это «main.py» на третьем python.
Источник: telegra.ph