Ein vorhandener Discord-Bot läuft zuverlässig, wenn der Server dieselbe Laufzeit und Abhängigkeiten wie das Projekt verwendet, den richtigen Einstiegspunkt startet und das Bot-Token als Umgebungsvariable erhält. Prüfe zuerst die Dateien und Startanweisungen des bestehenden Bots. Erfinde keine neue Startdatei und installiere nicht blind die neueste Version jedes Pakets.
1. Einstiegspunkt und Projektdateien feststellen
Arbeite mit einer vertrauenswürdigen, vollständigen Kopie des Botprojekts. Falls du die Projektdateien per SFTP überträgst, beachte die Hinweise zur sicheren Dateiübertragung; Zugang und Zielpfad hängen vom Hosting ab. Lies zuerst dessen README und prüfe die vorhandenen Manifest- und Sperrdateien: bei Node.js zum Beispiel package.json und package-lock.json, bei Python pyproject.toml oder requirements.txt. Suche dort nach einem Startskript, dem erwarteten Einstiegspunkt und den Anforderungen an die Laufzeit. Dateinamen wie index.js oder main.py sind nicht automatisch richtig; übernimm sie nur, wenn das Projekt sie tatsächlich verwendet.
Der Startbefehl muss aus dem Projektverzeichnis ausgeführt werden, das die Konfiguration und Abhängigkeiten enthält. Node.js startet einen vorhandenen Programmeinstiegspunkt mit node; ist im Projekt ein Startskript definiert, nutze dieses. In Python rufst du den bestehenden Einstiegspunkt mit genau dem Interpreter auf, in dessen Umgebung die Pakete installiert sind. Die Node.js-CLI-Dokumentation beschreibt den Programmeinstiegspunkt; npm erklärt, dass npm start das im Projekt definierte Startskript ausführt (npm-Skripte).
2. Laufzeit und Abhängigkeiten passend einrichten
Vergleiche die installierte Node- oder Python-Version mit den Anforderungen des Projekts und der tatsächlich verwendeten Discord-Bibliothek. Prüfe sie vor dem Start, etwa mit node --version und npm --version oder mit python3 --version; wenn du eine bestehende virtuelle Umgebung verwendest, prüfe auf Unix-ähnlichen Systemen zusätzlich ./.venv/bin/python --version. Eine neuere Laufzeit ist nicht automatisch kompatibel; ändere sie nur, wenn die Projekt- und Bibliotheksdokumentation das stützt.
Bei einem Node-Projekt mit vorhandenem package-lock.json stellt npm ci die darin festgehaltenen Pakete wieder her. Der Befehl erwartet diese Sperrdatei und bricht bei einem Konflikt mit package.json ab. Führe ihn im Projektverzeichnis aus, wenn Abhängigkeiten neu eingerichtet werden müssen; nutze ihn nicht als Anlass, Pakete auf dem laufenden Server ungeplant zu aktualisieren. npm beschreibt npm ci.
Bei Python hält eine virtuelle Umgebung die Pakete des Bots von anderen Python-Projekten getrennt. Verwende eine am Zielsystem vorhandene Umgebung oder richte sie in der Serverkopie gemäss Projektanleitung ein. Kopiere eine lokale .venv nicht auf den Server: Python-Umgebungen sind nicht dafür gedacht, verschoben zu werden. Erstelle die Umgebung am Ziel mit dem passenden Python-3-Interpreter, zum Beispiel mit python3 -m venv .venv, falls dieser Befehl dort verfügbar ist. Wenn das Projekt eine requirements.txt bereitstellt, installiere damit in genau dieser Umgebung, zum Beispiel mit ./.venv/bin/python -m pip install -r requirements.txt auf einer Unix-ähnlichen Laufzeit. So gehören pip und der spätere Start zum selben Interpreter. Python erklärt virtuelle Umgebungen; pip dokumentiert Installationen aus einer Requirements-Datei.
3. Konfiguration für den laufenden Prozess setzen
Der Bot braucht das Token, das die Anwendung erwartet. Hinterlege es als geheime Umgebungsvariable mit dem bereits im Projekt verwendeten Namen, zum Beispiel DISCORD_BOT_TOKEN (nur der Variablenname ist hier ein Beispiel). Trage keinen echten Wert in Startbefehle, Quelltext, Logs oder Screenshots ein. Node.js stellt Variablen des Prozessumfelds über process.env bereit; Python stellt sie über os.environ bereit. Die Variable muss deshalb für genau den Prozess gesetzt sein, der den Bot startet. Node.js Umgebungsvariablen und Python os.environ.
Wenn du das Token oder andere Startwerte änderst, muss ein neuer Prozess mit der aktuellen Umgebung starten. Ein bereits laufender Prozess übernimmt eine nachträgliche Änderung seiner Startumgebung nicht automatisch. Welcher Start- oder Neustartweg dafür verfügbar ist, hängt vom eingesetzten Hosting und dessen Dokumentation ab. AeonHost-spezifische Prozessmanager- oder Neustartfunktionen sind hier nicht vorausgesetzt. Falls du keine dauerhafte Laufzeit oder keinen geeigneten Startbefehl findest, prüfe die Dokumentation des Hostings, bevor du den Bot umziehst.
4. Starten und den Zustand prüfen
Nutze den bereits vorgesehenen Startweg des Projekts. In einem Node-Projekt kann das ein definiertes Startskript wie npm start sein; andernfalls starte den bestätigten Einstiegspunkt mit node <vorhandener-einstiegspunkt>. Bei Python verwendest du den Interpreter der Projektumgebung, zum Beispiel ./.venv/bin/python <vorhandener-einstiegspunkt>. Die Platzhalter ersetzt du mit dem realen Pfad aus dem Projekt. Starte keinen beliebigen Dateinamen und füge keinen Tokenwert an den Befehl an.
Prüfe direkt nach dem Start die Konsolenausgabe des Prozesses. Eine erfolgreiche Gateway-Verbindung sollte im Framework als angemeldeter oder bereiter Bot erkennbar sein; danach sollte der Bot in Discord online erscheinen. Teste eine vorhandene Funktion in einem geeigneten Testkanal und beobachte die Logs weiter, bis klar ist, dass der Prozess aktiv bleibt und nicht unmittelbar wieder endet. Discord beschreibt den Gateway-Verbindungsablauf und das Ready-Ereignis in der Gateway-Dokumentation.
Starte nicht versehentlich mehrere Kopien derselben Instanz. Wenn ein Prozess bereits läuft, prüfe zuerst seine Ausgabe und seinen Zustand, bevor du einen zweiten startest. Doppelte Instanzen können wiederholte Antworten oder konkurrierende Schreibzugriffe verursachen, sofern das Projekt nicht ausdrücklich dafür eingerichtet ist.
5. Häufige Startprobleme eingrenzen
- Modul oder Paket fehlt: Prüfe, ob du im Projektverzeichnis bist und ob die Installation im selben Interpreter beziehungsweise Node-Projekt erfolgte, das den Bot startet. Bei Python zeigt
./.venv/bin/python -m pip listdie Pakete genau dieser Umgebung. - Token wird abgelehnt: Prüfe, ob der erwartete Variablenname gesetzt ist und ob du den Prozess nach einer Änderung neu gestartet hast. Gib den Wert nicht in Diagnoseausgaben aus. Falls das Token offengelegt wurde, folge der Anleitung zum sicheren Verwalten und Zurücksetzen des Bot-Tokens.
- Gateway meldet
4014: Die Anwendung fordert einen privilegierten Intent an, der in den App-Einstellungen nicht aktiviert ist oder für den eine erforderliche Freigabe fehlt. Vergleiche den Portal-Schalter mit der Konfiguration des vorhandenen Bots. Entferne den Intent, falls die Funktion ihn nicht braucht. Discord beschreibt diesen Fehler in den Gateway-Intents. - Bot ist online, Funktion bleibt aus: Prüfe, ob der Bot im richtigen Server ist, ob Rolle und Kanal die erforderlichen Berechtigungen haben und ob die Funktion den tatsächlich eingerichteten Befehlstyp verwendet. Bei Nachrichtenbefehlen können zusätzliche Intents nötig sein; erfinde dafür keine Rechte, sondern gleiche die konkrete Bibliothek und Portal-Konfiguration ab.
Vor einem Code- oder Paketupdate sichere den bisherigen Stand und teste Änderungen zuerst in einer getrennten Kopie. Ändere jeweils nur eine Ursache und bewahre die ursprünglichen Startlogs auf. Die AeonHost-Dokumentation enthält weitere Anleitungen; bei Fragen zu den unterstützten Laufzeitbedingungen hilft Kontakt.