# Rychlé nasazení Telegram bota na VPS: od lokálního spuštění po 24/7 provoz
Vývoj Telegram bota je dokončen, ale lokální spuštění neřeší úkol trvalé dostupnosti. Většina vývojářů se potýká s problémem přenosu projektu do production, kde se setkávají s přebytečnými informacemi o Dockeru a Kubernetes. Ve skutečnosti lze nasazení provést za 8 minut s minimálními zdroji. Tato instrukce ukáže, jak nasadit aiogram bota na levném VPS bez složitých konfigurací pomocí základních nástrojů Linuxu.
Příprava infrastruktury
Výběr cloudového poskytovatele je klíčový pro stabilní provoz bota. Timeweb Cloud poskytuje přístup k serverům v 12 geografických regionech, včetně lokalit mimo Rusko. To je nezbytné při používání API zablokovaných v RF (Groq, ChatGPT a další AI služby). Pro boty bez externích závislostí postačí ruské datacentra.
Klíčové parametry serveru:
- OS: Ubuntu 24.04 LTS
- Konfigurace: minimální (1 vCPU, 1 GB RAM, 25 GB SSD)
- Cena: od 290 ₽/měsíc
- Zálohování: doporučeno zapnout
Při vytváření instance věnujte pozornost sekci záloh. Zálohy chrání před:
- Nouzovým vypnutím serveru
- Poškozením SQLite databáze
- Chybami při aktualizaci kódu
- Náhodným smazáním souborů
Systém záloh Timeweb umožňuje obnovit stav projektu za posledních 7 dní s intervalem 24 hodin. To je klíčové pro prevenci ztráty dat při testování nových funkcí.
Nastavení serverového prostředí
Po aktivaci serveru se připojte přes SSH:
ssh root@your_IP-adres
Aktualizujte systémové balíčky a nainstalujte potřebné komponenty:
sudo apt update && sudo apt upgrade -y
sudo apt install python3 python3-pip git -y
npm install pm2 -g
Důležité je zkontrolovat verzi Pythonu před instalací závislostí:
python3 --version
Pro projekty s virtuálním prostředím proveďte:
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
Přenos projektu a spuštění
Použijte SFTP pro přenos souborů. V FileZilla zadejte:
- Hostitel: IP adresa serveru
- Přihlašovací jméno: root
- Heslo: z ovládacího panelu
- Port: 22
Po zkopírování projektu na server:
- Přejděte do adresáře projektu
- Aktivujte virtuální prostředí
- Nainstalujte závislosti
- Spusťte bota přes PM2
cd /root/your_project
source venv/bin/activate
pm2 start main.py --name "telegram-bot"
PM2 zajišťuje automatický restart po restartu a monitorování pádů. Zkontrolujte stav procesu:
pm2 status
Údržba a aktualizace
Při provádění změn v kódu dodržujte přísný kontrolní seznam:
- Editujte soubory přes SFTP (FileZilla → Zobrazit/Upravit)
- Uložte změny (Ctrl+S)
- Potvrďte synchronizaci v FileZilla
- Restartujte proces v PM2
pm2 restart telegram-bot
Pro diagnostiku problémů použijte:
pm2 logs— zobrazení streamovaných logůpm2 monit— monitorování zdrojůpm2 resurrect— obnova po havárii
Co je důležité
- Vždy používejte .env pro ukládání tokenů
- Nastavte automatické zálohy jednou za 24 hodin
- Testujte aktualizace v izolované větvi
- Monitorujte spotřebu paměti přes htop
- Pravidelně aktualizujte systémové balíčky
Optimalizace výkonu
Pro boty s vysokou zátěží (nad 1000 aktivních uživatelů) se doporučuje:
- Nastavení swap souboru
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
- Omezení zdrojů PM2
V ecosystem.config.js:
module.exports = {
apps: [{
name: 'telegram-bot',
script: 'main.py',
instances: 1,
autorestart: true,
max_memory_restart: '300M'
}]
}
- Nastavení firewallu
sudo ufw allow OpenSSH
sudo ufw allow 22/tcp
sudo ufw enable
Kritická chyba začátečníků — spuštění bota bez démonizace. Při zavření SSH relace se proces ukončí. PM2 tento problém řeší, ale vyžaduje správné nastavení autostartu:
pm2 startup
sudo env PATH=$PATH:/usr/bin pm2 startup systemd -u root --hp /root
Pro monitorování dostupnosti použijte jednoduchý health-check endpoint v kódu bota:
from aiogram import Router
router = Router()
@router.message(Command('health'))
async def health_check(message: Message):
await message.answer('Bot is running')
Pravidelně kontrolujte logy kvůli chybám připojení k Telegram API. Typické problémy:
- Nesprávný token v .env
- Blokace IP adresy
- Překročení limitů požadavků
- Chyby v zpracování webhooku
Při používání webhooků nezbytně nastavte Nginx jako reverzní proxy s SSL certifikátem. Pro boty s nízkou zátěží stačí polling režim, který nevyžaduje další infrastrukturu.
— Editorial Team
Zatím žádné komentáře.