Skip to content
VDS · Aplikácie a boti

Discord bot: spustenie a monitoring

Spustenie Discord bota na VPS pod systemd, obmedzenie pamäte, čítanie logov, riešenie rate limitov a aktualizácia bez výpadku.

Aktualizované 23. augusta 2026

Discord bot drží trvalé WebSocket spojenie s Discord gateway, takže potrebuje stroj, ktorý je stále zapnutý. Jeho nároky na zdroje sú skromné, no na rozdiel od Telegram bota horšie znáša reštarty: každý z nich vynúti nové pripojenie ku gateway.

Inštalácia

useradd -r -m -d /srv/dbot -s /usr/sbin/nologin dbot
cd /srv/dbot && sudo -u dbot git clone https://github.com/you/bot.git .
sudo -u dbot npm ci --omit=dev
install -o dbot -g dbot -m 600 /dev/null /srv/dbot/.env

Token a ID vlož do .env. Token z Discord Developer Portal je plný prístup k botovi — správaj sa k nemu ako k heslu.

Pri Python knižniciach je postup rovnaký, s virtuálnym prostredím; pozri Python aplikácia.

Služba

/etc/systemd/system/dbot.service:

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

[Service]
User=dbot
WorkingDirectory=/srv/dbot
EnvironmentFile=/srv/dbot/.env
ExecStart=/usr/bin/node index.js
Restart=always
RestartSec=15
MemoryMax=512M
NoNewPrivileges=true

[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable --now dbot

RestartSec=15 namiesto štandardných piatich sekúnd: keď spojenie s gateway spadne, časté reštarty vedú k dočasnému blokovaniu pripojení zo strany Discordu.

MemoryMax zabráni tomu, aby bot s únikom pamäte stiahol so sebou celý stroj — dôležité najmä na VDS-1 s 2 GB.

Monitorovanie

systemctl status dbot
journalctl -u dbot -f
journalctl -u dbot --since today -p err
systemctl show dbot -p NRestarts

NRestarts je najužitočnejšia metrika: ak počítadlo rastie každú hodinu, bot padá a Restart=always to len maskuje.

Využitie pamäte konkrétnej služby:

systemctl status dbot | grep Memory

Pre celkový obraz o stroji pozri grafy CPU, pamäte a prevádzky v „Prehľade“ panela na /hosting/vds/m/<id>.

Rate limiting

Discord obmedzuje volania API. Príznakmi sú chyby 429 v logoch a príkazy, ktoré „zamrznú“. Pomáha:

  • neposielaj správy v slučke bez prestávok;
  • uprav jednu správu namiesto posielania nových;
  • cacheuj referenčné dáta namiesto ich vyžadovania pri každej udalosti;
  • použi frontu Redis na hromadné rozosielanie.

Aktualizácia

cd /srv/dbot
sudo -u dbot git pull
sudo -u dbot npm ci --omit=dev
systemctl restart dbot
journalctl -u dbot -n 50

Posledný riadok je povinný: uisti sa, že sa bot pripojil ku gateway a nespadol na novej závislosti.

Časté chyby

PríznakPríčina
Bot je online, ale neodpovedá na príkazyV Developer Portal nie sú zapnuté potrebné intents
Neustále reconnectyRestartSec je príliš krátky alebo pád v obsluhe udalosti
Invalid tokenToken bol vygenerovaný nanovo a .env nebol aktualizovaný
Príkazy sa duplikujúBežia dve kópie bota — skontroluj ps aux | grep node
Stroj začína swapovaťChýba MemoryMax, únik v kóde

Nespúšťaj bota pod screen alebo tmux. Session prežije odpojenie SSH, ale nie reštart stroja — a o mesiac zabudneš, kde vlastne beží.