OffshoreVps
Anleitungen8 Okt. 20265 Min. LesezeitVon dem OffshoreVps-Team

So hosten Sie einen Telegram-Bot auf einem VPS

Bot-Token besorgen, einen Python-Bot schreiben, den Token sicher speichern und den Bot mit einem systemd-Dienst rund um die Uhr (24/7) am Laufen halten.

Ein Telegram-Bot muss dauerhaft laufen, um Nachrichten zu beantworten. Läuft er auf Ihrem Laptop, geht er offline, sobald Sie den Deckel schließen. Ein kleiner VPS löst das für wenige Dollar im Monat. Diese Anleitung betreibt einen Python-Bot als systemd-Dienst, der beim Booten startet und nach einem Absturz neu startet.

Terminalfenster auf einem VPS mit den Befehlen zum Hosten eines Telegram-Bots, beginnend mit „sudo apt update && sudo apt install -y python3 p“
Die Art von Befehlen, die Sie in dieser Anleitung auf Ihrem Server ausführen.

Welche VPS-Größe?

Die meisten Bots sind genügsam. Ein Tarif mit 1 bis 2 vCPUs und 2 GB RAM reicht völlig aus. Empfohlene Tarife finden Sie unter Telegram-Bot-Hosting.

Schritt 1: Ein Bot-Token besorgen

Sprechen Sie in Telegram mit @BotFather, senden Sie /newbot, wählen Sie einen Namen und einen Benutzernamen, der auf bot endet, und kopieren Sie das Token. Behandeln Sie es wie ein Passwort, denn jeder, der es besitzt, kann den Bot steuern.

Schritt 2: Den Server vorbereiten

sudo apt update && sudo apt install -y python3 python3-venv
sudo adduser --disabled-password --gecos "" botuser
sudo -iu botuser
mkdir ~/mybot && cd ~/mybot
python3 -m venv .venv
. .venv/bin/activate
pip install python-telegram-bot

Schritt 3: Einen kleinen Bot schreiben

# bot.py
import os
from telegram import Update
from telegram.ext import ApplicationBuilder, CommandHandler, ContextTypes

async def start(update: Update, ctx: ContextTypes.DEFAULT_TYPE):
    await update.message.reply_text("Hello! I am running on a VPS.")

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

Polling benötigt keine offenen Ports, Sie müssen also weder eine Domain noch einen Webhook einrichten.

Die Schritte dieser Anleitung in der Reihenfolge: 1. Welche VPS-Größe?; 2. Ein Bot-Token besorgen; 3. Einen kleinen Bot schreiben; 4. Das Token sicher speichern; 5. Aktualisieren und überwachen; 6. Polling oder Webhook?
Die Schritte dieser Anleitung in der Reihenfolge.

Schritt 4: Das Token sicher speichern

echo "BOT_TOKEN=123456:ABC..." > ~/mybot/.env
chmod 600 ~/mybot/.env

Schritt 5: Als Dienst ausführen

Zurück als Admin-Benutzer, erstellen Sie /etc/systemd/system/mybot.service:

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

[Service]
User=botuser
WorkingDirectory=/home/botuser/mybot
EnvironmentFile=/home/botuser/mybot/.env
ExecStart=/home/botuser/mybot/.venv/bin/python bot.py
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now mybot
sudo journalctl -u mybot -f

Aktualisieren und überwachen

  • Aktualisieren Sie den Code und führen Sie dann sudo systemctl restart mybot aus.
  • Prüfen Sie die Logs mit journalctl -u mybot -n 100.
  • Nutzen Sie Backups, wenn der Bot Daten speichert.

Polling oder Webhook?

Polling ist am einfachsten und für die meisten Bots ausreichend. Verwenden Sie einen Webhook, wenn Sie bei hohem Volumen sofortige Zustellung benötigen, wofür eine Domain und HTTPS nötig sind. Siehe Hosting mit Nginx und HTTPS.