Privatkunde Geschäftskunde
10 % bei allen Domainendungen  Code: domainsale · gültig bis 11.10.2026

Discord-Bot auf dem vServer hostenRund um die Uhr online - schon mit dem kleinsten Tarif

Ein Discord-Bot, der auf dem eigenen Rechner läuft, ist offline, sobald der Rechner aus ist. Auf einem vServer läuft er durchgehend, startet nach einem Neustart von selbst und braucht dafür erstaunlich wenig: Für einen einzelnen Bot genügt der Tarif XS für 2,95€ / Monat. Diese Anleitung zeigt die Tarifwahl und den Weg vom leeren Server zum laufenden Dienst - für Bots in Python und in Node.js.

Ab Tarif XSPython oder Node.jssystemd-AutostartKeine offenen Ports nötig

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:

TarifRAMCPUNVMePreisPasst zuBestellen
vServer XSUnsere Empfehlung1 GB1 vCore5 GB2,95€ / Monatein einzelner Bot, direkt als Dienst betriebenXS bestellen
vServer S2 GB1 vCore10 GB4,95€ / Monatmehrere Bots, ein Bot mit Datenbank oder Betrieb in DockerS bestellen
vServer M4 GB2 vCore20 GB6,45€ / MonatBot plus Web-Dashboard, Datenbank und weitere DiensteM bestellen
vServer L8 GB4 vCore40 GB9,45€ / Monatviele Dienste parallel auf einer MaschineL bestellen
vServer XL16 GB4 vCore80 GB15,95€ / Monatfür Bots allein nicht nötigXL 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 ansehen

Vorbereitung

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

Für einen einzelnen Bot, der direkt als systemd-Dienst läuft, genügt der Tarif XS. Für mehrere Bots, einen Bot mit eigener Datenbank oder den Betrieb in Docker ist der Tarif S die passende Größe.

Nein. Der Bot baut die Verbindung zu Discord selbst nach außen auf und nimmt keine eingehenden Verbindungen an. Ein offener Port ist erst nötig, wenn ein Web-Dashboard oder ein Webhook-Endpunkt dazukommt.

Ja, sobald er als systemd-Dienst eingerichtet und mit systemctl enable aktiviert ist. Mit Restart=always startet er auch nach einem Absturz automatisch neu.

Ja. Jeder Bot bekommt ein eigenes Verzeichnis, eine eigene .env und eine eigene systemd-Unit. Für mehrere Bots parallel ist der Tarif S sinnvoller als XS.

Weil der Bot dann nur online ist, solange der Rechner läuft und verbunden ist. Auf dem vServer läuft er durchgehend, unabhängig von deinem Rechner und deinem Internetanschluss.

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 ansehen