Garder votre bot Discord en ligne 24 h/24 : le guide
Vous avez construit un bot Discord. Il distribue les rôles, répond aux commandes ou gère la modération, et votre communauté en est ravie. Jusqu'à ce que vous fermiez votre ordinateur portable et que le bot passe hors ligne. Ça vous parle ? Alors il est temps de faire tourner votre bot quelque part où il reste en ligne jour et nuit, sans que votre PC doive rester allumé.
En pratique, bien gérer un bot revient à quatre choses : un endroit stable où tourner, un token conservé en sécurité, un redémarrage automatique après un plantage et des logs que vous pouvez relire quand quelque chose tourne mal. Passons ces quatre points en revue un par un.
Pourquoi votre propre PC est un mauvais hôte
Pour construire et tester votre bot, votre propre ordinateur convient très bien. Pour tourner 24 h/24, non, et cela n'a pas grand-chose à voir avec sa puissance. Le problème est tout ce qui l'entoure :
- Mises à jour et redémarrages. Windows installe une mise à jour, votre PC redémarre, et votre bot disparaît jusqu'à ce que vous vous en aperceviez. Si vous mettez votre PC en veille, votre bot dort avec.
- Électricité et bruit. Un PC gamer allumé 24 h/24 pour un petit bot de quelques mégaoctets, c'est du gaspillage sur votre facture d'énergie, et ces ventilateurs, vous les entendez vraiment la nuit.
- Internet domestique. Votre connexion coupe parfois, votre routeur change d'adresse IP de temps en temps, et pendant une panne chez votre fournisseur, votre bot est hors ligne aussi longtemps que vous.
- Tout sur une seule machine. Si votre PC plante pendant que vous jouez, vous emportez votre bot dans la chute.
Un Raspberry Pi dans un placard est une alternative sympathique qui peut tout à fait fonctionner, mais lui aussi dépend de votre connexion et de votre alimentation domestiques. Une petite place dans un datacenter, avec une alimentation redondante et une connexion fixe et rapide, résout tous ces problèmes d'un coup. Et non, pas besoin d'un serveur puissant pour cela : la plupart des bots sont justement très légers.
Node.js ou Python : les deux conviennent
Les deux façons les plus populaires de construire un bot Discord sont JavaScript avec discord.js (qui tourne sur Node.js) et Python avec discord.py. Fonctionnellement, pour la plupart des bots, la différence est mince : les deux gèrent les commandes, traitent les événements et dialoguent avec l'API Discord. Choisissez simplement le langage que vous connaissez déjà.
Pour l'hébergement, voici surtout ce qui compte :
- Figez vos dépendances. Avec un
package.json(Node) ou unrequirements.txt(Python), le serveur installe exactement les mêmes paquets que sur votre machine. Sans ces fichiers, « chez moi ça marche » devient une conversation récurrente. - Connaissez votre commande de démarrage. Quelque chose comme
node index.jsoupython main.py. C'est ce que l'hébergeur exécute pour lancer votre bot, alors testez-la en local avant de téléverser. - Ne surestimez pas vos ressources. Un bot de communauté moyen n'utilise qu'une quantité modeste de mémoire. Les bots musicaux et ceux qui mettent beaucoup de données en cache sont l'exception ; ils réclament plus de RAM.
Votre token est la clé de votre bot
Le token de bot que vous créez dans le Discord Developer Portal donne un contrôle total sur votre bot. Quiconque met la main dessus peut envoyer des messages au nom de votre bot, quitter des serveurs ou spammer votre communauté. Les tokens fuitent plus souvent qu'on ne le pense, et presque toujours de la même façon : ils sont codés en dur dans le code et finissent ainsi sur GitHub. Les dépôts publics sont scannés automatiquement par des personnes malveillantes ; un token qui a fuité est souvent exploité en quelques minutes.
Voici la bonne méthode :
- Ne mettez jamais votre token directement dans votre code, mais dans un fichier
.envou dans les variables d'environnement de votre panneau d'hébergement. - Veillez à ce que ce fichier
.envfigure dans votre.gitignore, pour qu'il ne parte jamais sur GitHub. - N'affichez jamais votre token dans les logs. Les fichiers de logs se partagent aussi, par exemple quand vous demandez de l'aide sur un problème.
- Votre token a quand même fuité ? Réinitialisez-le immédiatement dans le Discord Developer Portal. L'ancien token cesse alors de fonctionner sur-le-champ.
Donnez par ailleurs à votre bot uniquement les permissions et intents dont il a vraiment besoin. Un bot qui ne fait que distribuer des rôles n'a pas besoin d'être administrateur. Si quelque chose tourne malgré tout mal, les dégâts restent limités.
Redémarrage auto : les plantages arrivent, pas les interruptions
Tout bot plante un jour. Une erreur inattendue dans votre code, une connexion capricieuse à l'API Discord, une dépendance qui se comporte autrement que prévu. Sur votre propre PC, cela signifie : bot hors ligne jusqu'à ce que vous regardiez par hasard. Chez un bon hébergeur, non, car le panneau surveille votre processus et relance automatiquement votre bot dès qu'il s'arrête. En général, le bot est de nouveau en ligne en quelques secondes, avant même que quiconque dans votre communauté ne s'en rende compte.
Soyons honnêtes : le redémarrage automatique est un pansement, pas un remède. Si votre bot plante toutes les cinq minutes, le redémarrage automatique ne fait que masquer un vrai bug dans votre code. Si vous voyez dans votre panneau une série de redémarrages à la chaîne, plongez dans les logs et corrigez la cause. Interceptez proprement les erreurs dans votre code là où c'est possible, pour qu'une commande ratée ne fasse pas tomber tout votre bot.
Lire les logs : ennuyeux, mais indispensable
Quand votre bot se comporte bizarrement, les logs sont vos meilleurs amis. Via la console en direct de votre panneau d'hébergement, vous voyez exactement ce que fabrique votre bot : quand il a démarré, quelles commandes arrivent et quel message d'erreur est apparu juste avant le problème.
Quelques conseils pour en tirer vraiment parti :
- Enregistrez les moments importants : démarrage, connexion à Discord et chaque erreur interceptée, de préférence avec horodatage. Face à une plainte du type « le bot ne marchait pas hier soir », vous pourrez alors chercher de façon ciblée.
- N'enregistrez pas tout. Consigner chaque message entrant rend vos logs illisibles et peut en plus poser un problème de confidentialité.
- Prenez les avertissements de rate limit au sérieux. Si votre bot envoie trop de requêtes à l'API Discord, il est freiné et paraît lent. Souvent, une boucle dans votre code en est la cause.
Dans notre base de connaissances, vous trouverez des guides pour téléverser et gérer votre bot via le panneau, y compris où trouver la console et les logs.
Commencer gratuitement chez MC-Node
Ce qui est bien avec les bots Discord, c'est qu'ils sont si légers que leur hébergement ne coûte presque rien. Chez MC-Node, cela ne coûte même rien du tout : l'offre Starter pour l'hébergement de bots Discord est gratuite, à 0,00 € par mois. Votre bot tourne alors sur notre propre matériel dans le datacenter Previder PDC2 à Hengelo, avec stockage NVMe et protection anti-DDoS, sur une connexion qui ne tombe pas parce que quelqu'un allume le micro-ondes à la maison.
Via le panneau web, vous téléversez vos fichiers, configurez votre commande de démarrage et vos variables d'environnement (c'est là que votre token a sa place) et suivez la console en direct. Si votre bot plante, il est automatiquement relancé. Si votre bot devient un jour trop grand pour son habit, par exemple parce que vous exploitez un gros bot musical, vous pouvez toujours passer à une solution plus costaude, mais pour la plupart des bots de communauté, c'est amplement suffisant.
Envie d'avoir votre bot en ligne 24 h/24 dès ce soir ? Lancez votre serveur de bot gratuit via mc-node.net/store/discord-bot-hosting, téléversez votre code et c'est fait. Si cela ne vous plaît pas, vous n'êtes engagé à rien.