Безкоштовний хостинг 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-standart.

Безкоштовний хостинг 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 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