Veröffentlicht am
Welcher Tarif für einen Discord-Bot?
Ein typischer Bot für Moderation, Rollenvergabe oder Befehle hält eine einzige Verbindung zu Discord offen und wartet die meiste Zeit auf Ereignisse. Er braucht wenig Arbeitsspeicher und fast keine Rechenleistung. Entscheidend für den Tarif ist deshalb nicht der Bot selbst, sondern was neben ihm läuft:
| Tarif | RAM | CPU | NVMe | Preis | Passt zu | Bestellen |
|---|---|---|---|---|---|---|
| vServer XSUnsere Empfehlung | 1 GB | 1 vCore | 5 GB | 2,95€ / Monat | ein einzelner Bot, direkt als Dienst betrieben | XS bestellen |
| vServer S | 2 GB | 1 vCore | 10 GB | 4,95€ / Monat | mehrere Bots, ein Bot mit Datenbank oder Betrieb in Docker | S bestellen |
| vServer M | 4 GB | 2 vCore | 20 GB | 6,45€ / Monat | Bot plus Web-Dashboard, Datenbank und weitere Dienste | M bestellen |
| vServer L | 8 GB | 4 vCore | 40 GB | 9,45€ / Monat | viele Dienste parallel auf einer Maschine | L bestellen |
| vServer XL | 16 GB | 4 vCore | 80 GB | 15,95€ / Monat | für Bots allein nicht nötig | XL bestellen |
Für den Einstieg ist XS die richtige Wahl. Zu S für 4,95€ / Monat greifst du, wenn mehrere Bots parallel laufen, eine Datenbank wie PostgreSQL oder MariaDB dazukommt oder du den Bot lieber in einem Container betreibst - Docker selbst belegt einen Teil des Speichers, der auf XS knapp ist.
Festgelegt bist du damit nicht: Ein Upgrade stößt du über ein Ticket an, das System wird ohne Datenverlust auf den größeren Tarif umgezogen.
vServer mieten ab 2,95€ / Monat
Prepaid ohne Vertragsbindung, voller Root-Zugriff.
Tarife & Preise ansehenVorbereitung
Der vServer sollte eingerichtet und abgesichert sein, siehe Erste Schritte und SSH absichern. Die Befehle hier gelten für Debian und Ubuntu.
Der Bot soll nicht als root laufen. Ein Bot verarbeitet Eingaben fremder Nutzer, und ein Fehler im Code soll nicht das ganze System öffnen. Lege deshalb einen eigenen Benutzer ohne Login an:
sudo adduser --disabled-login --gecos "Discord-Bot" bot
Den Code bringst du per git clone oder per SFTP auf den Server, in ein Verzeichnis unterhalb von /home/bot. In den Beispielen heißt es /home/bot/meinbot.
Variante A: Bot in Python
Für Bots auf Basis von discord.py oder einer verwandten Bibliothek installierst du Python samt dem Modul für virtuelle Umgebungen:
sudo apt update
sudo apt install python3 python3-venv git -y
Die Abhängigkeiten gehören in eine virtuelle Umgebung im Projektordner, nicht ins System. So bleibt der Bot von Systemupdates unberührt:
sudo -u bot -s
cd /home/bot/meinbot
python3 -m venv .venv
.venv/bin/pip install -r requirements.txt
exit
Hat dein Projekt keine requirements.txt, installierst du die Bibliothek direkt, etwa mit .venv/bin/pip install discord.py.
Variante B: Bot in Node.js
Für Bots auf Basis von discord.js installierst du Node.js und npm:
sudo apt update
sudo apt install nodejs npm git -y
node --version
Vergleiche die angezeigte Version mit dem, was deine discord.js-Fassung verlangt - die Mindestversion steht in der Dokumentation der Bibliothek und im Feld engines ihrer package.json. Ist die Version aus den Paketquellen deiner Distribution zu alt, installierst du eine aktuelle LTS-Fassung über die offiziellen Pakete von NodeSource.
sudo -u bot -s
cd /home/bot/meinbot
npm ci
exit
npm ci installiert exakt die Versionen aus der package-lock.json. Fehlt die Datei, nimm npm install.
Den Token sicher ablegen
Der Bot-Token ist das Passwort deines Bots. Wer ihn hat, steuert den Bot mit allen Rechten, die er auf deinen Servern besitzt. Er gehört deshalb weder in den Quelltext noch in ein Git-Repository, sondern in eine Datei, die nur der Bot-Benutzer lesen darf:
sudo -u bot nano /home/bot/meinbot/.env
DISCORD_TOKEN=hier-steht-dein-token
sudo chmod 600 /home/bot/meinbot/.env
Die Datei enthält eine Zeile je Variable, ohne Anführungszeichen und ohne export. Dein Code liest den Wert aus der Umgebung - in Python über os.environ["DISCORD_TOKEN"], in Node.js über process.env.DISCORD_TOKEN. Ist ein Token doch einmal öffentlich geworden, erzeugst du im Discord Developer Portal sofort einen neuen; der alte ist damit ungültig.
Autostart per systemd einrichten
Ein Bot, den du in einer SSH-Sitzung startest, endet mit der Sitzung. Als systemd-Dienst läuft er unabhängig davon, startet nach einem Neustart des Servers und nach einem Absturz von selbst wieder:
sudo nano /etc/systemd/system/discordbot.service
[Unit]
Description=Discord-Bot
After=network-online.target
Wants=network-online.target
[Service]
User=bot
Group=bot
WorkingDirectory=/home/bot/meinbot
EnvironmentFile=/home/bot/meinbot/.env
ExecStart=/home/bot/meinbot/.venv/bin/python bot.py
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
Die Zeile ExecStart gilt für Python. Für Node.js lautet sie ExecStart=/usr/bin/node index.js - passe den Dateinamen an den Einstiegspunkt deines Bots an. Danach aktivierst und startest du den Dienst:
sudo systemctl daemon-reload
sudo systemctl enable --now discordbot
sudo systemctl status discordbot --no-pager
Die Statusanzeige sollte active (running) melden, und der Bot erscheint in Discord als online. Die laufende Ausgabe samt Fehlermeldungen liest du mit sudo journalctl -u discordbot -f.
Firewall: nichts freigeben
Ein Discord-Bot baut seine Verbindung selbst nach außen auf. Er nimmt keine eingehenden Verbindungen an und braucht deshalb keinen offenen Port - anders als ein Webserver oder ein Voiceserver. Die Firewall bleibt so restriktiv, wie du sie eingerichtet hast.
Das ändert sich erst, wenn zum Bot ein Web-Dashboard oder ein Endpunkt für Webhooks gehört. Dann kommt ein Webserver als Reverse Proxy davor, und nur dessen Ports 80 und 443 werden geöffnet. Wie das geht, steht in Webserver einrichten.
Updates und Backups
Ein Update besteht aus drei Schritten: neuen Code holen, Abhängigkeiten nachziehen, Dienst neu starten.
sudo -u bot git -C /home/bot/meinbot pull
sudo systemctl restart discordbot
Haben sich die Abhängigkeiten geändert, führst du vor dem Neustart noch einmal pip install -r requirements.txt beziehungsweise npm ci als Bot-Benutzer aus.
Zu sichern ist wenig, aber das Wenige ist wichtig: die .env, die Konfiguration und alles, was der Bot selbst speichert - häufig eine SQLite-Datei oder ein JSON-Verzeichnis im Projektordner. Automatische Backups sind nicht Teil des Tarifs. Wie du eine nächtliche Sicherung auf ein externes Ziel einrichtest, zeigt Backups einrichten.
Lieber im Container?
Auf unseren vServern ist Nesting aktiviert, Docker und Docker Compose laufen also. Für einen Bot lohnt sich das, wenn er bereits ein Dockerfile mitbringt oder wenn du mehrere Bots sauber voneinander trennen willst. Rechne dann mit dem Tarif S statt XS. Die Einrichtung beschreibt Docker installieren.
Für einen einzelnen Bot ist der Weg über systemd schlanker: weniger Speicher, weniger bewegliche Teile und dieselbe Zuverlässigkeit beim Neustart.
Häufige Fragen
vServer für deinen Discord-Bot
Ein einzelner Bot läuft bereits auf dem Tarif XS. Für mehrere Bots, eine Datenbank oder Docker ist S die passende Größe. Voller Root-Zugriff, prepaid ohne Vertragsbindung, Standort Frankfurt am Main.
vServer-Tarife & Preise ansehenvServer mieten
ab 2,95€ / Monat
Prepaid ohne Vertragsbindung, voller Root-Zugriff, DDoS-Schutz bis 250 GBit/s.
Tarife & Preise ansehenWeiterlesen
- vServer - Tarife & Preise
- Erste Schritte auf dem vServer
- SSH-Zugang absichern
- Docker installieren
- Backups einrichten
- vServer ohne Vertrag mieten
- Alle vServer-Anleitungen
Mehr entdecken