Bot Discord i aplikacje w Pythonie: wgrywanie kodu i uruchamianie
Bot Discord w Node.js albo aplikacja w Pythonie krok po kroku: token, wgrywanie kodu, plik startowy i zależności w Uruchamianiu, GitHub, porty i logi.
Na tej stronie10 sekcji
Ten poradnik pokazuje, jak uruchomić bota Discord (Node.js) albo aplikację w Pythonie tak, żeby działała całą dobę bez Twojego komputera: od tokenu bota, przez wgranie kodu i ustawienia w panelu, po logi i automatyczne aktualizacje z GitHuba. Pakiety i ceny znajdziesz w cenniku botów i aplikacji.
Jaki pakiet i jaka wersja#
W formularzu zamówienia wybierasz jedną z dwóch wersji:
- Bot Discord (Node.js): boty w discord.js i inne programy w JavaScripcie albo TypeScripcie,
- Python / Bot / Backend: boty w discord.py, boty na Telegrama, skrypty działające w tle i proste API.
| Pakiet | RAM | Procesor | Dysk | Dla kogo |
|---|---|---|---|---|
| Standard 2 GB (Intel Xeon) | 2 GB | 1 wątek | 20 GB | bot Discord albo mała aplikacja |
| Standard 4 GB (Intel Xeon) | 4 GB | 1,5 wątku | 25 GB | kilka botów albo większy backend |
| Premium 2 GB (Ryzen 9 9950X) | 2 GB | 1,5 wątku | 20 GB | bot na szybkim rdzeniu |
| Premium 4 GB (Ryzen 9 9950X) | 4 GB | 2 wątki | 30 GB | większy backend na szybkim rdzeniu |
Przesuń tabelę w bok, żeby zobaczyć wszystkie kolumny.
Zwykły bot na kilku serwerach Discorda zużywa niewiele pamięci i 2 GB to spory zapas. Więcej potrzebują boty muzyczne, boty na setkach serwerów i aplikacje, które trzymają dużo danych w pamięci. Zamów Standard 2 GB.
Token bota Discord#
- Wejdź na discord.com/developers/applications (otwiera się w nowej karcie) i kliknij New Application.
- W zakładce Bot kliknij Reset Token i skopiuj token. Discord pokaże go tylko raz.
- Jeśli bot ma czytać treść wiadomości (np. komendy z prefiksem
!), włącz tam Message Content Intent. Podobnie Server Members Intent, jeśli kod potrzebuje listy członków. - W zakładce OAuth2, w części URL Generator, zaznacz zakresy
botiapplications.commands, wybierz uprawnienia bota i otwórz wygenerowany link, żeby zaprosić bota na swój serwer Discord.
Ważne
Token to hasło do bota. Nie wpisuj go na stałe w kod, który trafia do publicznego repozytorium (np. na GitHub), i nie wklejaj go na Discordzie. Jeśli wyciekł, od razu zresetuj go w portalu.
Przygotuj kod u siebie#
Token trzymaj w pliku .env w głównym folderze projektu, a jeśli używasz Gita, dopisz .env do .gitignore:
DISCORD_TOKEN=tutaj_wklej_tokenNode.js. Na komputerze, w folderze bota, wpisz npm install discord.js dotenv. Powstanie plik package.json z listą zależności. Najprostszy bot w pliku bot.js:
require('dotenv').config();
const { Client, Events, GatewayIntentBits } = require('discord.js');
const client = new Client({ intents: [GatewayIntentBits.Guilds] });
client.once(Events.ClientReady, (c) => console.log(`Bot działa jako ${c.user.tag}`));
client.login(process.env.DISCORD_TOKEN);Python. Zależności wypisz w pliku requirements.txt, każdą w osobnej linii:
discord.py
python-dotenvNajprostszy bot w pliku app.py:
import os
import discord
from dotenv import load_dotenv
load_dotenv()
client = discord.Client(intents=discord.Intents.default())
@client.event
async def on_ready():
print(f"Bot działa jako {client.user}")
client.run(os.getenv("DISCORD_TOKEN"))Wgraj pliki na serwer#
- Zaloguj się na panel.nexorahost.pl (otwiera się w nowej karcie), otwórz serwer z listy Moje serwery i przejdź do zakładki Pliki.
Kliknij Wyślij i wybierz pliki bota: kod,
package.jsonalborequirements.txtoraz.env. Folder z podfolderami utworzysz przyciskiem Utwórz katalog.
Zakładka Pliki z przyciskami Wyślij (1) i Utwórz katalog (2); na zrzucie pliki serwera Minecraft, przy bocie lista wygląda tak samo Większy projekt wgrasz wygodniej przez SFTP programem WinSCP albo FileZilla. Adres i nazwę użytkownika znajdziesz w zakładce Ustawienia, a hasło jest takie samo jak do panelu.

Dane SFTP w zakładce Ustawienia: SERVER ADDRESS (1), USERNAME (2) i przycisk Launch SFTP (3)
Nie wgrywaj folderu node_modules ani wirtualnego środowiska Pythona (venv). Serwer instaluje zależności sam przy każdym starcie. Plik .env możesz też utworzyć od razu w panelu przyciskiem New File i zapisać przyciskiem ZAPISZ.
Ustaw serwer w zakładce Uruchamianie#
W menu po lewej wybierz Uruchamianie.

Zakładka Uruchamianie bota Node.js: OBRAZ DOCKER z wersją Node.js i pola GIT REPO ADDRESS, INSTALL BRANCH, USER UPLOADED FILES, AUTO UPDATE, ADDITIONAL NODE PACKAGES, GIT USERNAME, GIT ACCESS TOKEN i UNINSTALL NODE PACKAGES - W OBRAZ DOCKER wybierz wersję Node.js albo Pythona. Najlepiej tę samą główną wersję, której używasz na komputerze (sprawdzisz ją poleceniem
node -valbopython --version). Wpisz plik startowy. Pola zapisują się same chwilę po zmianie.
Node.js Python Co ustawia MAIN FILE APP PY FILE plik, od którego startuje program (domyślnie bot.jsiapp.py); może być w podfolderze, np.src/index.jsADDITIONAL NODE PACKAGES ADDITIONAL PYTHON PACKAGES dodatkowe pakiety do zainstalowania, oddzielone spacjami UNINSTALL NODE PACKAGES brak pakiety do usunięcia przy starcie brak REQUIREMENTS FILE plik z zależnościami (domyślnie requirements.txt)ADDITIONAL ARGUMENTS brak dodatkowe parametry dla Node.js Przesuń tabelę w bok, żeby zobaczyć wszystkie kolumny.
Pola GIT REPO ADDRESS, INSTALL BRANCH (w Pythonie GIT BRANCH), GIT USERNAME, GIT ACCESS TOKEN, AUTO UPDATE i USER UPLOADED FILES służą do pobierania kodu z GitHuba. Opisujemy je niżej.
Wielkość liter w nazwach plików ma znaczenie. Jeśli w MAIN FILE wpiszesz bot.js, a plik nazywa się Bot.js, bot nie wystartuje.
Uruchom i sprawdź logi#
Przejdź do Konsoli i kliknij Uruchom.

Konsola: menu (1), przyciski Uruchom, Restart i Zatrzymaj (2), karty z adresem i zużyciem (3) oraz pole komendy (4); na zrzucie serwer Minecraft - Przy starcie serwer instaluje zależności: przy Node.js z
package.json(bezdevDependencies), przy Pythonie z pliku z REQUIREMENTS FILE. Pierwszy start trwa przez to dłużej. - Wszystko, co program wypisuje (
console.log,print), zobaczysz w Konsoli. Tam też pojawią się błędy.
Bot działa, dopóki go nie zatrzymasz. Jeśli chcesz go restartować o stałej porze, ustaw to w Harmonogramach.
Uwaga
Pakiety z devDependencies nie są instalowane. Wszystko, czego bot potrzebuje do działania (np. discord.js i dotenv), musi być w dependencies.
Kod z GitHuba#
Zamiast wgrywać pliki ręcznie, możesz pobrać kod z repozytorium Git. Serwer klonuje repozytorium przy instalacji, a przy każdym starcie może pobierać nowe zmiany.
- Pobierz kopię zapasową albo ważne pliki (np.
.env) na dysk. - W zakładce Pliki usuń wszystkie pliki serwera. Repozytorium da się sklonować tylko do pustego folderu.
- W Uruchamianiu wpisz adres repozytorium w GIT REPO ADDRESS (np.
https://github.com/nick/moj-bot) i, jeśli trzeba, gałąź w INSTALL BRANCH (w Pythonie GIT BRANCH). Pole USER UPLOADED FILES zostaw wyłączone. - Repozytorium prywatne wymaga GIT USERNAME i GIT ACCESS TOKEN. Token utworzysz w ustawieniach GitHuba (Personal access tokens). Adres musi zaczynać się od
https://. W zakładce Ustawienia kliknij Zainstaluj ponownie.

Zakładka Ustawienia, ramka ZAINSTALUJ PONOWNIE z przyciskiem Zainstaluj ponownie (1) - Po instalacji wgraj z powrotem
.envi uruchom serwer.
Włączone AUTO UPDATE pobiera nowe zmiany z repozytorium przy każdym starcie. Wystarczy wysłać zmiany na GitHuba i kliknąć Restart.
Aplikacja z portem (strona, API)#
Bot Discord nie potrzebuje portu. Jeśli jednak Twoja aplikacja ma nasłuchiwać na porcie (prosta strona, API, webhook), użyj portu serwera z karty Adres w Konsoli i adresu 0.0.0.0. Numer portu program odczyta ze zmiennej środowiskowej SERVER_PORT:
port = int(os.getenv("SERVER_PORT", "8000"))W Node.js to process.env.SERVER_PORT. Aplikacja będzie dostępna pod adresem z karty Adres. Jeśli potrzebujesz drugiego portu, zobacz artykuł Dodatkowe porty.
Najczęstsze problemy#
- Brak modułu (
Cannot find modulew Node.js,ModuleNotFoundErrorw Pythonie). Pakietu nie ma wpackage.json(wdependencies) albo wrequirements.txt. - Błąd nieprawidłowego tokenu. Token został zresetowany, skopiowano go ze spacją albo nie wczytał się z pliku
.env(sprawdź, czy plik nazywa się dokładnie.envi leży w głównym folderze serwera). - Błąd o niedozwolonych intencjach (disallowed intents). Włącz w portalu Discorda te intencje, których używa kod.
- Bot jest online, ale nie reaguje na komendy z
!. Brak Message Content Intent. - Nie widać komend z ukośnikiem. Bot ich nie zarejestrował albo został zaproszony bez zakresu
applications.commands. - Instalacja z GitHuba się nie udała. Folder serwera nie był pusty, adres repozytorium jest zły albo brakuje tokenu do prywatnego repozytorium. Błąd zobaczysz w Konsoli podczas instalacji.
- Bot nie startuje. Zła nazwa pliku startowego albo błąd w kodzie widoczny w Konsoli. Zobacz Serwer nie startuje.
Zobacz też#
- Połączenie przez SFTP do wgrywania większych projektów
- Bazy danych MySQL dla bota, który zapisuje dane
- Harmonogramy: restart o stałej porze
- Cennik botów i aplikacji