Discord-Bot selbst hosten (und wann Bot-Hosting einfacher ist)
Stand: 12. August 2026 · Anleitung · VPS · Discord-Bot
Ein Discord-Bot ist im Kern ein Programm, das rund um die Uhr läuft und sich mit einem Token bei der Discord-API anmeldet. Auf dem VPS heißt das: Laufzeitumgebung installieren, Code hochladen, Prozess dauerhaft am Leben halten.
Laufzeitumgebung
Je nach Programmiersprache des Bots wird Node.js oder Python gebraucht:
sudo apt install nodejs npm # oder, für Python-Bots: sudo apt install python3 python3-pip
Bot hochladen und starten
Code per SFTP oder Git auf den Server bringen, Abhängigkeiten installieren, den Token als Umgebungsvariable setzen statt ihn irgendwo im Code stehen zu lassen:
npm install DISCORD_TOKEN=<token> node index.js
So läuft der Bot nur, solange die SSH-Sitzung offen bleibt. Für den Dauerbetrieb gehört er in pm2 (bei Node.js) oder einen systemd-Dienst, inklusive automatischem Neustart nach einem Crash:
sudo npm install -g pm2 pm2 start index.js --name mein-bot pm2 startup pm2 save
Wo es unbequem wird
Node-Updates von Hand, ein Token in einer Datei, die man selbst absichern muss, ein Crash um drei Uhr nachts, den erstmal niemand merkt. Genau dafür gibt es das fertige Bot-Hosting: Bot hochladen, läuft, Neustart bei Absturz automatisch, kein eigener Server zu pflegen. Details: /discord-bots.
Den Token richtig ablegen
Der Bot-Token ist das Passwort deines Bots — wer ihn hat, steuert ihn vollständig. Zwei Fehler passieren dabei besonders oft: der Token steht direkt im Quelltext und landet mit dem ersten Push in einem öffentlichen Repository, oder er liegt in einer Datei, die alle Benutzer des Servers lesen können. Beides ist leicht vermeidbar:
printf 'DISCORD_TOKEN=<token>\n' > ~/mein-bot/.env chmod 600 ~/mein-bot/.env echo '.env' >> ~/mein-bot/.gitignore
Ist ein Token doch einmal öffentlich geworden, hilft kein Löschen des Commits — er muss im Entwicklerportal von Discord neu erzeugt werden. Der alte bleibt sonst gültig.
Ein systemd-Dienst für Python-Bots
pm2 ist für Node.js praktisch, für Python-Bots ist systemd der geradere Weg. Die Unit gehört nach /etc/systemd/system/mein-bot.service:
[Unit] Description=Discord Bot After=network-online.target [Service] User=<benutzername> WorkingDirectory=/home/<benutzername>/mein-bot EnvironmentFile=/home/<benutzername>/mein-bot/.env ExecStart=/usr/bin/python3 bot.py Restart=always RestartSec=15 [Install] WantedBy=multi-user.target
sudo systemctl daemon-reload sudo systemctl enable --now mein-bot sudo journalctl -u mein-bot -n 50 -f
Restart=always statt on-failure ist hier Absicht: ein Bot, der sich nach einem API-Fehler regulär beendet, soll trotzdem wiederkommen. RestartSec verhindert dabei, dass er bei einem dauerhaften Problem im Sekundentakt in einer Schleife neu startet.
Wie viel Arbeitsspeicher braucht ein Bot?
Weniger, als die meisten annehmen. Ein Bot, der auf Befehle reagiert und ab und zu eine Schnittstelle abfragt, kommt üblicherweise mit ein paar hundert Megabyte aus. Deutlich mehr braucht er erst, wenn er Musik überträgt, größere Datenmengen im Speicher hält oder auf sehr vielen Servern gleichzeitig läuft.
Was du tatsächlich verbrauchst, siehst du im Betrieb — raten musst du nicht:
systemctl status mein-bot | grep Memory ps -o pid,rss,cmd -C python3
Eigener VPS oder Bot-Hosting?
Ein eigener VPS lohnt sich, wenn der Bot Teil von etwas Größerem ist: eine Datenbank daneben, eine Webseite dazu, mehrere Dienste auf derselben Maschine. Dann trägt der Server mehrere Aufgaben, und die Einrichtungsarbeit verteilt sich.
Läuft dagegen nur der Bot, zahlst du bei einem VPS für ein ganzes Betriebssystem, das du selbst pflegen musst, um ein einziges Programm am Leben zu halten. Beim Bot-Hosting lädst du den Code hoch, die Laufzeitumgebung steht, der Neustart nach einem Absturz ist eingebaut, und Betriebssystem-Updates sind nicht dein Thema. Für einen einzelnen Bot ist das in aller Regel der günstigere und ruhigere Weg.
- Discord-Bot-Hosting ansehenNode.js-Laufzeit, Konsole und Backups im Panel
- Lieber ein eigener VPSWenn der Bot nur ein Dienst von mehreren ist
- Vorher: VPS absichernSSH-Key und Firewall einrichten