Niniejszy poradnik przedstawia jak hostować bota Discord.js na serwerze VPS, uwzględniając aspekty techniczne, bezpieczeństwo i wydajność. Możesz również skorzystać z oferty hostingu botów Discord w celu dużo prostszego i wydajnego hostowania bota w node.js lub w pythonie.
Wymagana wiedza
- Podstawy JavaScript
- Znajomość Node.js
- Podstawowa wiedza o systemach Linux
Niezbędne narzędzia
- Node.js (LTS)
- npm
- Token bota Discord
Przygotowanie Serwera
Aktualizacja Systemu
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl git wget software-properties-common
Podstawowa Konfiguracja Bezpieczeństwa
# Konfiguracja zapory
sudo ufw allow OpenSSH
sudo ufw enable
Instalacja Środowiska
Instalacja Node.js
# Dodanie oficjalnego repozytorium NodeSource
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
# Instalacja Node.js
sudo apt install -y nodejs
# Weryfikacja wersji
node -v
npm -v
Konfiguracja Projektu
Struktura Katalogów
mkdir -p /opt/discord-bot
cd /opt/discord-bot
Inicjalizacja Projektu
# Inicjalizacja projektu
npm init -y
# Instalacja zależności
npm install discord.js dotenv
Instalacja PM2
# Globalnie instalujemy PM2
sudo npm install -g pm2
# Uruchomienie bota
pm2 start index.js --name discord-bot \
--log-date-format "YYYY-MM-DD HH:mm:ss" \
-o logs/bot-output.log \
-e logs/bot-error.log
# Automatyczny start po restarcie
pm2 startup systemd
pm2 save
Podstawowe Komendy
# Status bota
pm2 status
# Restart bota
pm2 restart discord-bot
# Zatrzymanie bota
pm2 stop discord-bot
Konfiguracja firewalla
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw enable
Monitoring bota
# Monitoring procesów
pm2 monit
# Logi bota
pm2 logs discord-bot
# Zużycie zasobów
top
htop
Rozwiązywanie Problemów
Obsługa Błędów
W pliku index.js
:
process.on('unhandledRejection', (reason, promise) => {
console.error('Błąd nieobsłużonej obietnicy:', reason);
});
process.on('uncaughtException', (error) => {
console.error('Nieoczekiwany błąd:', error);
process.exit(1);
});