Prejsť na obsah
Aktuálny kupón:zľava 10 %Uplatniť v objednávke

Discord bot: nahranie kódu, package.json a spustenie

Pripravíte projekt bota v Node.js, správne vyplníte package.json, nahráte súbory do zákazníckeho účtu, nastavíte spustenie, zistíte verziu Node.js a bota spustíte.

  • začiatočník
  • ~15 min
  • Aktualizované 9. 10. 2026

Bot napísaný v Node.js u nás beží nepretržite a po páde sa sám spustí znova. Ukážeme, ako projekt pripraviť v počítači, čo nahrať a čo nie, ako nastaviť spustenie a ako zistiť verziu Node.js.

Čo budete potrebovať

  • Discord bota u StormHostu
  • Kód bota v JavaScripte (Node.js), ideálne odskúšaný v počítači
  • Token bota z Discord Developer Portalu (návod)
  • Približne 15 minút

Ako bot u nás beží#

  • Prostredie je Node.js. Bot je obyčajná aplikácia Node.js, najčastejšie s knižnicou discord.js.
  • Súbory bota spravujete v záložke Súbory (správca súborov v prehliadači).
  • Spustenie určuje záložka Nastavenia: Príkaz na spustenie (celý príkaz, iba na čítanie) a Premenné (napríklad názov hlavného súboru).
  • Výpis bota (všetko z console.log a chyby) vidíte v záložke Konzola, tam sú aj tlačidlá Spustiť, Reštartovať a Vypnúť.
  • Automatický reštart: keď bot spadne, spustí sa znova. Beží 24 hodín denne, aj keď máte vypnutý počítač.
  • Pamäť je obmedzená podľa balíka. Využitie vidíte pod konzolou.

Príprava projektu v počítači#

Odporúčaná štruktúra projektu:

text
muj-bot/
├── package.json
├── package-lock.json
├── index.js
├── deploy-commands.js
├── .env
├── .gitignore
├── commands/
│   └── utility/
│       └── ping.js
└── node_modules/

package.json#

package.json opisuje projekt: ako sa volá, ktorý súbor sa spúšťa a aké balíčky potrebuje. Vytvoríte ho v priečinku projektu príkazom npm init -y a balíčky pridáte príkazom npm install discord.js dotenv. Výsledok upravte približne takto:

package.jsonJSON
{
  "name": "muj-bot",
  "version": "1.0.0",
  "private": true,
  "main": "index.js",
  "type": "commonjs",
  "scripts": {
    "start": "node index.js"
  },
  "engines": {
    "node": ">=18"
  },
  "dependencies": {
    "discord.js": "^14.27.0",
    "dotenv": "^18.0.5"
  }
}
PoleČo robíČo nastaviť
nameNázov projektu. Malé písmená, bez medzier.Ľubovoľný, napríklad muj-bot.
versionVerzia vášho bota.1.0.0, pri zmenách môžete zvyšovať.
privatetrue zabráni omylom zverejniť projekt do registra npm.true
mainHlavný súbor, ktorým bot začína.Rovnaký súbor, aký spúšťate, zvyčajne index.js.
typecommonjs = kód používa require(), module = kód používa import.Podľa vášho kódu. Návody discord.js používajú commonjs.
scripts.startPríkaz pre npm start v počítači.node index.js
engines.nodeInformácia, akú verziu Node.js bot potrebuje. Verziu nemení, iba upozorní.>=18 pre discord.js 14.
dependenciesBalíčky, ktoré bot potrebuje, s verziami. ^14.27.0 znamená „14.27.0 alebo novšia 14.x“.Vyplní ich npm install <BALICEK>, ručne ich nepíšte.

Súbor package-lock.json vznikne sám a uzamkne presné verzie všetkých balíčkov. Nahrajte ho na server spolu s package.json, aby sa na serveri nainštalovali rovnaké verzie ako v počítači.

JSON neznesie chyby

V package.json musia byť kľúče aj texty v dvojitých úvodzovkách, za posledným riadkom bloku nesmie byť čiarka a komentáre nie sú povolené. Jedna chyba a inštalácia balíčkov skončí chybou EJSONPARSE.

Čo nahrať a čo nie#

Súbor alebo priečinokNahrať?Prečo
index.js, commands/, events/ a ďalší kódÁnoSamotný bot.
package.json, package-lock.jsonÁnoPodľa nich sa nainštalujú balíčky.
.env s tokenomÁno, iba na serverBot z neho číta token. Nikdy ho nedávajte na GitHub ani nikomu neposielajte (návod).
node_modules/NieTisíce súborov. Balíčky sa majú nainštalovať na serveri. Balíčky s natívnym kódom z Windows by na serveri navyše nefungovali.
.git/, logs/, testovacie dátaNieServer ich nepotrebuje.

Nahranie do zákazníckeho účtu#

  1. V zákazníckom účte otvorte Moje služby, kliknite na bota a prejdite na záložku Súbory.
  2. Zostaňte v koreňovom priečinku /. Sem patrí package.json a najlepšie aj hlavný súbor bota.
  3. Kliknite na Nahrať a vyberte súbory z koreňa projektu (index.js, package.json, package-lock.json, .env …). Súbory môžete do okna aj pretiahnuť.
  4. Pre každý podpriečinok (napríklad commands) kliknite na Nový priečinok, otvorte ho a nahrajte doň jeho súbory. Celé priečinky naraz nahrať nejde.

Veľký projekt s mnohými priečinkami pohodlnejšie nahráte cez SFTP, prístup vám zriadi podpora (kontakty). Limity správcu súborov nájdete v návode Správa súborov.

Nastavenie spustenia#

  1. Prejdite na záložku Nastavenia.
  2. Rozbaľte Príkaz na spustenie a pozrite sa, akým príkazom sa bot spúšťa. Príkaz je iba na čítanie. Ak je zakrytý šrafovaným pruhom, je zapnutý režim streamu. Kliknite hore na Zobraziť údaje.
  3. V časti Premenné nájdite premennú s hlavným súborom (podľa opisu, typicky s predvolenou hodnotou index.js) a vyplňte názov svojho hlavného súboru, napríklad index.js alebo bot.js.
  4. Kliknite na Uložiť.

Zmeny premenných sa prejavia po ďalšom spustení bota.

Inštalácia balíčkov#

Balíčky z package.json sa musia nainštalovať na serveri.

  1. V Príkaze na spustenie skontrolujte, či obsahuje npm install.
  2. Ak áno, balíčky sa nainštalujú samy pri každom spustení bota. V konzole potom uvidíte výpis inštalácie, napríklad added 25 packages. Prvý štart preto trvá dlhšie.
  3. Ak npm install v príkaze nie je, alebo sa balíčky napriek tomu nenainštalujú (bot hlási Cannot find module 'discord.js'), napíšte nám. Priečinok node_modules z počítača nenahrávajte.

Nový balíček pridáte tak, že ho nainštalujete v počítači (npm install <BALICEK>), na server nahráte nový package.json a package-lock.json a bota reštartujete.

Verzia Node.js#

Verziu Node.js, na ktorej bot beží, zistíte z výpisu. Na úplný začiatok hlavného súboru pridajte:

index.jsJavaScript
console.log('Node.js', process.version);

Po spustení uvidíte v Konzole napríklad Node.js v22.….

  • process.version – verzia Node.js, na ktorej kód práve beží, v tvare v<HLAVNI>.<VEDLEJSI>.<OPRAVA>.

Čo s ňou:

Knižnica alebo funkciaPotrebná verzia Node.js
discord.js 1418 alebo novšia
process.loadEnvFile() (načítanie .env bez balíčka)20.12 alebo novšia
require() balíčkov, ktoré existujú iba ako ES moduly20.19 alebo 22.12 a novšie

Na svojom počítači používajte rovnakú hlavnú verziu ako na serveri, aby sa kód správal rovnako. Odporúčané sú verzie LTS (k 1. 10. 2026 je aktívna LTS Node.js 24, udržiavaná LTS Node.js 22). Pole engines v package.json verziu na serveri nezmení. Ak bot potrebuje inú verziu Node.js, napíšte nám.

Prvý štart a kontrola#

  1. Prejdite na záložku Konzola a kliknite na Spustiť.

  2. Sledujte výpis:

    Výstuptext
    Node.js v22.…
    Ready! Logged in as MujBot#1234

    Riadok Ready! … vypisuje bot z návodu prvý bot v discord.js. Váš bot môže vypisovať iný text.

  3. Na Discorde má bot zelenú bodku (online).

Aktualizácia kódu#

  1. V počítači kód upravte a vyskúšajte.
  2. V záložke Súbory nahrajte zmenené súbory. Nahranie rovnomenného súboru sa opýta na prepísanie, potvrďte ho.
  3. V záložke Konzola kliknite na Reštartovať. Node.js načítava kód iba pri štarte.

Pred väčšou zmenou si stiahnite dôležité súbory do počítača (tlačidlo Stiahnuť), aby ste sa mali kam vrátiť.

Bot s databázou#

Dáta, ktoré majú prežiť reštart (body, varovania, nastavenia serverov), ukladajte do databázy, nie do premenných v pamäti.

  1. V záložke Databázy vytvorte databázu: Názov databázy napríklad bot, Povolený prístup z %, tlačidlo Vytvoriť databázu. Koľko databáz môžete mať, ukazuje riadok Využito X z Y.

  2. Údaje zapíšte do .env na serveri:

    .envini
    DB_HOST=<IP_DATABAZE>
    DB_PORT=3306
    DB_USER=<UZIVATEL>
    DB_PASSWORD=<HESLO>
    DB_NAME=<NAZEV_DATABAZE>

    <IP_DATABAZE> a port sú v poli Server (časť pred dvojbodkou a za ňou), ostatné údaje odpíšte z polí Používateľ, Heslo a Názov databázy.

  3. V počítači nainštalujte knižnicu mysql2 (npm install mysql2) a v kóde vytvorte pripojenie:

    db.jsJavaScript
    const mysql = require('mysql2/promise');
    
    const pool = mysql.createPool({
      host: process.env.DB_HOST,
      port: Number(process.env.DB_PORT),
      user: process.env.DB_USER,
      password: process.env.DB_PASSWORD,
      database: process.env.DB_NAME,
      connectionLimit: 5,
    });
    
    module.exports = pool;
    • mysql.createPool({ … }) – vytvorí sadu pripojení, ktoré sa opakovane používajú. Je odolnejšia než jedno pripojenie, ktoré môže po dlhšej nečinnosti spadnúť.
    • Number(process.env.DB_PORT) – hodnoty z .env sú text, port musí byť číslo.
    • connectionLimit: 5 – najviac 5 súčasných pripojení. Botovi to stačí.

    Použitie: const db = require('./db'); a potom const [radky] = await db.query('SELECT * FROM body WHERE uzivatel = ?', [id]);. Otáznik je zástupný znak: hodnotu do dopytu vloží knižnica bezpečne, chráni to proti SQL injection.

Databázu si pravidelne exportujte, napríklad v programe HeidiSQL (postup).

Bezpečné vypnutie bota#

Pri kliknutí na Vypnúť alebo Reštartovať dostane proces signál na ukončenie. Bot sa môže slušne odhlásiť a dokončiť zápisy:

index.jsJavaScript
async function ukoncit(signal) {
  console.log(`Prijatý ${signal}, ukončujem bota…`);
  await client.destroy();
  process.exit(0);
}
process.on('SIGINT', ukoncit);
process.on('SIGTERM', ukoncit);
  • process.on('SIGINT' | 'SIGTERM', …) – zachytí žiadosť o ukončenie (v počítači ju pošle Ctrl+C, na serveri vypnutie).
  • client.destroy() – odpojí bota od Discordu.
  • process.exit(0) – ukončí proces s kódom 0 (bez chyby).

Ak máte databázu, zatvorte pred process.exit aj ju (await pool.end()).

Pre pokročilých: TypeScript a iné zostavenie#

Server spúšťa JavaScript. Kód v TypeScripte (alebo s iným zostavením) skompilujte v počítači (napríklad npx tsc), na server nahrajte výsledné súbory .js (typicky priečinok dist) a v Premenných nastavte hlavný súbor na skompilovaný súbor. Zdrojové súbory .ts a vývojové balíčky (devDependencies) na serveri nepotrebujete.

Overenie#

  • V Konzole je výpis štartu bez chyby a bot nepadá dokola.
  • Bot je na Discorde online a reaguje na príkazy.
  • Po kliknutí na Reštartovať sa bot do pár sekúnd vráti online.

Keď niečo nefunguje#

Error: Cannot find module 'discord.js'#

Balíčky nie sú nainštalované. Skontrolujte, že package.json je v koreňovom priečinku a obsahuje discord.js v dependencies. Potom postupujte podľa časti „Inštalácia balíčkov“.

Error: Cannot find module '/…/index.js'#

Hlavný súbor nesedí s nastavením: súbor má iný názov, je v podpriečinku, alebo nesedia veľké a malé písmená (Index.js a index.js sú na serveri dva rôzne súbory). Opravte premennú s hlavným súborom, alebo súbor presuňte do koreňa.

npm error code EJSONPARSE#

package.json nie je platný JSON (chýbajúca čiarka alebo úvodzovka, čiarka navyše, komentár). Opravte ho v počítači, overte príkazom npm install a nahrajte znova.

Bot sa spustí a hneď spadne, stále dokola#

Automatický reštart chybu v kóde nevyrieši. Nájdite v Konzole prvú chybu po štarte (riadok s Error a zoznamom súborov pod ním), opravte ju a bota spustite znova. Vysvetlenie najčastejších hlásení je v návode logy a chyby.

An invalid token was provided. alebo Used disallowed intents#

Problém s tokenom alebo intentmi v Developer Portali. Postup je v návode token a intenty.

SyntaxError: Cannot use import statement outside a module#

Kód používa import, ale projekt je nastavený na require(). V package.json nastavte "type": "module", alebo kód prepíšte na require(). Podrobne v návode logy a chyby.

Zhrnutie

  • Do koreňového priečinka v záložke Súbory nahrajte kód, package.json, package-lock.json a .env. node_modules nenahrávajte.
  • main v package.json a premenná s hlavným súborom v záložke Nastavenia musia ukazovať na rovnaký súbor.
  • Balíčky sa inštalujú na serveri. Či automaticky, spoznáte podľa npm install v Príkaze na spustenie.
  • Verziu Node.js zistíte riadkom console.log(process.version). discord.js 14 potrebuje Node.js 18 a novšie.
  • Po každej zmene kódu bota reštartujte.

Hľadanie v návodoch