Je Discord bot online zetten met Node.js (discord.js)

Zet je discord.js-bot 24/7 online: bot en token aanmaken, code uploaden zonder node_modules, Startup instellen en de console lezen.

EliteStarHosting Team2 november 20263 min lezen

Zo zet je een bot in JavaScript met discord.js dag en nacht online. Schrijf je in Python? Lees dan de handleiding voor Python.

1. Je bot aanmaken in Discord

  1. Ga naar het Discord Developer Portal, klik op New Application, kies een naam en klik op Create.
  2. Open Bot, klik op Reset Token en kopieer de token. Discord laat hem maar één keer zien.
  3. Leest je bot berichten, zoals !help? Zet dan onder Privileged Gateway Intents de Message Content Intent aan. Voor welkomstberichten heb je de Server Members Intent nodig.
  4. Open OAuth2, ga naar de OAuth2 URL Generator en vink bot en applications.commands aan. Kies onder Bot Permissions wat je bot mag, liever niet Administrator.
  5. Open de link onderaan, kies je Discord-server en klik op Authorize.

De token is het wachtwoord van je bot: deel hem met niemand, ook niet met ons.

2. Je bestanden klaarzetten

Een eenvoudige index.js:

require('dotenv').config();
const { Client, Events, GatewayIntentBits } = require('discord.js');

const client = new Client({ intents: [GatewayIntentBits.Guilds] });

client.once(Events.ClientReady, (readyClient) => {
  console.log(`Logged in as ${readyClient.user.tag}`);
});

client.login(process.env.DISCORD_TOKEN);

In .env staat één regel: DISCORD_TOKEN= met je token erachter. Deel dat bestand nooit: zo bewaar je je token veilig. Draai op je eigen computer npm install discord.js dotenv, zodat beide packages in je package.json staan.

Upload je code, package.json, package-lock.json en .env via Files of SFTP, maar niet de map node_modules: die is groot en gemaakt voor jouw computer. De server installeert je packages bij het starten zelf met npm install.

De bestanden van een bot met package.json en het hoofdbestand

3. Startup instellen

Ga naar Startup:

  • MAIN FILE: het bestand waarmee je bot start, zoals index.js of src/index.js.
  • ADDITIONAL ARGUMENTS: extra opties bij het starten. Laat dit meestal leeg.
  • Docker Image: de Node.js-versie. discord.js 14 heeft minstens Node.js 18 nodig. Kies de hoogste: Nodejs 22.

MAIN FILE, ADDITIONAL ARGUMENTS en Docker Image onder Startup

Zie je ook GIT REPO ADDRESS? Zet dan USER UPLOADED FILES op 1, want je uploadt zelf. Nodejs 21 is daar de hoogste versie.

4. Starten en de console lezen

Klik op Start en open Console. Zie je Logged in as met de naam van je bot? Dan is hij online.

De console met het geheugengebruik (hier van een Minecraft server)

Veelvoorkomende fouten:

  • Cannot find module 'discord.js': discord.js ontbreekt in je package.json.
  • Cannot find module met de naam van je eigen bestand: MAIN FILE klopt niet.
  • An invalid token was provided: de token in .env klopt niet of ontbreekt.
  • Used disallowed intents: zet de intent die je code vraagt aan in het Developer Portal.

Crasht je bot, dan start het paneel hem opnieuw, behalve bij een tweede crash binnen een minuut. Zie je Out of memory: true? Dan heeft je bot meer geheugen nodig dan je pakket biedt.

Bijwerken

Upload je gewijzigde bestanden en klik op Restart. Nieuwe packages uit package.json worden dan geïnstalleerd. Elke nacht herstarten? Gebruik Schedules.

Met de velden voor GitHub haalt de server je code zelf op:

  1. Maak een back-up en maak Files leeg: de server haalt je code alleen op in een lege map.
  2. Vul GIT REPO ADDRESS in, zet USER UPLOADED FILES op 0 en AUTO UPDATE op 1, zodat de server bij elke start je nieuwste code ophaalt.
  3. Klik bij Settings op Reinstall Server en maak daarna je .env opnieuw aan.

Is je repository privé, vul dan ook GIT USERNAME en GIT ACCESS TOKEN in. Die token is net zo geheim als een wachtwoord: geef hem alleen leesrechten.