Zpět na domů

Nasazení Telegram bota za 8 minut | Průvodce pro vývojáře

Praktický průvodce k nasazení Telegram bota na VPS za 8 minut. Podrobné nastavení serveru, přenos projektu přes SFTP, konfigurace PM2 pro autostart. Řešení typických problémů při nasazení.

Jak nasadit Telegram bota za 8 minut: praktický průvodce
Advertisement 728x90

# 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:

Google AdInline article slot
  • 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:

Google AdInline article slot
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:

Google AdInline article slot
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

Advertisement 728x90

Číst dál