Hosting gratuito di bot Telegram su Google Cloud Platform

Perché GCP?

Scrivendo bot per Telegram, mi sono trovato di fronte alla questione di come far funzionare un bot in modo continuo, rapidamente e gratuitamente. Le opzioni con Heroku e Pythonanywhere hanno limiti troppo ridotti se hai più di un bot. Per questo ho deciso di utilizzare GCP. La piattaforma offre $300 gratuiti per un anno + enormi sconti sull'utilizzo di questi fondi (fino al 94%).

Hosting gratuito di bot Telegram su Google Cloud Platform

Come ospitare il tuo bot?

Passo 1. Registrazione su GCP

Visitiamo il sito GCP e facciamo clic su Inizia gratis.
Hosting gratuito di bot Telegram su Google Cloud Platform
Inserisci i tuoi dati e la carta. I soldi dalla carta non verranno addebitati se non attivi tu un abbonamento a pagamento.

Hosting gratuito di bot Telegram su Google Cloud Platform

Passo 2. Creiamo una macchina virtuale

Dopo la registrazione, ti troverai sulla pagina principale del servizio. Devi selezionare nella sezione Risorse la scheda Compute Engine.
Hosting gratuito di bot Telegram su Google Cloud Platform
È necessario creare una nuova istanza.

Hosting gratuito di bot Telegram su Google Cloud Platform
Se non deployerai un DB su macchina virtuale, puoi scegliere g1-small, altrimenti ti consiglio n1-standard.

Hosting gratuito di bot Telegram su Google Cloud Platform
Dovrai anche scegliere il sistema operativo. Io ho scelto Debian GNU/Linux 9 (stretch).

Hosting gratuito di bot Telegram su Google Cloud Platform
Tutto, la VM è stata creata. Di solito il suo deployment richiede da 1 a 5 minuti.

Passo 3. Configurazione della macchina virtuale

Puoi connetterti tramite SSH dal tuo PC oppure interagire attraverso la piattaforma.
Per fare questo, clicca su SSH.

Hosting gratuito di bot Telegram su Google Cloud Platform
Si aprirà un terminale Linux in una nuova finestra.

Hosting gratuito di bot Telegram su Google Cloud Platform
Ora passiamo alla configurazione. Prima digita il comando:

sudo apt-get update

per aggiornare le informazioni sulle ultime versioni dei pacchetti.

Dopo inserisci:

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

Non è necessario installare Python stesso, è già presente.

Ora è necessario installare tutte le librerie necessarie. C'è un piccolo dettaglio: tutte le librerie devono essere installate due volte:

pip3 install ‘name_of_package’

per utilizzarle tramite il comando python3, e

sudo pip3 install ‘name_of_package’

per systemd. Questo strumento ti aiuterà a far partire il bot e a riavviarlo se si arresta.
Il modo più semplice per avviare il bot è attraverso python3, ma si spegnerà se ti disconnetti. Puoi usare screen, ma il bot non si riavvierà da solo. Puoi anche usare crontab con un controllo di porta, ma mi sembra che questa opzione sia più complicata rispetto a systemd.

Passo 4. Carichiamo il bot sul server

Ci sono due modi per caricare il tuo bot. Se non sei esperto con Git, puoi semplicemente comprimere il bot in un file .tar e caricarlo sul server:

Hosting gratuito di bot Telegram su Google Cloud Platform
Dopo di che, estrailo con il comando:

tar -xvf yourfile.tar

Ora il tuo bot si trova nella cartella con il nome dell'archivio.

Il secondo modo tramite Git. Penso che non sia necessario spiegare come farlo a chi sa usarlo.

Dopo averlo installato con il comando:

sudo apt install git

Puoi clonarlo sulla tua VM.

Dopo di che, passiamo alla configurazione di systemd. Per farlo, entriamo nella sua directory:

cd /etc/systemd/system

E creiamo il file bot.service:

sudo nano bot.service

Scriviamo nella finestra che si apre quanto segue:


[Unit]
Description=Telegram bot 'Nome del bot'
After=syslog.target
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/home/nome del tuo utente/nome della cartella in cui si trova il bot
ExecStart=/usr/bin/python3 /home/nome del tuo utente/nome della cartella in cui si trova il bot/bot.py

RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target

Chiudi e salva il file. Si chiude con il comando Ctrl+X.

Dopo di che, inserisci i comandi uno dopo l'altro:

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

Se tutto va bene, vedrai più o meno quanto segue:

Hosting gratuito di bot Telegram su Google Cloud Platform
Tutto, ora il tuo bot funziona autonomamente. Spero che il mio articolo ti aiuti a ospitare il tuo bot.

P.S.

1. Controlla il tuo bot per errori

Esegui il tuo bot e controlla che funzioni prima di avviarlo tramite systemd. Per fare ciò, vai nella cartella con il bot e avvialo tramite python.

cd 
python3 bot.py

2. Aggiungi la codifica ai file con gli script py

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

Inserisci all'inizio del file.

3. Errori in systemd

Se hai controllato il bot per errori e funzionava correttamente, ma non vuole avviarsi in systemd, puoi controllare i log e capire qual è l'errore esaminando il file:

sudo nano /var/log/syslog

Puoi scaricare questo file e visionarlo sul tuo computer tramite Notepad++.

4. Aggiornamento del bot

Se vuoi aggiungere o caricare una nuova versione del bot, inserisci il comando:

sudo systemctl stop bot

Fai tutte le manipolazioni necessarie. Poi inserisci i seguenti comandi per farlo funzionare di nuovo:

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

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster