Ce qui est pris en charge
- Node.js 22 ou 24, au choix dans les paramètres du bot : discord.js, Sapphire et tout module npm.
- npm, pnpm ou yarn selon ton fichier de verrouillage ; les modules natifs comme SQLite (better-sqlite3) sont compilés à l'installation.
- TypeScript :
npm run buildavant le démarrage, ou lancement direct du fichier.ts. - ffmpeg et libopus pour
@discordjs/voice.
package.json et fichier de démarrage
{
"name": "my-bot",
"main": "index.js",
"scripts": { "start": "node index.js" },
"dependencies": {
"discord.js": "^14.19.3",
"dotenv": "^16.5.0"
}
}require('dotenv').config();
const { Client, GatewayIntentBits } = require('discord.js');
const client = new Client({ intents: [GatewayIntentBits.Guilds] });
client.once('ready', (c) => console.log(`Connecté en tant que ${c.user.tag}`));
client.login(process.env.TOKEN);Invokara utilise le script start s'il existe, sinon le champ main, sinon index.js, main.js, bot.js, src/index.js, index.ts…
pm2, plusieurs programmes, sous-dossiers
Pas besoin de pm2 : le bot redémarre déjà tout seul. Un script "start": "pm2 start index.js" est compris, et un ecosystem.config.js à plusieurs applications (le bot et son site, par exemple) les lance toutes ensemble, avec des logs préfixés par leur nom.
Un projet rangé dans un sous-dossier du zip est détecté : les modules s'installent et le bot démarre depuis ce dossier.
Un dashboard Express en HTTPS
Ton bot peut servir son propre site : active le panel web dans Paramètres, indique le port et écoute sur process.env.PORT. L'adresse monbot.invokara.cloud (ou ton domaine) a son certificat HTTPS, créé et renouvelé automatiquement.
const express = require('express');
const app = express();
app.get('/', (req, res) => res.send('Mon bot est en ligne !'));
app.listen(process.env.PORT || 3000, '0.0.0.0');0.0.0.0, pas sur localhost : sinon la page « Ce bot est hors ligne » s'affiche.Les erreurs les plus courantes
Cannot find module 'xxx' | Ajoute le module dans les dependencies de package.json, puis redémarre. S'il y est déjà, ton projet est sans doute dans un sous-dossier. |
Cannot use import statement outside a module | Ajoute "type": "module" dans package.json, ou utilise require. |
Used disallowed intents | Active les intents demandés dans l'onglet Bot du portail développeur Discord. |
JavaScript heap out of memory | Réduis les caches (messages, membres) ou passe à l'offre supérieure. |
Questions fréquentes
Quelle version de Node.js est disponible ?
Node.js 22 ou 24, au choix dans les paramètres du bot.
Faut-il pm2 pour garder le bot en ligne ?
Non : le bot redémarre seul après un plantage. Les scripts pm2 et les fichiers ecosystem.config.js sont compris.
Combien de RAM pour un bot discord.js ?
Un petit bot utilise en général 60 à 150 Mo : l'offre Starter (256 Mo) suffit pour commencer.
Puis-je déployer depuis GitHub ?
Oui : relie ton dépôt et chaque push redéploie le bot. Une version est gardée avant chaque déploiement pour revenir en arrière.
Connexion avec Discord, puis tu envoies ton projet tel quel.