Hébergement gratuit de bot Telegram sur Google Cloud Platform

Pourquoi GCP ?

Lors de l'écriture de bots Telegram, je me suis heurté à la question de savoir comment faire fonctionner un bot en continu rapidement et gratuitement. Les options avec Heroku et Pythonanywhere ont des limites trop petites si vous avez plus d'un bot. J'ai donc décidé d'utiliser GCP. La plateforme offre 300 $ gratuitement pour un an + d'énormes réductions lors de l'utilisation de ces fonds (jusqu'à 94 %).

Hébergement gratuit de bot Telegram sur Google Cloud Platform

Comment héberger votre bot ?

Étape 1. Inscription sur GCP

Allons sur le site GCP et cliquez sur Commencez gratuitement.
Hébergement gratuit de bot Telegram sur Google Cloud Platform
Entrez vos coordonnées et votre carte. L'argent de la carte ne sera pas débité, à moins que vous n'activiez vous-même l'abonnement payant.

Hébergement gratuit de bot Telegram sur Google Cloud Platform

Étape 2. Création d'une machine virtuelle

Après l'inscription, vous vous retrouverez sur la page d'accueil du service. Vous devez choisir l'onglet Compute Engine dans la section Ressources.
Hébergement gratuit de bot Telegram sur Google Cloud Platform
Vous devez créer une nouvelle instance.

Hébergement gratuit de bot Telegram sur Google Cloud Platform
Si vous ne déployez pas de BD sur une machine virtuelle, vous pouvez prendre g1-small, sinon je recommande n1-standart.

Hébergement gratuit de bot Telegram sur Google Cloud Platform
Vous devrez également choisir un système d'exploitation. J'ai choisi Debian GNU/Linux 9 (stretch).

Hébergement gratuit de bot Telegram sur Google Cloud Platform
Voilà, la VM est créée. Son déploiement prend entre 1 et 5 minutes.

Étape 3. Configuration de la machine virtuelle

Vous pouvez vous connecter par SSH depuis votre PC ou interagir via la plateforme.
Pour cela, cliquez sur SSH.

Hébergement gratuit de bot Telegram sur Google Cloud Platform
Vous ouvrirez un terminal Linux dans une nouvelle fenêtre.

Hébergement gratuit de bot Telegram sur Google Cloud Platform
Maintenant, passons à la configuration. Tout d'abord, entrez la commande :

sudo apt-get update

pour mettre à jour les informations sur les dernières versions des paquets.

Ensuite, entrez :

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

Vous n'avez pas besoin d'installer Python lui-même, il est déjà là.

Maintenant, vous devez installer toutes les bibliothèques nécessaires. Il y a un petit détail, toutes les bibliothèques doivent être installées deux fois :

pip3 install ‘name_of_package’

pour l'utiliser via la commande python3, et

sudo pip3 install ‘name_of_package’

pour systemd. Cet utilitaire vous aidera à démarrer le bot et à le redémarrer s'il tombe.
Le moyen le plus simple de lancer le bot via python3, mais il s'éteindra si vous vous déconnectez. Vous pouvez utiliser screen, mais le bot ne redémarrera pas tout seul. Vous pouvez également utiliser crontab avec un contrôle de port, mais je pense que cette option est plus compliquée que systemd.

Étape 4. Déployer le bot sur le serveur

Il y a deux façons de déployer votre bot. Si vous ne maîtrisez pas Git, vous pouvez simplement compresser le bot en .tar et le télécharger sur le serveur :

Hébergement gratuit de bot Telegram sur Google Cloud Platform
Après cela, décompressez-le avec la commande :

tar -xvf yourfile.tar

Maintenant, votre bot est stocké dans le dossier nommé d'après l'archive.

La deuxième méthode via Git. Je pense qu'il n'est pas nécessaire d'expliquer comment faire cela à ceux qui savent l'utiliser.

Après son installation avec la commande :

sudo apt install git

Vous pouvez le cloner sur votre VM.

Après cela, passons à la configuration de systemd. Pour cela, accédez à son répertoire :

cd /etc/systemd/system

Et créons le fichier bot.service :

sudo nano bot.service

Entrez le texte suivant dans la fenêtre qui s'ouvre :


[Unit]
Description=Bot Telegram 'Nom du bot'
After=syslog.target
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/home/votre_nom_d_utilisateur/nom_du_dossier_avec_le_bot
ExecStart=/usr/bin/python3 /home/votre_nom_d_utilisateur/nom_du_dossier_avec_le_bot/bot.py

RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target

Fermez et sauvegardez le fichier. Vous pouvez le fermer en utilisant la commande Ctrl+X.

Après cela, entrez les commandes une par une :

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

Si tout va bien, vous verrez quelque chose comme ceci :

Hébergement gratuit de bot Telegram sur Google Cloud Platform
Voilà, maintenant votre bot fonctionne de manière autonome. J'espère que mon article vous aidera à héberger votre bot.

P.S.

1. Vérifiez votre bot pour des erreurs

Lancez votre bot et vérifiez son fonctionnement avant de le démarrer via systemd. Pour cela, allez dans le dossier du bot et lancez-le avec python.

cd 
python3 bot.py

2. Ajoutez l'encodage dans les fichiers .py

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

Ajoutez au début du fichier.

3. Erreurs dans systemd

Si vous avez vérifié le bot pour des erreurs et qu'il fonctionnait normalement, mais qu'il ne souhaite pas démarrer dans systemd, vous pouvez consulter les journaux pour identifier l'erreur en examinant le fichier :

sudo nano /var/log/syslog

Vous pouvez télécharger ce fichier et le visualiser sur votre ordinateur via Notepad++.

4. Mise à jour du bot

Si vous souhaitez apporter des modifications ou déployer une nouvelle version du bot, entrez la commande :

sudo systemctl stop bot

Effectuez toutes les manipulations nécessaires. Ensuite, entrez les commandes suivantes pour qu'il redémarre :

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

Source : habr.com

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster