Eigener Discord-Bot auf einem VPS hosten

Dieser Leitfaden bietet einen Schritt-für-Schritt-Prozess, um den CrossBan Discord-Bot selbst auf einem Virtual Private Server (VPS). CrossBan ist ein Bot zum Synchronisieren von Banns über mehrere Discord-Server hinweg, gebaut mit TypeScript, Discord.js und PostgreSQL. Er ist mit Docker containerisiert für einfache Bereitstellung.

circle-info

Dieser Bot ist unter der PolyForm Noncommercial License 1.0.0 lizenziert. Du darfst ihn nicht für kommerzielle Zwecke oder zur Gewinnerzielung verwenden. Self-Hosting ist nur für persönliche oder gemeinnützige Nutzung erlaubt.

Voraussetzungen

Minimale VPS-Anforderungen

  • Betriebssystem: Ubuntu 22.04 LTS oder eine ähnliche Linux-Distribution (empfohlen für Docker-Kompatibilität).

  • Arbeitsspeicher: Mindestens 2GB, weil Docker dafür bekannt ist, RAM zum Frühstück zu verzehren.

  • Speicher: 10GB+ freier Speicherplatz (für Docker-Images, Datenbank und Logs). 20GB+ ist besser.

  • CPU: 2 Kerne (ausreichend für moderaten Gebrauch).

circle-info

Ein Server kostet Geld - du solltest keine kostenlosen Hosting-Lösungen verwenden, weil du dort keine persönliche IP-Adresse bekommst, was zu Problemen mit deinem Bot führen kann.

Normalerweise kosten Server mit diesen Anforderungen etwa 3–5€ / Monat, abhängig vom Hosting-Anbieter.

Ein Server kostet nicht viel und ich würde Venocix empfehlen - eine sehr zuverlässige Hosting-Lösung aus Deutschland.

Server-Vorschlag

Software-Anforderungen

Server-Anforderungen

  • Docker: Version 27+ (verwende die neueste Version, damit du sie längere Zeit nicht aktualisieren musst)

  • Docker Compose: Version 2.39 (gleiches Denken wie oben)

  • Git: Zum Klonen des Repositories.

  • SSH-Zugang: Zu deinem VPS für Fernverwaltung.

Lokale Anforderungen

  • Ein SSH-Client wie Termiusarrow-up-right um sicher eine Verbindung zu deinem VPS herzustellen und eine benutzerfreundliche Oberfläche zu haben.

Weitere Anforderungen


Bot einrichten

Schritt 1: Bereite deinen VPS vor

  1. Verbinde dich mit deinem VPS mit deinem SSH-Client.

  2. System aktualisieren:

    Denk daran, dass du aus Sicherheitsgründen das eingegebene Passwort nicht siehst.

  3. Docker und Docker Compose installieren: Bitte beziehe dich auf die offiziellen Docker-Dokusarrow-up-right für die korrekte Installationsmethode für dein Betriebssystem.

  4. Git installieren:

  5. Installationen überprüfen:

Schritt 2: Repository klonen und einrichten

  1. Repository klonen:

  2. Umgebungsdatei erstellen:

    • Kopiere die Beispiel-Umgebungsdatei:

    • Bearbeite .env mit deinen Daten:

      Fülle die Platzhalter aus.

Schritt 3: Lade den Bot auf deine Server ein

  1. Gehe zum Discord Developer Portal.

  2. Deaktiviere den allgemeinen Installationslink und erlaube nur Guild-Installation.

  3. Gehe zur Bot-Seite und deaktiviere Public bot und regeneriere das Token deines Bots.

    Deaktiviere Public bot, weil sonst jeder deinen Bot einladen kann - das willst du nicht.
  4. Unter deiner Bot-Anwendung gehe zu OAuth2 > OAuth2 URL-Generator.

  5. Wähle Scopes: bot, applications.commands.

  6. Wähle Berechtigungen: Mitglieder bannen, Audit-Log ansehen, Nachrichten senden, Slash-Befehle verwenden.

  7. Benutze die generierte URL, um den Bot in deine Server einzuladen.

Schritt 4: Bot konfigurieren und starten

  1. Bot bauen und starten:

    • Verwende die Docker Compose Datei:

    • Dies baut die Docker-Images, startet den Bot und die PostgreSQL-Datenbank und führt sie im Detached-Modus aus (damit sie im Hintergrund laufen, selbst wenn du die Verbindung zum Server trennst).

  2. Setup überprüfen:

    • Container-Status prüfen:

    • Logs ansehen:

    • Der Bot sollte in deinen Discord-Servern online erscheinen. Führe /config in Discord aus, um Einstellungen zu konfigurieren.

  3. Erstkonfiguration in Discord:

    • Benutze Slash-Befehle wie /config sources-of-truth um vertrauenswürdige Nutzer festzulegen.

    • Konfiguriere Bannsynchronisationseinstellungen pro Server.

Schritt 4: Überwachung und Wartung

Logs

  • Echtzeit-Logs ansehen:

Updates

  • Ziehe den neuesten Code:

  • Neustarten:

chevron-rightHinweis für Entwicklerhashtag

Ja, es wäre besser, das Image auch neu zu bauen, aber solange sich daran nichts ändert, funktioniert es auch nur durch Neustarten des Bots. Weitere Dokumentation wird hinzugefügt, wenn das nötig wird.

Backups

  • Sichere das Datenbank-Volume:

    Denk daran, die Werte einzusetzen, die du in deiner .env Datei!

  • Speichere backup.sql sicher (z. B. außerhalb des VPS).

Bot stoppen

Neustarten


Fehlerbehebung

Häufige Probleme

  • Bot startet nicht: Prüfe .env auf Fehler. Stelle sicher, dass BOT_TOKEN gültig ist und die Berechtigungen korrekt sind.

  • Datenbankverbindung fehlgeschlagen: Überprüfe DATABASE_URL und dass PostgreSQL läuft (docker compose ps).

  • Berechtigungsfehler: Stelle sicher, dass der Bot Mitglieder bannen und Audit-Log ansehen in allen Servern hat.

  • Container stürzt ab: Verwende docker compose logs zur Diagnose. Häufige Ursachen: ungültige Umgebungsvariablen oder Port-Konflikte. Wenn ein Container in einer Neustart-Schleife steckt (Container starten neu, wenn sie fehlschlagen), stoppe die Container mit pnpm run docker:down und öffne ein GitHub-Issue, damit wir das gemeinsam lösen können.

Datenbank-Probleme

  • Wenn PostgreSQL nicht startet, lösche das Volume und starte neu:

triangle-exclamation

Leistung

  • Für stark frequentierte Server erhöhe die VPS-Ressourcen.

Sicherheitsüberlegungen

  • Umgebungsvariablen: Niemals .env zu Git committen (Das ist standardmäßig durch die .gitignore Datei gewährleistet).

  • Updates: Halte Docker und das System aktuell, um Sicherheitslücken zu schließen.

  • Zugriff: Beschränke SSH-Zugänge mit schlüsselbasierter Authentifikation. (Für fortgeschrittene Nutzer)

Weitere Ressourcen

Wenn du auf Probleme stößt, prüfe die Issues des Repositoriesarrow-up-right oder Logs für weitere Details. Viel Erfolg beim Hosten!

Zuletzt aktualisiert

War das hilfreich?