Zum Inhalt springen
Aktueller Gutschein:10 % RabattIn der Bestellung einlösen

Discord-Bot: Code hochladen, package.json und Start des Bots

Bereiten Sie Ihr Node.js-Bot-Projekt vor, füllen Sie package.json richtig aus, laden Sie die Dateien im Kundenbereich hoch, richten Sie den Start ein, prüfen Sie die Node.js-Version und starten Sie den Bot.

  • Einsteiger
  • ~15 Min.
  • Aktualisiert am 9.10.2026

Ein bei uns gehosteter Node.js-Bot läuft rund um die Uhr und startet nach einem Absturz von selbst neu. Wir zeigen Ihnen, wie Sie das Projekt auf Ihrem Computer vorbereiten, was Sie hochladen und was nicht, wie Sie den Start einrichten und wie Sie die Node.js-Version herausfinden.

Was Sie brauchen

  • Ein Discord-Bot bei StormHost
  • Der Code Ihres Bots in JavaScript (Node.js), idealerweise auf Ihrem Computer getestet
  • Der Bot-Token aus dem Discord Developer Portal (Anleitung)
  • Etwa 15 Minuten

Wie Ihr Bot auf unseren Servern läuft#

  • Die Umgebung ist Node.js. Der Bot ist eine gewöhnliche Node.js-Anwendung, meist mit der Bibliothek discord.js gebaut.
  • Die Dateien des Bots verwalten Sie in der Registerkarte Dateien (ein Dateimanager im Browser).
  • Der Start wird in der Registerkarte Einstellungen festgelegt: der Startbefehl (der vollständige Befehl, schreibgeschützt) und die Variablen (zum Beispiel der Name der Hauptdatei).
  • Die Ausgabe des Bots (alles aus console.log und Fehler) sehen Sie in der Registerkarte Konsole, die auch die Schaltflächen Start, Neustart und Stopp enthält.
  • Automatischer Neustart: Wenn der Bot abstürzt, startet er erneut. Er läuft 24 Stunden am Tag, auch wenn Ihr Computer aus ist.
  • Der Arbeitsspeicher ist durch Ihren Tarif begrenzt. Die Auslastung sehen Sie unter der Konsole.

Projekt auf dem Computer vorbereiten#

Empfohlene Projektstruktur:

text
muj-bot/
├── package.json
├── package-lock.json
├── index.js
├── deploy-commands.js
├── .env
├── .gitignore
├── commands/
│   └── utility/
│       └── ping.js
└── node_modules/

package.json#

package.json beschreibt das Projekt: seinen Namen, welche Datei es startet und welche Pakete es braucht. Legen Sie die Datei im Projektordner mit npm init -y an und fügen Sie Pakete mit npm install discord.js dotenv hinzu. Bearbeiten Sie das Ergebnis anschließend so, dass es ungefähr so aussieht:

package.jsonJSON
{
  "name": "muj-bot",
  "version": "1.0.0",
  "private": true,
  "main": "index.js",
  "type": "commonjs",
  "scripts": {
    "start": "node index.js"
  },
  "engines": {
    "node": ">=18"
  },
  "dependencies": {
    "discord.js": "^14.27.0",
    "dotenv": "^18.0.5"
  }
}
FeldWas es tutWas Sie eintragen
nameDer Projektname. Kleinbuchstaben, ohne Leerzeichen.Beliebig, zum Beispiel muj-bot.
versionDie Version Ihres Bots.1.0.0; Sie können sie bei Änderungen erhöhen.
privatetrue verhindert, dass Sie das Projekt versehentlich in der npm-Registry veröffentlichen.true
mainDie Hauptdatei, mit der der Bot startet.Dieselbe Datei, die Sie ausführen, meist index.js.
typecommonjs = der Code verwendet require(), module = der Code verwendet import.Hängt von Ihrem Code ab. Die discord.js-Anleitungen verwenden commonjs.
scripts.startDer Befehl für npm start auf Ihrem Computer.node index.js
engines.nodeGibt an, welche Node.js-Version der Bot braucht. Es ändert die Version nicht, es warnt nur.>=18 für discord.js 14.
dependenciesDie Pakete, die der Bot braucht, mit Versionen. ^14.27.0 bedeutet „14.27.0 oder jede neuere 14.x“.npm install <PAKET> trägt sie ein; schreiben Sie sie nicht von Hand.

Die Datei package-lock.json wird automatisch erstellt und fixiert die genauen Versionen aller Pakete. Laden Sie sie zusammen mit package.json auf den Server hoch, damit der Server dieselben Versionen installiert wie Ihr Computer.

JSON verzeiht keine Fehler

In package.json müssen Schlüssel und Zeichenketten in doppelten Anführungszeichen stehen, nach dem letzten Eintrag eines Blocks darf kein Komma folgen, und Kommentare sind nicht erlaubt. Ein Fehler, und die Paketinstallation schlägt mit EJSONPARSE fehl.

Was hochladen und was nicht#

Datei oder OrdnerHochladen?Warum
index.js, commands/, events/ und weiterer CodeJaDer Bot selbst.
package.json, package-lock.jsonJaAnhand dieser Dateien werden die Pakete installiert.
.env mit dem TokenJa, nur auf den ServerDer Bot liest den Token daraus. Legen Sie sie nie auf GitHub ab und senden Sie sie niemandem (Anleitung).
node_modules/NeinTausende Dateien. Pakete sollen auf dem Server installiert werden. Außerdem würden unter Windows gebaute Pakete mit nativem Code auf dem Server nicht funktionieren.
.git/, logs/, TestdatenNeinDer Server braucht sie nicht.

Hochladen im Kundenbereich#

  1. Öffnen Sie im Kundenbereich Meine Dienste, klicken Sie auf Ihren Bot und wechseln Sie zur Registerkarte Dateien.
  2. Bleiben Sie im Stammordner /. Hierhin gehört package.json und idealerweise auch die Hauptdatei des Bots.
  3. Klicken Sie auf Hochladen und wählen Sie die Dateien aus dem Projektstamm aus (index.js, package.json, package-lock.json, .env …). Sie können die Dateien auch in das Fenster ziehen.
  4. Für jeden Unterordner (zum Beispiel commands) klicken Sie auf Neuer Ordner, öffnen ihn und laden seine Dateien hinein. Ganze Ordner auf einmal lassen sich nicht hochladen.

Ein großes Projekt mit vielen Ordnern lädt sich leichter per SFTP hoch; den Zugang richtet Ihnen der Support ein (Kontakte). Die Grenzen des Dateimanagers stehen in der Anleitung zur Dateiverwaltung.

Start einrichten#

  1. Wechseln Sie zur Registerkarte Einstellungen.
  2. Klappen Sie Startbefehl auf und prüfen Sie, welcher Befehl den Bot startet. Der Befehl ist schreibgeschützt. Wenn er von einem schraffierten Balken verdeckt ist, ist der Streamer-Modus eingeschaltet. Klicken Sie oben auf Details anzeigen.
  3. Suchen Sie im Abschnitt Variablen die Variable für die Hauptdatei (anhand ihrer Beschreibung, typischerweise mit dem Standardwert index.js) und tragen Sie den Namen Ihrer Hauptdatei ein, zum Beispiel index.js oder bot.js.
  4. Klicken Sie auf Speichern.

Änderungen an Variablen wirken beim nächsten Start des Bots.

Pakete installieren#

Die Pakete aus package.json müssen auf dem Server installiert werden.

  1. Prüfen Sie, ob der Startbefehl npm install enthält.
  2. Wenn ja, werden die Pakete bei jedem Start des Bots automatisch installiert. Die Konsole zeigt dann die Installationsausgabe, zum Beispiel added 25 packages. Deshalb dauert der erste Start länger.
  3. Wenn npm install nicht im Befehl steht oder die Pakete trotzdem nicht installiert werden (der Bot meldet Cannot find module 'discord.js'), kontaktieren Sie uns. Laden Sie nicht den Ordner node_modules von Ihrem Computer hoch.

Um ein neues Paket hinzuzufügen, installieren Sie es auf Ihrem Computer (npm install <PAKET>), laden die neue package.json und package-lock.json auf den Server hoch und starten den Bot neu.

Node.js-Version#

Welche Node.js-Version der Bot verwendet, erfahren Sie aus seiner Ausgabe. Fügen Sie ganz oben in die Hauptdatei ein:

index.jsJavaScript
console.log('Node.js', process.version);

Nach dem Start zeigt die Konsole zum Beispiel Node.js v22.….

  • process.version – die Node.js-Version, unter der der Code gerade läuft, in der Form v<MAJOR>.<MINOR>.<PATCH>.

Was Sie damit anfangen:

Bibliothek oder FunktionBenötigte Node.js-Version
discord.js 1418 oder neuer
process.loadEnvFile() (Laden von .env ohne Paket)20.12 oder neuer
require() von Paketen, die nur als ES-Module existieren20.19 oder 22.12 und neuer

Verwenden Sie auf Ihrem Computer dieselbe Hauptversion wie auf dem Server, damit sich Ihr Code gleich verhält. Empfohlen sind LTS-Versionen (Stand 1. Oktober 2026 ist Node.js 24 das aktive LTS und Node.js 22 das Maintenance-LTS). Das Feld engines in package.json ändert die Version auf dem Server nicht. Wenn Ihr Bot eine andere Node.js-Version braucht, kontaktieren Sie uns.

Erster Start und Kontrolle#

  1. Wechseln Sie zur Registerkarte Konsole und klicken Sie auf Start.

  2. Beobachten Sie die Ausgabe:

    Ausgabetext
    Node.js v22.…
    Ready! Logged in as MujBot#1234

    Die Zeile Ready! … gibt der Bot aus der Anleitung Erster discord.js-Bot aus. Ihr Bot gibt möglicherweise etwas anderes aus.

  3. Auf Discord hat der Bot einen grünen Punkt (online).

Code aktualisieren#

  1. Bearbeiten und testen Sie den Code auf Ihrem Computer.
  2. Laden Sie in der Registerkarte Dateien die geänderten Dateien hoch. Wenn Sie eine Datei mit demselben Namen hochladen, werden Sie gefragt, ob sie überschrieben werden soll; bestätigen Sie.
  3. Klicken Sie in der Registerkarte Konsole auf Neustart. Node.js lädt den Code nur beim Start.

Laden Sie vor einer größeren Änderung die wichtigen Dateien auf Ihren Computer herunter (Schaltfläche Herunterladen), damit Sie etwas haben, worauf Sie zurückgehen können.

Ein Bot mit Datenbank#

Speichern Sie Daten, die einen Neustart überleben müssen (Punkte, Verwarnungen, Servereinstellungen), in einer Datenbank, nicht in Variablen im Speicher.

  1. Legen Sie in der Registerkarte Datenbank eine Datenbank an: Datenbankname, zum Beispiel bot, Erlaubte Verbindungen von %, dann die Schaltfläche Datenbank erstellen. Die Zeile X von Y verwendet zeigt, wie viele Datenbanken Sie haben können.

  2. Tragen Sie die Zugangsdaten in .env auf dem Server ein:

    .envini
    DB_HOST=<DATENBANK_IP>
    DB_PORT=3306
    DB_USER=<BENUTZER>
    DB_PASSWORD=<PASSWORT>
    DB_NAME=<DATENBANKNAME>

    <DATENBANK_IP> und der Port stehen im Feld Host (die Teile vor und nach dem Doppelpunkt); den Rest kopieren Sie aus den Feldern Benutzer, Passwort und Datenbankname.

  3. Installieren Sie auf Ihrem Computer die Bibliothek mysql2 (npm install mysql2) und legen Sie die Verbindung in Ihrem Code an:

    db.jsJavaScript
    const mysql = require('mysql2/promise');
    
    const pool = mysql.createPool({
      host: process.env.DB_HOST,
      port: Number(process.env.DB_PORT),
      user: process.env.DB_USER,
      password: process.env.DB_PASSWORD,
      database: process.env.DB_NAME,
      connectionLimit: 5,
    });
    
    module.exports = pool;
    • mysql.createPool({ … }) – erstellt eine Menge von Verbindungen, die wiederverwendet werden. Das ist robuster als eine einzelne Verbindung, die nach längerer Inaktivität abbrechen kann.
    • Number(process.env.DB_PORT) – Werte aus .env sind Text; der Port muss eine Zahl sein.
    • connectionLimit: 5 – höchstens 5 Verbindungen gleichzeitig. Für einen Bot reicht das völlig.

    Verwendung: const db = require('./db'); und dann const [rows] = await db.query('SELECT * FROM points WHERE user_id = ?', [id]);. Das Fragezeichen ist ein Platzhalter: Die Bibliothek setzt den Wert sicher in die Abfrage ein, was vor SQL-Injection schützt.

Exportieren Sie Ihre Datenbank regelmäßig, zum Beispiel mit HeidiSQL (Schritte).

Bot sauber beenden#

Wenn Sie auf Stopp oder Neustart klicken, erhält der Prozess ein Signal zum Beenden. Der Bot kann sich ordnungsgemäß abmelden und seine Schreibvorgänge abschließen:

index.jsJavaScript
async function ukoncit(signal) {
  console.log(`${signal} empfangen, der Bot wird beendet…`);
  await client.destroy();
  process.exit(0);
}
process.on('SIGINT', ukoncit);
process.on('SIGTERM', ukoncit);
  • process.on('SIGINT' | 'SIGTERM', …) – fängt die Aufforderung zum Beenden ab (auf Ihrem Computer sendet sie Strg+C, auf dem Server das Stoppen des Bots).
  • client.destroy() – trennt den Bot von Discord.
  • process.exit(0) – beendet den Prozess mit Code 0 (kein Fehler).

Wenn Sie eine Datenbank verwenden, schließen Sie auch diese vor process.exit (await pool.end()).

Für Fortgeschrittene: TypeScript und andere Build-Schritte#

Der Server führt JavaScript aus. Kompilieren Sie TypeScript-Code (oder Code mit einem anderen Build-Schritt) auf Ihrem Computer (zum Beispiel npx tsc), laden Sie die erzeugten .js-Dateien (typischerweise den Ordner dist) auf den Server hoch und stellen Sie in den Variablen die Hauptdatei auf die kompilierte Datei ein. Die .ts-Quelldateien und die Entwicklungspakete (devDependencies) brauchen Sie auf dem Server nicht.

Überprüfung#

  • Die Konsole zeigt die Startausgabe ohne Fehler, und der Bot stürzt nicht immer wieder ab.
  • Der Bot ist auf Discord online und reagiert auf Befehle.
  • Nach einem Klick auf Neustart ist der Bot innerhalb weniger Sekunden wieder online.

Fehlerbehebung#

Error: Cannot find module 'discord.js'#

Die Pakete sind nicht installiert. Prüfen Sie, dass package.json im Stammordner liegt und discord.js in den dependencies enthält. Folgen Sie dann dem Abschnitt „Pakete installieren“.

Error: Cannot find module '/…/index.js'#

Die Hauptdatei passt nicht zu den Einstellungen: Die Datei hat einen anderen Namen, liegt in einem Unterordner, oder die Groß- und Kleinschreibung stimmt nicht überein (Index.js und index.js sind auf dem Server zwei verschiedene Dateien). Korrigieren Sie die Variable für die Hauptdatei oder verschieben Sie die Datei in den Stammordner.

npm error code EJSONPARSE#

package.json ist kein gültiges JSON (ein fehlendes Komma oder Anführungszeichen, ein überzähliges Komma, ein Kommentar). Korrigieren Sie die Datei auf Ihrem Computer, prüfen Sie sie mit npm install und laden Sie sie erneut hoch.

Der Bot startet und stürzt sofort ab, immer wieder#

Der automatische Neustart behebt keinen Fehler in Ihrem Code. Suchen Sie in der Konsole den ersten Fehler nach dem Start (eine Zeile mit Error und darunter eine Liste von Dateien), beheben Sie ihn und starten Sie den Bot erneut. Die häufigsten Meldungen erklärt die Anleitung Logs und Fehler.

An invalid token was provided. oder Used disallowed intents#

Es gibt ein Problem mit dem Token oder mit den Intents im Developer Portal. Die Schritte stehen in der Anleitung Token und Intents.

SyntaxError: Cannot use import statement outside a module#

Der Code verwendet import, das Projekt ist aber für require() eingerichtet. Setzen Sie "type": "module" in package.json oder schreiben Sie den Code auf require() um. Mehr dazu in der Anleitung Logs und Fehler.

Zusammenfassung

  • Laden Sie Ihren Code, package.json, package-lock.json und .env in den Stammordner in der Registerkarte Dateien hoch. Laden Sie node_modules nicht hoch.
  • main in package.json und die Variable für die Hauptdatei in der Registerkarte Einstellungen müssen auf dieselbe Datei zeigen.
  • Die Pakete werden auf dem Server installiert. Ob das automatisch geschieht, erkennen Sie am npm install im Startbefehl.
  • Die Node.js-Version ermitteln Sie mit console.log(process.version). discord.js 14 braucht Node.js 18 oder neuer.
  • Starten Sie den Bot nach jeder Codeänderung neu.

Anleitungen durchsuchen