Blog

Jak nechat Discord bota běžet nonstop 24/7: možnosti a návod

28. října 2026·4 min čtení

Discord bot je online jen tehdy, když běží program, který ho ovládá. Dokud ho spouštíte na svém počítači, zmizí ve chvíli, kdy počítač vypnete nebo usne. Aby bot běžel nonstop 24/7, potřebuje stroj, který je stále zapnutý a připojený, a nastavení, které ho po chybě znovu spustí. Níže najdete srovnání možností a konkrétní postup pro VPS i hosting botů.

Proč bot přestane odpovídat

  • Vypnutý nebo uspaný počítač – nejčastější důvod.
  • Neošetřená chyba v kódu – jedna výjimka ukončí celý proces a bot zmizí.
  • Výpadek připojení – knihovny discord.js i discord.py se po krátkém výpadku samy znovu připojí, ale jen pokud proces dál běží.
  • Únik paměti – bot postupně zabírá víc a víc paměti, až ho systém ukončí.
  • Neplatný token – když token resetujete, nebo unikne a Discord ho zneplatní, bot se nepřihlásí.

Kde bota provozovat

MožnostVýhodyNevýhody
Vlastní počítačzdarma, snadné laděnímusí být stále zapnutý, spotřeba elektřiny, výpadky internetu
Malý počítač doma (např. Raspberry Pi)nízká spotřebaúdržba, výpadky domácí sítě, žádná ochrana proti útokům
Bezplatné službynic nestojíomezený výkon, uspávání, nejistá dostupnost
VPSplná kontrola, víc botů a služeb na jednom strojisprávu Linuxu a restartů řešíte sami
Hosting Discord botůpanel s konzolí, bez správy systému, restarty v plánovačiurčený pro boty, ne pro libovolný software

Varianta 1: VPS a systemd

Na VPS s Linuxem je nejspolehlivější svěřit bota systému systemd. Ten bota zapne po startu serveru a po pádu ho automaticky spustí znovu.

  1. Vytvořte pro bota vlastního uživatele: sudo adduser bot. Pod rootem bota nespouštějte.
  2. Nahrajte soubory, například do /home/bot/muj-bot, a nainstalujte závislosti (npm install nebo pip install -r requirements.txt).
  3. Zjistěte cestu k programu příkazem which node nebo which python3.
  4. Vytvořte soubor /etc/systemd/system/discord-bot.service:
[Unit]
Description=Discord bot
After=network-online.target
Wants=network-online.target

[Service]
User=bot
WorkingDirectory=/home/bot/muj-bot
ExecStart=/usr/bin/node index.js
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target

Pro Python bota změňte řádek na ExecStart=/usr/bin/python3 bot.py, případně použijte cestu k Pythonu ve virtuálním prostředí. Do sekce [Service] přidejte i Environment=PYTHONUNBUFFERED=1, jinak se výpis v logu může zobrazovat se zpožděním. Pak službu zapněte:

sudo systemctl daemon-reload
sudo systemctl enable --now discord-bot
sudo systemctl status discord-bot
journalctl -u discord-bot -f

Poslední příkaz zobrazuje výstup bota v reálném čase.

Alternativa: pm2

Pro boty v Node.js je oblíbený správce procesů pm2:

npm install -g pm2
pm2 start index.js --name muj-bot
pm2 save
pm2 startup

Příkaz pm2 startup vypíše řádek, který je potřeba spustit, aby se boti zapnuli i po restartu serveru. Logy zobrazíte přes pm2 logs muj-bot. pm2 spustí i bota v Pythonu: pm2 start bot.py --interpreter python3.

Novou verzi bota nasadíte tak, že nahrajete změněné soubory (nebo je stáhnete příkazem git pull), případně doinstalujete nové závislosti a bota restartujete – sudo systemctl restart discord-bot, nebo pm2 restart muj-bot. Před větší změnou si zazálohujte databázi nebo datové soubory bota, ať se v případě chyby snadno vrátíte.

Varianta 2: hosting Discord botů

Pokud se nechcete starat o Linux, je jednodušší hosting určený přímo pro boty. Nahrajete soubory, v panelu nastavíte hlavní soubor a bota zapnete. Na hostingu botů ColdHost se navíc závislosti z package.json nebo requirements.txt nainstalují při startu samy.

  • bot běží nonstop, i když máte vypnutý počítač,
  • jeho výstup sledujete v konzoli v reálném čase,
  • pravidelný restart nastavíte v plánovači úloh,
  • při pádu vás panel upozorní e-mailem s pravděpodobnou příčinou,
  • kód si bot může stahovat z GitHubu při každém startu – viz Automatické nasazení bota z GitHubu.

Ošetřete chyby v kódu

Ani nejlepší hosting nepomůže, když bot spadne při každé chybě. Zachytávejte výjimky, aby chyba v jednom příkazu neshodila celého bota.

discord.js (Node.js):

process.on('unhandledRejection', (err) => console.error('Neošetřená chyba:', err));
client.on('error', (err) => console.error('Chyba klienta:', err));

discord.py (Python): v příkazech používejte try/except a pro slash příkazy nastavte společnou obsluhu chyb:

@tree.error
async def on_app_command_error(interaction, error):
    print(f"Chyba v příkazu: {error}")

Další zásady pro stabilního bota:

  • Token držte v souboru .env, nikdy ne přímo v kódu – viz Tajné údaje v .env.
  • Nespouštějte stejného bota dvakrát, třeba na hostingu a zároveň doma. Odpovědi pak chodí dvakrát nebo nepředvídatelně.
  • Vypisujte do konzole důležité události – start, přihlášení, chyby. Při problému budete vědět, kde hledat.
  • Pokud bot v čase zabírá stále víc paměti, hledejte únik, typicky rostoucí seznam nebo mezipaměť bez limitu. Jako dočasná pojistka pomůže plánovaný restart jednou denně.

Bot je online, ale nereaguje

Zelená tečka u bota ještě neznamená, že vše funguje. Nejčastější příčinou je vypnutý Message Content Intent v Discord Developer Portalu, chybějící oprávnění v kanálu nebo nezaregistrované slash příkazy. Řešení najdete v návodu Bot je online, ale nereaguje. Až bude bot na 2 500 serverech, Discord po vás bude chtít rozdělení na shardy – u běžného komunitního bota to řešit nemusíte.

Shrnutí

  • Bot musí běžet na stroji, který je stále zapnutý – na VPS nebo na hostingu botů.
  • Na VPS ho spravujte přes systemd nebo pm2, aby se po pádu sám zapnul.
  • Zachytávejte chyby v kódu a token držte mimo kód.
  • Nastavte pravidelný restart a sledujte logy.

Na hostingu Discord botů ColdHost poběží bot v Node.js (JavaScript i TypeScript) nebo v Pythonu nonstop, s konzolí v panelu, plánovanými restarty a databází podle balíčku – od 12 Kč měsíčně. Pokud chcete na jednom stroji provozovat víc služeb, zvažte VPS.

Související návody: Vytvoření Discord bota a získání tokenu, Bot stále online – pády a automatický restart a Spuštění Discord bota (Node.js / Python).

Discord bot hosting od 12 Kč měsíčně

Bot v Node.js nebo Pythonu, který běží nonstop.

Zobrazit balíčky