Hosting gratuit pentru boturi Telegram pe Google Cloud Platform

De ce GCP?

Când am scris boți pentru Telegram, m-am confruntat cu întrebarea cum să fac botul să funcționeze constant, rapid și gratuit. Opțiunile cu Heroku și Pythonanywhere au limite prea mici dacă aveți mai mult de un bot. De aceea, am decis să folosesc GCP. Platforma oferă gratuit 300$ pentru un an + discounturi uriașe la utilizarea acestor fonduri (până la 94%).

Hosting gratuit pentru boturi Telegram pe Google Cloud Platform

Cum să găzduiți botul vostru?

Pasul 1. Înregistrare pe GCP

Accesăm site-ul GCP și apăsăm Începeți gratuit.
Hosting gratuit pentru boturi Telegram pe Google Cloud Platform
Introduceți datele și cardul. Banii de pe card nu vor fi debitați dacă nu activați voi înșivă un abonament plătit.

Hosting gratuit pentru boturi Telegram pe Google Cloud Platform

Pasul 2. Crearea unei mașini virtuale

După înregistrare, veți ajunge pe pagina principală a serviciului. Trebuie să selectați în secțiunea Resurse tab-ul Compute Engine.
Hosting gratuit pentru boturi Telegram pe Google Cloud Platform
Este necesar să creați un nou exemplar.

Hosting gratuit pentru boturi Telegram pe Google Cloud Platform
Dacă nu veți dezvolta o bază de date pe mașina virtuală, atunci puteți alege g1-small, altfel vă recomand n1-standard.

Hosting gratuit pentru boturi Telegram pe Google Cloud Platform
Va trebui să alegeți și un sistem de operare. Eu am ales Debian GNU/Linux 9 (stretch).

Hosting gratuit pentru boturi Telegram pe Google Cloud Platform
Gata, VM-ul a fost creat. De obicei, desfășurarea ei durează între 1 și 5 minute.

Pasul 3. Configurarea mașinii virtuale

Puteți să vă conectați prin SSH de pe PC-ul vostru sau să interacționați prin platformă.
Pentru asta, apăsați pe SSH.

Hosting gratuit pentru boturi Telegram pe Google Cloud Platform
Se va deschide un terminal Linux într-o fereastră nouă.

Hosting gratuit pentru boturi Telegram pe Google Cloud Platform
Acum să trecem la configurare. Începem prin a introduce comanda:

sudo apt-get update

pentru a actualiza informațiile despre cele mai recente versiuni ale pachetelor.

După, introduceți:

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

Python în sine nu trebuie instalat, acesta este deja prezent.

Acum este necesar să instalați toate bibliotecile necesare. Există o mică nuanță, toate bibliotecile trebuie instalate de două ori:

pip3 install ‘name_of_package’

pentru a fi utilizate prin comanda python3, și

sudo pip3 install ‘name_of_package’

pentru systemd. Această utilitară vă va ajuta să rulați botul și să-l reporniți dacă acesta se oprește.
Cel mai simplu mod de a rula botul este prin python3, dar acesta se va opri dacă vă deconectați. Puteți folosi screen, dar botul nu se va reintra singur. De asemenea, puteți folosi crontab cu verificarea portului, dar consider că această opțiune este mai complicată decât systemd.

Pasul 4. Încărcarea botului pe server

Există două moduri de a încărca botul vostru. Dacă nu sunteți familiarizați cu Git, puteți să arhivați botul într-un fișier .tar și să-l încărcați pe server:

Hosting gratuit pentru boturi Telegram pe Google Cloud Platform
După asta, dezarhivați-l cu comanda:

tar -xvf yourfile.tar

Acum botul vostru este stocat în folderul cu numele arhivei.

A doua metodă prin Git. Cred că nu trebuie să explic cum se face asta oamenilor care știu să-l folosească.

După instalarea acestuia cu comanda:

sudo apt install git

Puteți să-l clonați pe VM-ul dumneavoastră.

După aceasta, trecem la configurarea systemd. Pentru aceasta accesați directorul său:

cd /etc/systemd/system

Și creăm fișierul bot.service:

sudo nano bot.service

Introducem în fereastra deschisă următoarele:


[Unit]
Description=Telegram bot 'Numele botului'
After=syslog.target
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/home/numele utilizatorului dumneavoastră/numele folderului în care se află botul
ExecStart=/usr/bin/python3 /home/numele utilizatorului dumneavoastră/numele folderului în care se află botul/bot.py

RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target

Închideți și salvați fișierul. Se închide cu comanda Ctrl+X.

După aceasta, introduceți comenzile pe rând:

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

Dacă totul este bine, veți vedea cam așa:

Hosting gratuit pentru boturi Telegram pe Google Cloud Platform
Asta e, acum botul dumneavoastră funcționează autonom. Sper ca articolul meu să vă ajute să găzduiți botul.

P.S.

1. Verificați botul pentru erori

Rulați botul dumneavoastră și verificați dacă funcționează înainte de a-l rula prin systemd. Pentru aceasta, mergeți în folderul cu botul și rulați-l prin python.

cd 
python3 bot.py

2. Adăugați în fișierele cu scripturi py codificarea

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

Inserare la începutul fișierului.

3. Erori în systemd

Dacă ați verificat botul pentru erori și a funcționat corect, dar nu vrea să pornească în systemd, puteți verifica jurnalele și înțelege unde este problema vizionând fișierul:

sudo nano /var/log/syslog

Puteți descărca acest fișier și vizualiza pe computerul dumneavoastră prin Notepad++.

4. Actualizarea botului

Dacă doriți să adăugați sau să încărcați o nouă versiune a botului, introduceți comanda:

sudo systemctl stop bot

Faceți toate manevrele necesare. Apoi introduceți următoarele comenzi pentru a-l face să funcționeze din nou:

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

Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster