Besplatno hostanje Telegram bota na Google Cloud Platformi

Zašto GCP?

Pri pisanju Telegram botova naišao sam na pitanje kako brzo i besplatno učiniti da bot radi neprekidno. Opcije s Heroku i Pythonanywhere imaju premale limite ako imate više od jednog bota. Stoga sam odlučio iskoristiti GCP. Platforma nudi besplatno 300 USD na godinu + ogromne popuste pri korištenju tih sredstava (do 94%).

Besplatno hostanje Telegram bota na Google Cloud Platformi

Kako hostati vašeg bota?

Korak 1. Registracija na GCP

Idemo na stranicu GCP i pritisnemo Započnite besplatno.
Besplatno hostanje Telegram bota na Google Cloud Platformi
Unesite svoje podatke i karticu. Novac s kartice neće biti terećen ako sami ne aktivirate plaćenu pretplatu.

Besplatno hostanje Telegram bota na Google Cloud Platformi

Korak 2. Kreiranje virtualne mašine

Nakon registracije bit ćete na glavnoj stranici usluge. Potrebno je odabrati u odjeljku Resursi karticu Compute Engine.
Besplatno hostanje Telegram bota na Google Cloud Platformi
Potrebno je stvoriti novu instancu.

Besplatno hostanje Telegram bota na Google Cloud Platformi
Ako ne planirate implementirati BDD na virtualnoj mašini, možete uzeti g1-small, inače preporučujem n1-standard.

Besplatno hostanje Telegram bota na Google Cloud Platformi
Također ćete morati odabrati OS. Odabrao sam Debian GNU/Linux 9 (stretch).

Besplatno hostanje Telegram bota na Google Cloud Platformi
Sve, VM je stvorena. Obično njeno postavljanje traje od 1 do 5 minuta.

Korak 3. Podešavanje virtualne mašine

Možete se povezati putem SSH sa svog računala ili surađivati putem platforme.
Za to kliknite na SSH.

Besplatno hostanje Telegram bota na Google Cloud Platformi
Otvorit će vam se Linux terminal u novom prozoru.

Besplatno hostanje Telegram bota na Google Cloud Platformi
Sada prelazimo na podešavanje. Prvo upišite naredbu:

sudo apt-get update

za ažuriranje informacija o najnovijim verzijama paketa.

Zatim upišite:

sudo apt-get install python3-setuptools
sudo apt-get install python3-pip

Python ne morate instalirati, već postoji.

Sada je potrebno instalirati sve potrebne biblioteke. Postoji mala napomena, sve biblioteke potrebno je instalirati dvaput:

pip3 install 'name_of_package'

za korištenje putem naredbe python3, i

sudo pip3 install 'name_of_package'

za systemd. Ovaj alat će vam pomoći pokrenuti bota i ponovno ga pokretati ako padne.
Najjednostavniji način pokretanja bota putem python3, ali će se isključiti ako se odjavite. Možete koristiti screen, ali bot se neće sam ponovno pokretati. Također možete koristiti crontab s provjerom porta, ali mislim da je ova opcija složenija od systemd.

Korak 4. Upload bota na server

Postoje dva načina za upload vašeg bota. Ako ne znate raditi s Gitom, možete jednostavno arhivirati bota u .tar i prenijeti ga na server:

Besplatno hostanje Telegram bota na Google Cloud Platformi
Nakon toga, raspakirajte ga naredbom:

tar -xvf yourfile.tar

Sada vaš bot se čuva u mapi s imenom arhiva.

Drugi način preko Gita. Mislim da ne treba objašnjavati kako to učiniti ljudima koji znaju koristiti Git.

Nakon instalacije s naredbom:

sudo apt install git

Možete ga preuzeti na svoju VM.

Nakon toga prelazimo na postavljanje systemd. Za to idemo u njegov direktorij:

cd /etc/systemd/system

I kreiramo datoteku bot.service:

sudo nano bot.service

Unesite u otvorenom prozoru sljedeće:


[Unit]
Description=Telegram bot 'Ime bota'
After=syslog.target
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/home/ime vašeg korisnika/naziv mape u kojoj se nalazi bot
ExecStart=/usr/bin/python3 /home/ime vašeg korisnika/naziv mape u kojoj se nalazi bot/bot.py

RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target

Zatvorite i spremite datoteku. Zatvara se s naredbom Ctrl+X.

Nakon toga unesite naredbe redom:

sudo systemctl daemon-reload
sudo systemctl enable bot
sudo systemctl start bot
sudo systemctl status bot

Ako je sve u redu, vidjet ćete otprilike sljedeće:

Besplatno hostanje Telegram bota na Google Cloud Platformi
Sve, sada vaš bot radi samostalno. Nadam se da će vam moj članak pomoći da hostate svog bota.

P.S.

1. Provjerite svog bota na greške

Pokrenite svog bota i provjerite njegovo funkcioniranje prije nego ga pokrenete preko systemd. Za to idite u mapu s botom i pokrenite ga preko python.

cd 
python3 bot.py

2. Dodajte u datoteke s py-skriptama kodiranje

#!/usr/bin/env python
# -*- coding: utf-8 -*-

Umetnite na početak datoteke.

3. Greške u systemd

Ako ste provjerili bota na greške i normalno je radio, ali se ne želi pokrenuti u systemd, možete pogledati logove i shvatiti u čemu je problem gledajući datoteku:

sudo nano /var/log/syslog

Možete preuzeti tu datoteku i pregledati je na svom računalu preko Notepad++.

4. Ažuriranje bota

Ako želite dodati ili uploadati novu verziju bota, unesite naredbu:

sudo systemctl stop bot

Izvršite sve potrebne radnje. A zatim unesite sljedeće naredbe da bi ponovno radio:

sudo systemctl daemon-reload
sudo systemctl start bot
sudo systemctl status bot

Izvor: habr.com

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster