Un bot Discord est un programme qui doit rester connecté à l'API de Discord en permanence. Tant qu'il tourne dans un terminal sur votre ordinateur, il vit au rythme de votre machine : mise en veille, redémarrage de Windows, Wi-Fi qui décroche, et le bot passe hors ligne. C'est, de loin, la première raison pour laquelle on nous écrit.
Ce guide fait le tour des façons d'héberger un bot Discord en 2026, avec leurs vrais coûts et leurs vraies contraintes, puis détaille la mise en ligne sur un panel Pterodactyl comme le nôtre. On parle surtout de Node.js et de Python parce que c'est ce que font tourner la grande majorité des bots qu'on héberge, mais la logique est la même pour Java, Go ou Rust.
1. Pourquoi un bot ne peut pas rester sur votre PC
Sur votre PC, le bot fonctionne, et c'est parfait pour développer. Le problème commence quand d'autres personnes comptent dessus. Un bot de modération qui disparaît à deux heures du matin pendant que vous dormez, un bot de tickets qui ne répond plus parce que Windows a installé une mise à jour : la communauté le remarque avant vous, et vous l'apprenez par un message privé agacé.
Héberger le bot, c'est le faire tourner sur une machine dont c'est le seul rôle, dans un datacenter, avec une connexion stable et quelqu'un pour la surveiller. Concrètement, ça change quatre choses :
- Le bot reste en ligne, PC éteint ou pas.
- Il redémarre tout seul après un crash. Sur un VPS c'est pm2 ou systemd qui s'en charge, sur un panel c'est intégré.
- La connexion ne dépend plus de votre box. Un redémarrage de routeur chez vous ne coupe plus rien.
- Il est derrière une protection anti-DDoS, ce qui compte dès que le bot devient visible sur un gros serveur.
Il y a aussi un bénéfice moins évident : séparer le développement de la production. Vous cassez quelque chose en local, le bot en ligne continue de tourner sur la version précédente. Le jour où vous avez une communauté active, cette séparation vaut de l'or.
2. PC, VPS ou hébergeur spécialisé : les trois options
Il n'y a pas de mauvaise option dans l'absolu. Il y a des options adaptées à ce que vous savez faire et au temps que vous voulez y passer.
A. Votre propre machine
Vous lancez node index.js ou python bot.py et le bot est en ligne. C'est la bonne méthode pour développer, et une mauvaise pour la production, pour les raisons vues plus haut. Variante fréquente : un Raspberry Pi ou un vieux portable dans un placard. Ça marche, à condition d'accepter de jouer les administrateurs le dimanche soir quand la carte SD rend l'âme.
Pour qui : le développement et les tests. Dès que quelqu'un d'autre que vous utilise le bot, passez à l'une des deux options suivantes.
B. Un VPS
Un VPS est une machine virtuelle louée chez un hébergeur généraliste (OVH, Hetzner, Scaleway et d'autres). L'entrée de gamme tourne autour de 3 à 6 euros par mois pour un ou deux gigas de RAM. Vous avez la main sur tout, et c'est précisément là que ça se complique : tout est à faire. Installer Node ou Python, créer un utilisateur non root, ouvrir et fermer les bons ports, mettre en place pm2 ou un service systemd pour relancer le bot, suivre les mises à jour de sécurité, surveiller les logs qui finissent par remplir le disque.
Pour qui : ceux qui connaissent déjà Linux, ou qui ont envie d'apprendre. Si votre bot a besoin de paquets système particuliers ou de plusieurs services qui tournent côte à côte, le VPS reste la réponse la plus souple. Pour un seul process Node, c'est souvent beaucoup d'administration pour pas grand-chose.
C. Un hébergeur spécialisé bots Discord
Un hébergeur de bots vous donne un conteneur déjà prêt pour Node, Python ou Java, piloté depuis un panel web, Pterodactyl dans notre cas. Vous déposez votre code, vous renseignez le token dans une variable, vous cliquez sur Démarrer. L'installation des dépendances au premier lancement, le redémarrage après crash, la console en direct et le gestionnaire de fichiers sont là d'office.
La contrepartie, il faut la dire : vous avez moins de liberté qu'avec un VPS. Pas d'accès root, un environnement défini par l'image que vous avez choisie à la commande. Pour la plupart des bots, ce cadre est exactement ce qu'il faut. Pour un projet qui sort du cadre, le VPS reprend l'avantage.
3. Ce que propose Fastheberg, et ce qu'il faut savoir avant
On n'héberge que des bots Discord, c'est toute notre activité. Voici ce que ça donne concrètement.
Serveur livré en 120 secondes
La commande déclenche la création du conteneur. Deux minutes plus tard, vous recevez vos accès au panel par e-mail. Aucune validation manuelle.
Un plan à 0 euro, sans carte bancaire
128 Mo de RAM DDR4, un demi vCore Intel Gold à 4,2 GHz, 512 Mo de SSD. De quoi faire tourner un bot de modération ou d'utilitaires sans rien payer.
Anti-DDoS sur tous les plans
Y compris le gratuit. Les serveurs sont en France, ce qui donne une latence faible vers les passerelles Discord européennes.
Node.js, Python, Java et les autres
discord.js, discord.py, JDA, mais aussi Rust, Go, Bun ou Lua. Vous changez de version de Node ou de Python depuis le panel, sans recréer le serveur.
À savoir avant de choisir. Le plan gratuit n'inclut pas de base de données, et 128 Mo de RAM suffisent pour un bot de modération, de bienvenue ou de tickets, pas pour un bot musique : Lavalink seul en demande davantage. Si c'est votre cas, partez directement sur Standard ou Pro, vous vous éviterez un ticket. Le détail des fonctionnalités du panel est sur une page dédiée.
Les trois offres
4. Mise en ligne pas à pas sur le panel
Voici le parcours tel qu'on le fait nous-mêmes quand on teste un bot. Comptez cinq minutes la première fois, deux les suivantes.
Commander le serveur
Créez un compte, choisissez l'offre et l'environnement (Node.js ou Python, c'est modifiable ensuite). Pour un premier bot, le plan gratuit suffit. Deux minutes plus tard, un e-mail vous donne l'adresse du panel et vos identifiants.
Si vous savez déjà que le bot aura besoin d'une base de données ou qu'il gère de l'audio, prenez Standard ou Pro tout de suite. Changer d'offre plus tard est possible, mais autant partir sur les bonnes ressources.
Préparer le projet avant l'envoi
Trois vérifications qui évitent les trois erreurs les plus fréquentes au premier démarrage :
- En Node.js, le
package.jsondoit lister toutes les dépendances. Si discord.js manque dedans parce que vous l'aviez installé à la main, le serveur ne pourra pas l'installer et vous aurez unCannot find module. - En Python, même logique avec
requirements.txt. Unpip freezeen local vous le génère en une commande. - Le token ne doit pas être écrit dans le code. Lisez-le depuis une variable d'environnement. Vous la renseignerez dans le panel à l'étape 4.
const { Client, Events, GatewayIntentBits } = require('discord.js');
const client = new Client({
intents: [
GatewayIntentBits.Guilds,
GatewayIntentBits.GuildMessages,
GatewayIntentBits.MessageContent, // intent privilégié, à activer dans le portail développeur
],
});
client.once(Events.ClientReady, (c) => {
console.log(`Connecté : ${c.user.tag}`);
});
client.login(process.env.DISCORD_TOKEN);Envoyer le code
Dans le panel, l'onglet Fichiers accepte le glisser-déposer. Le plus rapide est de zipper le projet, de déposer l'archive, puis de la décompresser depuis le menu du fichier. Si le code est sur GitHub ou GitLab, ouvrez plutôt la Console et clonez le dépôt directement dans le dossier courant : les mises à jour se feront ensuite avec un simple git pull.
N'envoyez pas node_modules. Le dossier est lourd, il a été compilé pour votre système, et le serveur le reconstruit de toute façon au premier démarrage à partir du package.json.
Renseigner le token et le fichier de démarrage
L'onglet Startup du panel regroupe les variables du serveur : le fichier principal à lancer (index.js ou bot.py par défaut, changez-le si le vôtre s'appelle autrement) et les variables d'environnement. Collez-y votre token. Le nom de la variable doit correspondre à ce que lit votre code, process.env.DISCORD_TOKEN dans l'exemple ci-dessus.
DISCORD_TOKEN=le_token_copié_depuis_le_portail_développeur
PREFIX=! Vous pouvez aussi déposer un fichier .env et le charger avec dotenv, comme en local. Les deux méthodes marchent, l'onglet Startup a juste l'avantage de ne laisser aucun secret dans vos fichiers.
Démarrer et lire la console
Cliquez sur Démarrer. Au premier lancement, le serveur installe les dépendances, ce qui prend de quelques secondes à une minute selon leur nombre, puis exécute votre fichier principal. La ligne « Connecté : NomDuBot#1234 » dans la console signifie que c'est bon. Sur Discord, la pastille passe au vert.
Si ça ne démarre pas, la console dit presque toujours pourquoi. Les quatre messages qu'on voit le plus souvent :
Used disallowed intents: vous demandez MessageContent ou GuildMembers sans l'avoir activé dans le portail développeur, section Bot, Privileged Gateway Intents.TokenInvalid: token mal copié, ou nom de variable différent entre le panel et le code.Cannot find module: une dépendance absente du package.json, voir l'étape 2.- Le serveur s'arrête sans message quelques secondes après le démarrage : regardez l'onglet ressources. Si la RAM a tapé le plafond, le conteneur a été coupé. Allégez le bot ou changez d'offre.
5. Ce qui évite les tickets de support
Le bot tourne. Voici ce qu'on recommande ensuite, dans l'ordre où ça rapporte le plus.
Attraper les erreurs au lieu de laisser le process mourir
Une promesse rejetée sans catch suffit à faire tomber un process Node. Le panel le relance, mais vous perdez l'état en mémoire et quelques secondes de disponibilité à chaque fois. Deux lignes en haut du fichier principal transforment ces crashs en simples lignes de log :
process.on('unhandledRejection', (error) => {
console.error('Promesse rejetée sans catch :', error);
});
process.on('uncaughtException', (error) => {
console.error('Exception non capturée :', error);
});Tenir dans 128 Mo
Sur le plan gratuit, la mémoire est la ressource qui compte. Trois réglages font la différence :
- Ne demandez que les intents dont vous vous servez. Chaque intent, c'est un flux d'événements de plus que Discord envoie et que la bibliothèque garde en cache.
- Limitez les caches de discord.js avec
makeCacheetOptions.cacheWithLimits, surtout le cache des messages, qui grossit vite sur un serveur actif. - Ne gardez pas de données en mémoire « au cas où ». Un fichier JSON ou une base de données sur les plans Standard et Pro font ça mieux, et survivent à un redémarrage.
Découper le code avant qu'il ne devienne un fichier de 2 000 lignes
Un fichier par commande, un fichier par événement, et un chargeur qui parcourt les dossiers au démarrage. C'est la structure que proposent les guides officiels de discord.js, et elle a un avantage concret sur un hébergeur : quand une commande casse, vous ne remplacez qu'un fichier dans le panel.
mon-bot/
├── index.js # connexion + chargement des dossiers
├── deploy-commands.js # enregistrement des slash commands
├── package.json
├── .gitignore # contient .env et node_modules
├── commands/
│ ├── ping.js
│ └── moderation/
│ ├── ban.js
│ └── clear.js
└── events/
├── ready.js
└── interactionCreate.jsPasser aux slash commands si ce n'est pas déjà fait
Les commandes à préfixe (!ping) demandent l'intent MessageContent, qui est privilégié et que Discord n'accorde plus automatiquement aux bots présents sur plus de 100 serveurs. Les slash commands n'en ont pas besoin, s'autocomplètent côté utilisateur et valident les paramètres avant même que votre code soit appelé. Un script deploy-commands.js lancé une fois depuis la console du panel suffit à les enregistrer.
Jeter un œil aux ressources de temps en temps
L'onglet d'accueil du serveur affiche la RAM et le CPU en direct. Une consommation mémoire qui monte doucement sans jamais redescendre, c'est en général un cache ou un tableau qui ne se vide jamais. Mieux vaut le voir sur le graphique que l'apprendre par un redémarrage forcé.
Protéger le token
- Le
.envva dans le.gitignoreavant le premier commit. Un token poussé sur un dépôt public est repéré et révoqué par Discord, et votre bot tombe au moment où vous vous y attendez le moins. - En cas de doute, régénérez le token depuis le portail développeur et mettez à jour la variable dans le panel. Ça prend une minute.
- Invitez le bot avec les permissions dont il a besoin, pas avec Administrateur par facilité. Si le token fuit, les dégâts possibles restent proportionnés.
Les questions qu'on reçoit le plus souvent sur la configuration ont leur réponse dans la FAQ. Pour le reste, le support répond sur Discord.
6. Pour résumer
Votre PC pour développer. Un VPS si vous aimez administrer Linux ou si le projet dépasse le simple bot. Un hébergeur spécialisé pour tout le reste, c'est-à-dire la majorité des bots Discord : un panel, un token, un bouton Démarrer, et un process qui redémarre tout seul.
Si vous hésitez encore entre le plan gratuit et une offre payante, le comparatif ci-dessous détaille ce que 128 Mo de RAM permettent vraiment. Et si votre bot est en discord.js, le tutoriel chronométré vous emmène du compte au bot en ligne.
À lire ensuite
Hébergement bot Discord gratuit vs payant : que choisir ?
Ce qui tient dans 128 Mo, ce qui ne tient pas, et à quel moment passer à Standard ou Pro.
TutorielDéployer un bot discord.js en 5 minutes
Du compte au bot en ligne, étape par étape, avec les erreurs de console les plus courantes et leur correctif.