Hostowanie bota Discord 24/7 na serwerze Linux: Wdrożenie z menedżerem procesów PM2

· 5 min czytania

Pisząc bota Discord w bibliotece discord.js (Node.js) lub discord.py (Python), najczęstszym wyzwaniem jest utrzymanie jego stabilnej pracy w tle. Zwykłe uruchomienie procesu w terminalu kończy się wyłączeniem bota w momencie zerwania sesji SSH lub przy pierwszym nieobsłużonym błędzie w kodzie.

1. Czym jest PM2 i dlaczego przewyższa tradycyjne narzędzia jak Screen?

Menedżer procesów PM2 oferuje kompletny ekosystem produkcyjny dla aplikacji webowych i mikroserwisów:

2. Instalacja i konfiguracja środowiska

# Instalacja Node.js LTS oraz PM2 globalnie
sudo apt update && sudo apt install nodejs npm -y
sudo npm install -g pm2

3. Przygotowanie pliku konfiguracyjnego ecosystem.config.js

Zamiast uruchamiać procesy z poziomu komend w konsoli, najlepszą praktyką jest definicja pliku manifestu w katalogu głównym bota:

module.exports = {
  apps: [{
    name: 'mermiko-discord-bot',
    script: 'src/index.js',
    instances: 1,
    autorestart: true,
    watch: false,
    max_memory_restart: '500M',
    env: {
      NODE_ENV: 'production'
    },
    error_file: './logs/err.log',
    out_file: './logs/out.log',
    log_date_format: 'YYYY-MM-DD HH:mm:ss'
  }]
};

4. Uruchomienie i konfiguracja autostartu systemowego

Wdrożenie bota ogranicza się do dwóch prostych komend:

# Uruchomienie aplikacji z manifestu
pm2 start ecosystem.config.js

# Zapisanie bieżącej listy procesów
pm2 save

# Wygenerowanie i wdrożenie skryptu systemd
pm2 startup

Od tego momentu stan Twojego bota możesz weryfikować w dowolnej chwili za pomocą komendy pm2 status oraz pm2 logs mermiko-discord-bot.

Zobacz także