Waarom je bot niet op je eigen pc moet draaien
Zolang je bot op je eigen computer draait, gaat hij offline als je pc uitgaat, in slaapstand gaat of je internet even wegvalt. Voor een server met leden is dat vervelend: commando's werken niet, moderatie stopt en welkomstberichten blijven uit. Een host houdt je bot 24/7 online en start hem opnieuw als hij crasht.
Op het Pro-plan van Zeno-hosting (€10 per maand) draai je Node.js- en Python-bots met 1 GB geheugen. Het platform herkent een Discord-bot zelf: een bot heeft geen webpagina nodig, dus hij wordt als achtergrondproces gestart en in de gaten gehouden.
Stap 1: haal je token uit je code
Je bot-token is het wachtwoord van je bot. Zet het nooit in je code en nooit op GitHub: wie het token heeft, heeft je bot. Lees het in plaats daarvan uit een omgevingsvariabele.
discord.js (JavaScript)
const { Client, GatewayIntentBits } = require("discord.js");
const client = new Client({ intents: [GatewayIntentBits.Guilds] });
client.once("ready", () => console.log(`Online als ${client.user.tag}`));
client.login(process.env.DISCORD_TOKEN);
discord.py (Python)
import os
import discord
client = discord.Client(intents=discord.Intents.default())
@client.event
async def on_ready():
print(f"Online als {client.user}")
client.run(os.environ["DISCORD_TOKEN"])
Gebruik je lokaal een .env-bestand, dan kan dat gewoon. De Zeno CLI uploadt .env nooit mee.
Stap 2: controleer je projectbestanden
Het platform installeert en start je bot automatisch, als je project er zo uitziet:
| discord.js | discord.py | |
|---|---|---|
| Afhankelijkheden | package.json met discord.js | requirements.txt met discord.py |
| Installeren | npm install (of pnpm/yarn, volgens je lockfile) | pip install -r requirements.txt |
| Starten | het start-script, anders index.js, server.js, app.js of main.js | main.py, app.py, server.py of bot.py |
Wijkt jouw project af? Dan stel je in de instellingen van je project een eigen Start command in.
Stap 3: maak een server-project
Log in op het dashboard, klik op New project en kies Server. Voeg je code toe via een upload of een GitHub-repository. Werk je liever in de terminal, ga dan naar de map van je bot en typ:
zeno login
zeno --prod
De CLI vraagt of het een website of een server is. Kies server.
Stap 4: zet je token als omgevingsvariabele
Open de instellingen van je project en voeg bij Environment variables een variabele toe met de naam DISCORD_TOKEN en je token als waarde. Je token staat in het Discord Developer Portal, onder je applicatie bij Bot. Heb je meer geheimen, zoals een API-sleutel voor AI, zet die er dan op dezelfde manier bij.
Stap 5: deploy
Klik op Deploy. Je ziet live hoe de afhankelijkheden worden geïnstalleerd en de bot wordt gestart. Verschijnt Online als … in de logs, dan is je bot live. Vanaf nu:
- draait hij 24/7, ook als je computer uit staat;
- start hij vanzelf opnieuw als hij crasht;
- zie je alle logs en foutmeldingen live in het dashboard;
- zet je een nieuwe versie online met een upload, een
git pushofzeno --prod.
Gegevens bewaren
Bewaart je bot gegevens, zoals waarschuwingen, levels of instellingen per server? Zet die dan in de datamap die het platform je geeft via de omgevingsvariabele ZENODEV_DATA_DIR. Bijvoorbeeld een SQLite-database of een JSON-bestand. Die map blijft bewaard als je een nieuwe versie deployt; bestanden ergens anders niet.
Problemen oplossen
- “An invalid token was provided”. De omgevingsvariabele ontbreekt of heeft een andere naam dan in je code. Controleer hoofdletters en spaties, en deploy opnieuw.
- “Used disallowed intents”. Zet de intents die je bot gebruikt, zoals Message Content of Server Members, aan in het Developer Portal onder Bot.
- De bot start en stopt steeds. Bekijk de logs: meestal ontbreekt er een package in
package.jsonofrequirements.txt. - Je bot heeft ook een webdashboard. Laat de webserver luisteren op de poort uit de omgevingsvariabele
PORT. Dan is je dashboard bereikbaar ophttps://jouw-bot.zeno-innovations.com.
Liever een bot laten maken?
Heb je nog geen bot, of wil je er een met AI, moderatie en een eigen dashboard? Zeno Innovations bouwt ze ook op maat, net als onze eigen bot JARVIS. Kijk bij Discord-bot laten maken.