Hosting gratuito per bot Telegram su Google Cloud Platform

Perché GCP?

Quando ho iniziato a scrivere bot Telegram, mi sono trovato a dover affrontare la questione di come far funzionare il bot in modo costante e gratuito. Le opzioni come Heroku e Pythonanywhere hanno limiti troppo ridotti se hai più di un bot. Perciò ho deciso di utilizzare GCP. La piattaforma offre $300 gratuiti per un anno e enormi sconti sull'utilizzo di questi fondi (fino al 94%).

Hosting gratuito per bot Telegram su Google Cloud Platform

Come ospitare il tuo bot?

Passo 1. Registrazione su GCP

Visitiamo il sito GCP e clicchiamo su Inizia gratuitamente.
Hosting gratuito per bot Telegram su Google Cloud Platform
Inserisci i tuoi dati e la carta. Non verranno addebitati soldi sulla carta, a meno che tu non attivi un abbonamento a pagamento.

Hosting gratuito per bot Telegram su Google Cloud Platform

Passo 2. Creiamo una macchina virtuale

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

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

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

Hosting gratuito per bot Telegram su Google Cloud Platform
Tutto qui, la VM è creata. La normale implementazione richiede da 1 a 5 minuti.

Passo 3. Configurazione della macchina virtuale

Puoi collegarti tramite SSH dal tuo PC o interagire tramite la piattaforma.
Per fare ciò, fai clic su SSH.

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

Hosting gratuito per bot Telegram su Google Cloud Platform
Ora procediamo con la configurazione. Iniziamo digitando il comando:

sudo apt-get update

per aggiornare le informazioni sulle versioni più recenti dei pacchetti.

Successivamente digitiamo:

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

Non è necessario installare Python, è 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 essere utilizzate tramite il comando python3, e

sudo pip3 install ‘name_of_package’

per systemd. Questa utility ti aiuterà a far funzionare il bot e a riavviarlo se si arresta.
Il modo più semplice per far funzionare il bot tramite 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 della porta, ma mi sembra che questa opzione sia più complessa rispetto a systemd.

Passo 4. Carica il bot sul server

Ci sono due modi per caricare il tuo bot. Se non sei pratico di Git, puoi semplicemente archiviare il bot in .tar e caricarlo sul server:

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

tar -xvf yourfile.tar

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

Il secondo metodo è tramite Git. Non credo sia necessario spiegare come farlo a chi sa già utilizzarlo.

Dopo averlo installato con il comando:

sudo apt install git

Puoi clonarlo sulla tua VM.

Dopo di che, procediamo alla configurazione di systemd. Per fare ciò, entriamo nella sua directory:

cd /etc/systemd/system

E creiamo il file bot.service:

sudo nano bot.service

Inserisci nel file aperto 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. Puoi chiuderlo 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 qualcosa di simile:

Hosting gratuito per bot Telegram su Google Cloud Platform
Bene, ora il tuo bot funziona autonomamente. Spero che il mio articolo ti aiuti a hostare il tuo bot.

P.S.

1. Controlla il tuo bot per errori

Avvia il tuo bot e controlla il suo funzionamento prima di lanciarlo tramite systemd. Per farlo, vai nella cartella del bot e avvialo con python.

cd 
python3 bot.py

2. Aggiungi la codifica nei 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 ed ha funzionato correttamente, ma non si avvia in systemd, puoi controllare i log e capire qual è l'errore esaminando il file:

sudo nano /var/log/syslog

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

4. Aggiornamento del bot

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

sudo systemctl stop bot

Esegui tutte le operazioni necessarie. Poi inserisci i seguenti comandi affinché riprenda a funzionare:

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