OffshoreVps
Tutoriels8 oct. 20265 min de lecturePar l’équipe OffshoreVps

Comment héberger un bot Telegram sur un VPS

Obtenez un jeton de bot, écrivez un bot Python, stockez le jeton en sécurité et gardez-le actif 24 h/24, 7 j/7 avec un service systemd.

Un bot Telegram doit tourner en permanence pour répondre aux messages. Le faire tourner sur votre portable signifie qu’il se déconnecte dès que vous fermez l’écran. Un petit VPS règle le problème pour quelques dollars par mois. Ce guide fait tourner un bot Python comme service systemd afin qu’il démarre au boot et redémarre après un plantage.

Fenêtre de terminal sur un VPS montrant les commandes utilisées pour héberger un bot Telegram, à commencer par « sudo apt update && sudo apt install -y python3 p »
Le type de commandes que vous exécuterez sur votre serveur dans ce guide.

Quelle taille de VPS ?

La plupart des bots sont légers. Une offre avec 1 à 2 vCPU et 2 Go de RAM est largement suffisante. Voir l’hébergement de bots Telegram pour les offres suggérées.

Étape 1 : obtenir un jeton de bot

Parlez à @BotFather sur Telegram, envoyez /newbot, choisissez un nom et un nom d’utilisateur se terminant par bot, et copiez le jeton. Traitez-le comme un mot de passe, car toute personne qui le possède peut contrôler le bot.

Étape 2 : préparer le serveur

sudo apt update && sudo apt install -y python3 python3-venv
sudo adduser --disabled-password --gecos "" botuser
sudo -iu botuser
mkdir ~/mybot && cd ~/mybot
python3 -m venv .venv
. .venv/bin/activate
pip install python-telegram-bot

Étape 3 : écrire un petit bot

# bot.py
import os
from telegram import Update
from telegram.ext import ApplicationBuilder, CommandHandler, ContextTypes

async def start(update: Update, ctx: ContextTypes.DEFAULT_TYPE):
    await update.message.reply_text("Hello! I am running on a VPS.")

app = ApplicationBuilder().token(os.environ["BOT_TOKEN"]).build()
app.add_handler(CommandHandler("start", start))
app.run_polling()

Le polling n’a besoin d’aucun port ouvert, vous n’avez donc pas à configurer de domaine ni de webhook.

Les étapes de ce guide dans l’ordre : 1. Quelle taille de VPS ? ; 2. obtenir un jeton de bot ; 3. écrire un petit bot ; 4. stocker le jeton en sécurité ; 5. Mise à jour et surveillance ; 6. Polling ou webhook ?
Les étapes de ce guide, dans l’ordre.

Étape 4 : stocker le jeton en sécurité

echo "BOT_TOKEN=123456:ABC..." > ~/mybot/.env
chmod 600 ~/mybot/.env

Étape 5 : l’exécuter comme un service

De retour en tant qu’utilisateur administrateur, créez /etc/systemd/system/mybot.service :

[Unit]
Description=Telegram bot
After=network-online.target

[Service]
User=botuser
WorkingDirectory=/home/botuser/mybot
EnvironmentFile=/home/botuser/mybot/.env
ExecStart=/home/botuser/mybot/.venv/bin/python bot.py
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now mybot
sudo journalctl -u mybot -f

Mise à jour et surveillance

  • Mettez à jour le code, puis sudo systemctl restart mybot.
  • Consultez les journaux avec journalctl -u mybot -n 100.
  • Utilisez des sauvegardes si le bot stocke des données.

Polling ou webhook ?

Le polling est le plus simple et convient à la plupart des bots. Utilisez un webhook si vous avez besoin d’une livraison instantanée à fort volume, ce qui exige un domaine et HTTPS. Voir l’hébergement avec Nginx et HTTPS.