Jak hostować bota discord.js na VPS – poradnik

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);
});

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *