Sommerhitze — alles schmilzt, sogar unsere Preise.−25%−25 % auf jeden Jahresplan, bis 31. Aug.Pläne ansehen
EQVPS
Loslegen

Wie man einen Telegram-Bot auf einem VPS hostet (und am Laufen hält)

15. Juni 2026 · 3 Min. Lesezeit · EQVPS Team

Ein Telegram-Bot, der nur läuft, während dein Laptop offen ist, läuft nicht wirklich — er zeigt eine Demo. Damit er tatsächlich online ist, um 3 Uhr antwortet, deine Neustarts und seine eigenen Abstürze übersteht, muss er auf einem Server leben. Hier ist der ganze Weg, von Anfang bis Ende, mit den Befehlen.

Zuerst die gute Nachricht: ein Bot ist eine winzige Workload. Er sitzt meist untätig und wartet auf Nachrichten, also betreibt ihn die günstigste Maschine gut — keine dedizierte IP, keine Domain, nichts Ausgefallenes.

1. Ein Token von BotFather holen

Schreib in Telegram @BotFather, sende /newbot, wähle einen Namen und Benutzernamen. Er gibt dir ein Token, das wie 12345:AAH... aussieht. Behandle es wie ein Passwort — wer es hat, kontrolliert deinen Bot.

2. Ein minimaler Bot

Logge dich per SSH auf den Server, richte Python und die Bibliothek ein:

sudo apt update && sudo apt install -y python3-venv
mkdir ~/mybot && cd ~/mybot
python3 -m venv venv && source venv/bin/activate
pip install python-telegram-bot

Ein Bot, der antwortet — ~/mybot/bot.py:

import os
from telegram.ext import ApplicationBuilder, CommandHandler

async def start(update, ctx):
    await update.message.reply_text("Alive and on a server. 🟢")

app = ApplicationBuilder().token(os.environ["BOT_TOKEN"]).build()
app.add_handler(CommandHandler("start", start))
app.run_polling()

Beachte, dass er das Token aus einer Umgebungsvariablen liest — nicht fest codiert. Das ist im nächsten Schritt wichtig.

3. Der Teil, der ihn wirklich am Laufen hält: systemd

Wenn du nur python bot.py ausführst, stirbt er in dem Moment, in dem du SSH schließt. Ein systemd-Dienst ist das, was ihn das Abmelden, Abstürze und Neustarts überleben lässt. Erstelle /etc/systemd/system/mybot.service:

[Unit]
Description=Telegram bot
After=network-online.target

[Service]
WorkingDirectory=/home/youruser/mybot
Environment=BOT_TOKEN=12345:AAH...your-token
ExecStart=/home/youruser/mybot/venv/bin/python bot.py
Restart=always
RestartSec=5
User=youruser

[Install]
WantedBy=multi-user.target

Dann:

sudo systemctl daemon-reload
sudo systemctl enable --now mybot
sudo systemctl status mybot      # sollte active (running) sagen
journalctl -u mybot -f           # Live-Logs

Restart=always ist die Zeile, die die eigentliche Arbeit macht — Absturz, und er ist in 5 Sekunden zurück. enable bedeutet, dass er nach einem Neustart hochkommt. Das ist der ganze Unterschied zwischen „ich habe einen Bot einmal ausgeführt“ und „mein Bot ist oben“.

4. Warum keine Domain oder offene Ports

Der Bot nutzt Long Polling — er greift zu Telegram nach Updates hinaus, also muss nichts hereinreichen. Keine öffentliche URL, keine eingehende Firewall-Regel, keine dedizierte IP. Genau deshalb ist ein NAT-VPS (geteilte IP, SSH auf einem Port) ein gutes und günstiges Zuhause für einen Bot. Webhooks gibt es für sehr hohes Volumen, aber du brauchst sie zum Start mit ziemlicher Sicherheit nicht.

Ehrliche Einschränkungen

Das war's. Riegle die Maschine zuerst mit der Sicherheits-Checkliste ab, wirf den Dienst hinein, und dein Bot bleibt online, egal ob du es bist. Auf einem krypto-bezahlten VPS kannst du ihn eine Minute, nachdem du dich entscheidest, laufen haben.

FAQ

Welchen VPS brauche ich für einen Telegram-Bot?

Den kleinsten. Ein Telegram-Bot ist meist untätig und wartet auf Updates, also sind 1 GB RAM und 2 Kerne für die meisten Bots reichlich — sogar recht aktive. Du brauchst nur mehr, wenn der Bot selbst schwere Arbeit leistet (Bildverarbeitung, ein lokales Modell, eine große Datenbank).

Wie halte ich einen Telegram-Bot am Laufen, nachdem ich SSH schließe?

Betreibe ihn als systemd-Dienst. Anders als beim Start in deinem Terminal hält systemd ihn nach dem Abmelden am Leben, startet ihn bei einem Absturz neu und startet ihn nach einem Neustart wieder. Das ist der Unterschied zwischen einem Spielzeug und etwas, das oben bleibt.

Warum stoppt mein Bot, wenn ich die Verbindung trenne?

Weil du ihn in deiner SSH-Sitzung gestartet hast, also stirbt er, wenn diese Sitzung endet. Verpack ihn in einen systemd-Dienst (oder tmux für einen schnellen Test), und er läuft unabhängig von deiner Anmeldung.

Brauche ich eine Domain oder einen Webhook für einen Telegram-Bot?

Nein. Long Polling (getUpdates) braucht keine öffentliche URL, keine Domain, keinen eingehenden Port — der Bot greift zu Telegram hinaus. Deshalb ist ein NAT-VPS ohne dedizierte IP für einen Bot völlig in Ordnung. Webhooks sind eine optionale Optimierung für hohes Volumen.

Ist es sicher, mein Bot-Token auf einen VPS zu legen?

Ja, wenn du es wie ein Passwort behandelst: halte es in einer Umgebungsvariablen oder einer Datei, die nur der Nutzer des Bots lesen kann, committe es nie in Git und riegle den Server mit SSH-Schlüsseln ab. Wenn ein Token leakt, widerrufe es in BotFather und stelle ein neues aus.

← Zurück zum BlogPläne & Preise ansehen →

Kommentare

Noch keine Kommentare. Sei der Erste.

Kommentar hinterlassen

Kommentare werden vor der Anzeige moderiert.