Déployer un bot Discord.js
Guide pas à pas pour déployer un bot Discord.js (Node.js) sur Daki Hosting.
Ce guide vous accompagne dans le déploiement d'un bot Discord.js sur Daki Hosting — de la création de votre serveur à la mise en ligne de votre bot, en passant par la lecture sécurisée de son token.
Ce que vous allez apprendre
- Comment créer un serveur Node.js pour votre bot
- Comment téléverser votre code
- Comment configurer la commande d'installation, la commande de démarrage et l'image Docker
- Comment définir le token de votre bot en toute sécurité avec un fichier
.env - Comment démarrer votre bot et vérifier qu'il fonctionne
Prérequis
- Un compte Daki (Free Tier ou payant) — voir Créer un compte
- Un bot Discord avec un token de bot, créé dans le Discord Developer Portal
- Le code source de votre bot, avec un
package.jsonincluantdiscord.jsetdotenvcomme dépendances
Les bots Discord se connectent en sortant vers les serveurs de Discord et n'ont pas besoin de port entrant. Les bots Discord fonctionnent donc aussi bien sur le Free Tier que sur les offres payantes. Si votre bot sert aussi des requêtes HTTP (par ex. pour les interactions de commandes slash ou les webhooks), vous aurez besoin d'une offre payante, car les ports accessibles publiquement ne sont disponibles que sur les offres payantes. Voir Réseau et allocations.
Déploiement
Créez un serveur Node.js
- Connectez-vous au Dashboard Free Tier sur free.daki.cc ou au Billing Panel sur billing.daki.cc.
- Créez un nouveau serveur et sélectionnez l'egg Node.js.
- Donnez un nom à votre serveur (par ex.
MyDiscordBot).
Voir Créer votre premier serveur gratuit pour le parcours complet.
Accédez au Portail
Connectez-vous au Portail via SSO (Open Portal sur la page Account du dashboard, ou sur la page de votre service dans le Billing Panel), ou directement sur portal.daki.cc. Voir Vue d'ensemble du Portail.
Téléversez le code de votre bot
Option A — Téléversement en ZIP (le plus simple) :
- Compressez le dossier de votre projet dans un fichier
.zipsur votre ordinateur. - Dans le Portail, allez dans l'onglet Files et cliquez sur Upload.
- Faites un clic droit sur le
.zipet cliquez sur Extract.
Option B — Utilisez SFTP (sans limite de taille) : Connectez-vous avec vos identifiants SFTP depuis l'onglet Settings et téléversez directement votre dossier. Voir Gestionnaire de fichiers.
N'incluez pas le dossier
node_modulesdans le téléversement : il sera installé automatiquement par la commande d'installation. Incluez en revanche votrepackage.jsonet votrepackage-lock.json.- Compressez le dossier de votre projet dans un fichier
Configurez l'onglet Startup
Ouvrez l'onglet Startup et configurez les trois champs :
1. Docker Image — Sélectionnez la version de Node.js dont votre bot a besoin (par ex. Node.js 22 ou Node.js 24). Node.js 24 LTS est une valeur par défaut sûre en cas de doute. Évitez les versions marquées EOL : elles ne reçoivent plus de mises à jour de sécurité.
2. Install Command — Définissez-la pour installer automatiquement vos dépendances :
Shellnpm install3. Startup Command — Définissez la commande qui lance votre bot :
node index.js— si votre fichier d'entrée estindex.jsnode bot.js— si votre fichier d'entrée estbot.jsnpm start— si votrepackage.jsoncontient un scriptstart
Vous pouvez adapter librement ces commandes à la structure de votre projet.
Voir Paramètres de démarrage pour une explication complète.
Ajoutez le token de votre bot via un fichier .env
Votre bot a besoin de son token Discord pour se connecter. Enregistrez-le dans un fichier
.envsur le serveur afin qu'il n'apparaisse jamais dans votre code source.- Dans l'onglet Files, cliquez sur New File et nommez-le
.env. - Ajoutez votre token :
.env
BOT_TOKEN=your_discord_bot_token_here - Cliquez sur Save.
Dans le code de votre bot, chargez-le avec
dotenv:JavaScriptrequire('dotenv').config(); const { Client, GatewayIntentBits } = require('discord.js'); const client = new Client({ intents: [GatewayIntentBits.Guilds] }); client.once('ready', () => { console.log(`Logged in as ${client.user.tag}`); }); client.login(process.env.BOT_TOKEN);Vérifiez que
dotenvfigure bien dans les dépendances de votrepackage.jsonafin qu'il soit installé par la commande d'installation.Voir Variables d'environnement pour plus de détails sur l'utilisation des fichiers
.env.- Dans l'onglet Files, cliquez sur New File et nommez-le
Démarrez votre bot
Cliquez sur Start dans l'onglet Console. Un lancement réussi affiche la confirmation de connexion de votre bot :
TextLogged in as MyBot#1234!Si des erreurs apparaissent à la place, consultez le guide Dépannage.
Problèmes courants
Error: Cannot find module 'discord.js'
Vos dépendances n'ont pas été installées. Vérifiez que votre package.json liste discord.js comme dépendance et que la commande d'installation est bien npm install dans l'onglet Startup. Redémarrez le serveur pour relancer l'installation.
Error: Cannot find module 'dotenv'
Ajoutez dotenv aux dépendances de votre package.json et redémarrez le serveur pour réinstaller.
Error: An invalid token was provided
Le token de votre bot dans le fichier .env est incorrect ou manquant. Allez dans l'onglet Files, ouvrez .env et vérifiez la valeur. Assurez-vous qu'il n'y a ni espaces superflus, ni guillemets, ni retours à la ligne en trop.
Le bot démarre mais se déconnecte peu après
Cela est généralement dû à des Gateway Intents manquants. Dans le Discord Developer Portal, activez les intents privilégiés requis (par ex. Message Content Intent) pour l'application de votre bot, et vérifiez que votre code les demande.
Le serveur plante dès le démarrage
Ouvrez l'onglet Console et lisez l'erreur. Causes courantes : une mauvaise commande de démarrage (faute de frappe dans le nom du fichier), une mauvaise version de Node.js ou un node_modules manquant. Voir Dépannage.
Étapes suivantes
- Variables d'environnement — Guide complet sur les fichiers
.envet la lecture des variables dans le code. - Renouveler votre serveur gratuit — Regardez des publicités pour garder votre serveur Free Tier en vie.
- Gestionnaire de fichiers — Mettez à jour vos fichiers de code après des modifications.