Безплатен хостинг на Telegram бота в Google Cloud Platform

Защо GCP?

При написване на телеграм ботов се сблъсквах с въпроса как бързо и безплатно да направя така, че ботът да работи постоянно. Вариантите с Heroku и Pythonanywhere имат твърде малки лимити, ако имате повече от един бот. Затова реших да използвам GCP. Платформата предлага безплатно 300$ за година + огромни отстъпки при използването на тези средства (до 94%).

Безплатен хостинг на Telegram бота в Google Cloud Platform

Как да хоствате вашия бот?

Стъпка 1. Регистрация в GCP

Преминаваме на сайта GCP и натискаме Започнете безплатно.
Безплатен хостинг на Telegram бота в Google Cloud Platform
Въвеждаме данните си и картата. Пари от картата няма да се удържат, ако сами не активирате платен абонамент.

Безплатен хостинг на Telegram бота в Google Cloud Platform

Стъпка 2. Създаване на виртуална машина

След регистрацията ще попаднете на главната страница на услугата. Нужно е да изберете в раздела Ресурси таба Compute Engine.
Безплатен хостинг на Telegram бота в Google Cloud Platform
Трябва да създадете нов екземпляр.

Безплатен хостинг на Telegram бота в Google Cloud Platform
Ако няма да разгръщате БД на виртуална машина, можете да изберете g1-small, иначе препоръчвам n1-standard.

Безплатен хостинг на Telegram бота в Google Cloud Platform
Трябва също да изберете ОС. Аз избрах Debian GNU/Linux 9 (stretch).

Безплатен хостинг на Telegram бота в Google Cloud Platform
Всичко, ВМ е създадена. Обикновено нейната разгръщане отнема от 1 до 5 минути.

Стъпка 3. Настройка на виртуалната машина

Можете да се свържете по SSH от вашия ПК или да взаимодействате чрез платформата.
За целта натиснете на SSH.

Безплатен хостинг на Telegram бота в Google Cloud Platform
Ще ви се отвори терминал Linux в нов прозорец.

Безплатен хостинг на Telegram бота в Google Cloud Platform
Сега преминаваме към настройката. Първо въвеждаме командата:

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 и да го качите на сървера:

Безплатен хостинг на Telegram бота в Google Cloud Platform
След това разархивираме с командата:

tar -xvf yourfile.tar

Сега вашият бот се съхранява в папката с името на архива.

Вторият метод чрез Git. Не мисля, че е необходимо да обяснявам на хора, които знаят как да го използват.

След инсталацията с командата:

sudo apt install git

Можете да го клонирате на вашия VM.

След това преминаваме към настройката на 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

Ако всичко е наред, ще видите нещо подобно:

Безплатен хостинг на Telegram бота в Google Cloud Platform
Всичко, сега вашият бот работи самостоятелно. Надявам се статията ми да ви помогне да хоствате вашия бот.

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

Източник: habr.com

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster