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

Защо GCP?

При създаване на Telegram ботове се сблъсках с въпроса как бързо и безплатно да направя така, че ботът да работи постоянно. Опциите с 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

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

След това преминете към конфигурирането на systemd. За целта отидете в неговата директория:

cd /etc/systemd/system

И създайте файл bot.service:

sudo nano bot.service

Вписвате в отворилото се прозорче следното:


[Unit]
Description=Telegram бот 'Име на бота'
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