Passer au contenu principal
Un bot est en ligne tant que chapterjs start tourne. Sur votre ordinateur, il s’arrête quand vous fermez le terminal, donc un bot pour tout le monde vit sur une machine qui reste allumée : un serveur que vous louez, un conteneur, un hébergeur fait pour les applications Node. Quelle qu’elle soit, les étapes sont les mêmes.
1

Y mettre votre projet

Clonez votre dépôt, ou copiez le dossier sans node_modules ni .chapterjs (les deux sont recréés sur la machine). La machine a besoin de Node.js 24 ou plus récent et d’un gestionnaire de paquets.
2

Installer

Lancez la commande d’installation de votre gestionnaire de paquets dans le dossier. L’installation écrit aussi les types du projet (postinstall lance chapterjs sync).
Gardez les dépendances de développement si vous voulez que la compilation vérifie les types là-bas : sans TypeScript, chapterjs build dit ℹ Types were not checked et continue.
3

Lui donner le token

Réglez BOT_TOKEN comme le fait la machine : une variable d’environnement, les « secrets » d’un hébergeur, ou un fichier .env dans le dossier. C’est le token de votre application de production, pas celui du .env de votre ordinateur : voir Un second bot pour le développement. Le vrai environnement l’emporte sur le fichier. Le token est la seule valeur qu’exige chapterjs start.
.env
Ne commitez jamais .env, et ne mettez jamais le token dans votre code : qui le possède contrôle votre bot. S’il fuit, réinitialisez-le sur la page Bot de votre application dans le Developer Portal, et donnez le nouveau à la machine.
4

Compiler

Lancez le script build. Il vérifie chaque fichier et compile le bot dans .chapterjs/build : voir chapterjs build.
5

Lancer

Lancez le script start. Le bot est en ligne pour tout le monde : voir chapterjs start.
C’est tout. Beaucoup d’hébergeurs demandent une « build command » et une « start command » : donnez-leur les scripts build et start de votre projet. Un hébergeur qui récupère votre projet depuis git fait les deux premières étapes tout seul.
Les variables d’environnement et les codes de sortie de chapterjs start sont dans la référence du CLI.

Variables d’environnement

Rien d’autre n’est lu. En particulier, il n’y a aucune option pour les intents, les commandes ou ce dont le bot se souvient : tout cela vient de vos fichiers.

Le garder en marche

chapterjs start tourne jusqu’à ce qu’on l’arrête. Deux choses le terminent :
  • Un arrêt demandé par la machine (Ctrl+C, un SIGTERM d’un hébergeur ou d’un gestionnaire de processus) : le bot se déconnecte proprement, affiche ✓ Disconnected et sort avec le code 0. Laissez-lui quelques secondes pour cela avant de le tuer : un bot tué d’un coup reste affiché en ligne jusqu’à ce que Discord le remarque.
  • Quelque chose à corriger : un token refusé, un intent privilégié non activé, pas de compilation, trop de sessions démarrées aujourd’hui. Le message dit quoi, et la commande sort avec le code 1.
Utilisez ce que propose la machine pour relancer le bot quand il s’arrête, et quand la machine redémarre : un gestionnaire de processus, le réglage « restart » d’un hébergeur, un service système. Ne le relancez pas aveuglément en boucle serrée : un bot qui s’arrête avec le code 1 a quelque chose à corriger, et le relancer ne change rien. Discord limite le nombre de connexions d’un bot par jour ; ChapterJS s’arrête avant la limite plutôt que de laisser Discord réinitialiser votre token :
À l’intérieur de chapterjs start, rien n’a besoin de votre aide : la connexion est gardée en vie et rétablie quand elle tombe, et les processus d’un gros bot sont relancés quand l’un d’eux s’arrête.

Mettre le bot à jour

Mettez les nouveaux fichiers sur la machine, compilez, relancez. Tant que vous ne compilez pas, le bot en marche garde la compilation précédente, et chapterjs start vous le rappelle :
Une compilation est liée à la version de ChapterJS qui l’a faite. Après avoir mis à jour le paquet, recompilez :
Si vous compilez sur votre ordinateur et envoyez le résultat, envoyez aussi .chapterjs/build (il n’est pas dans git), et utilisez la même version de ChapterJS et de Node des deux côtés. Les paquets qu’utilise le bot restent dans node_modules : la production en a besoin, installés.

Gros bots

Un bot présent dans des milliers de serveurs tourne tout seul sur plusieurs processus, un pour 4 shards et jamais plus que la machine n’a de processeurs. Passez --processes pour choisir :
Chaque processus tourne sur la même machine. Une machine avec plus de processeurs et plus de mémoire est le moyen de grandir ; plusieurs machines ne sont pas encore disponibles. Le bot adapte ce dont il se souvient à la mémoire qu’il a, et ne demande plus de mémoire que quand il n’a plus rien à céder :
Ce que veut dire ce message, et ce dont le bot se souvient, est dans Mémoire.

Dépannage

Chaque message, et quoi en faire.

Référence du CLI

Chaque commande, variable et code de sortie.