Sync Bot — Server-Spiegelung
Einrichtung
Bot anlegen, auf beide Server einladen und auf Pterodactyl (Node 22) hosten.
Einrichtung
1. Discord-Bot anlegen
- Im Developer Portal eine Application erstellen.
- Unter Bot einen Bot hinzufügen und den Token kopieren.
- Unter Bot → Privileged Gateway Intents das Message Content Intent aktivieren.
- Die Application ID unter General Information kopieren (wird als
CLIENT_IDgebraucht).
Das Intent Server Members wird nicht benötigt. Message Content ist Pflicht;
Server Message Reactions ist nicht „privileged" und muss nicht extra freigeschaltet werden.
2. Bot einladen — auf beide Server
Lade den Bot über eine OAuth2-URL mit den Scopes bot und applications.commands ein. Nötige
Rechte: Kanäle verwalten, Webhooks verwalten, Kanäle ansehen, Nachrichten senden,
Nachrichtenverlauf lesen.
Der Bot muss auf Server A und Server B sein. Fehlt er auf einem der beiden, schlägt
/sync activate fehl.3. Hosting auf Pterodactyl (Node 22)
- Node-Version im Egg auf 22 stellen. Node 18 wird nicht unterstützt.
- Quellcode hochladen — ohne
node_modules(wird auf dem Server frisch installiert). - Environment-Variablen setzen:
| Variable | Beschreibung |
|---|---|
DISCORD_TOKEN | Bot-Token aus dem Developer Portal |
CLIENT_ID | Application ID |
JS_FILE | dist/index.js — der Startbefehl führt dist/${JS_FILE} aus |
DATABASE_PATH | Optional, Standard ./data/sync.db |
Beim Start läuft automatisch: npm install → npx tsc -p (kompiliert nach dist/dist/) →
node dist/dist/index.js.
Lege
DATABASE_PATH auf einen dauerhaften Pfad (z. B. ./data/sync.db). Geht die Datenbank
verloren, erkennt der Bot seine eigenen Webhooks nicht mehr — das kann zu Endlosschleifen führen.4. Lokal starten (optional)
cp .env.example .env # Token + Client-ID eintragen
npm install
npm run dev
5. Slash-Commands
Die /sync-Befehle werden automatisch registriert — beim Start für alle Server, in denen der Bot
ist, und sofort, sobald der Bot einem neuen Server beitritt. Du musst nichts manuell deployen.
Danach geht's zu den Befehlen — dort steht, wie du einen Sync startest.