# Schneller Einsatz eines Telegram-Bots auf einem VPS: Vom lokalen Start zum 24/7-Betrieb
Sie haben die Entwicklung Ihres Telegram-Bots abgeschlossen, aber ein lokaler Betrieb gewährleistet keine konstante Verfügbarkeit. Die meisten Entwickler kämpfen mit dem Bereitstellen in der Produktion und fühlen sich von der unendlichen Menge an Infos zu Docker und Kubernetes überfordert. Tatsächlich können Sie ihn in nur 8 Minuten mit minimalen Ressourcen bereitstellen. Diese Anleitung zeigt, wie Sie einen aiogram-Bot auf einem günstigen VPS ohne komplizierte Setups bereitstellen – mit einfachen Linux-Tools.
Vorbereitung der Infrastruktur
Die Wahl eines Cloud-Providers ist entscheidend für den zuverlässigen Bot-Betrieb. Timeweb Cloud bietet Zugriff auf Server in 12 geographischen Regionen, einschließlich Standorte außerhalb Russlands. Das ist essenziell, um APIs zu nutzen, die in der Russischen Föderation gesperrt sind (Groq, ChatGPT und andere AI-Dienste). Für Bots ohne externe Abhängigkeiten reichen russische Rechenzentren.
Wichtige Serverparameter:
- OS: Ubuntu 24.04 LTS
- Konfiguration: minimal (1 vCPU, 1 GB RAM, 25 GB SSD)
- Kosten: ab 290 ₽/Monat
- Backups: Aktivierung empfohlen
Beim Erstellen der Instanz den Backups-Bereich prüfen. Backups schützen vor:
- Serverabstürzen
- Korruption der SQLite-Datenbank
- Fehlern bei Code-Updates
- Unabsichtlichem Löschen von Dateien
Das Backup-System von Timeweb ermöglicht die Wiederherstellung des Projektstands aus den letzten 7 Tagen in 24-Stunden-Intervallen. Das ist entscheidend, um Datenverlust bei Tests neuer Features zu vermeiden.
Einrichtung der Serverumgebung
Nach der Aktivierung des Servers per SSH verbinden:
ssh root@your_IP_address
Systempakete aktualisieren und benötigte Komponenten installieren:
sudo apt update && sudo apt upgrade -y
sudo apt install python3 python3-pip git -y
npm install pm2 -g
Wichtig: Vor der Installation von Abhängigkeiten die Python-Version prüfen:
python3 --version
Für Projekte mit virtueller Umgebung:
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
Projektübertragung und Start
SFTP für den Dateitransfer nutzen. In FileZilla eingeben:
- Host: Server-IP-Adresse
- Login: root
- Passwort: aus dem Control Panel
- Port: 22
Nach dem Kopieren des Projekts auf den Server:
- In das Projektverzeichnis navigieren
- Virtuelle Umgebung aktivieren
- Abhängigkeiten installieren
- Bot über PM2 starten
cd /root/your_project
source venv/bin/activate
pm2 start main.py --name "telegram-bot"
PM2 sorgt für Auto-Restart nach Reboots und überwacht Abstürze. Prozessstatus prüfen:
pm2 status
Wartung und Updates
Bei Code-Änderungen diese Checkliste strikt befolgen:
- Dateien über SFTP bearbeiten (FileZilla → View/Edit)
- Änderungen speichern (Ctrl+S)
- Sync in FileZilla bestätigen
- Prozess in PM2 neu starten
pm2 restart telegram-bot
Zum Troubleshooting nutzen:
pm2 logs— Live-Logs anzeigenpm2 monit— Ressourcen überwachenpm2 resurrect— Nach Abstürzen wiederherstellen
Wichtige Punkte
- Tokens immer in .env speichern
- Automatische Backups alle 24 Stunden einrichten
- Updates in isoliertem Branch testen
- Speicherverbrauch mit htop überwachen
- Systempakete regelmäßig aktualisieren
Performance-Optimierung
Für Bots mit hoher Last (über 1000 aktive Nutzer) empfohlene Schritte:
- Swap-Datei einrichten
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
- PM2-Ressourcen begrenzen
In ecosystem.config.js:
module.exports = {
apps: [{
name: 'telegram-bot',
script: 'main.py',
instances: 1,
autorestart: true,
max_memory_restart: '300M'
}]
}
- Firewall einrichten
sudo ufw allow OpenSSH
sudo ufw allow 22/tcp
sudo ufw enable
Ein häufiger Anfängerfehler ist der Start des Bots ohne Daemonisierung. Beim Schließen der SSH-Session stirbt der Prozess. PM2 löst das, erfordert aber korrekte Autostart-Konfiguration:
pm2 startup
sudo env PATH=$PATH:/usr/bin pm2 startup systemd -u root --hp /root
Für Verfügbarkeitsüberwachung einen einfachen Health-Check-Endpoint in den Bot-Code einfügen:
from aiogram import Router
router = Router()
@router.message(Command('health'))
async def health_check(message: Message):
await message.answer('Bot is running')
Logs regelmäßig auf Telegram-API-Verbindungsfehler prüfen. Typische Probleme:
- Ungültiges Token in .env
- IP-Adresse gesperrt
- Rate Limits überschritten
- Webhook-Behandlungsfehler
Bei Webhooks Nginx als Reverse-Proxy mit SSL-Zertifikat einrichten. Für Bots mit niedriger Last reicht der Polling-Modus ohne zusätzliche Infrastruktur.
— Editorial Team
Noch keine Kommentare.