Discord-бот потребляет очень мало: самого младшего тарифа с Linux хватит с запасом. Зато ему нужно работать постоянно, и для этого есть PM2.
1. Установите Node.js
Актуальная LTS-версия из официального репозитория NodeSource:
curl -fsSL https://deb.nodesource.com/setup_22.x | bash -
apt install -y nodejs
node -v
2. Загрузите бота
Склонируйте репозиторий командой git clone, если код лежит на GitHub, или загрузите папку по SFTP (как это сделать). Затем в каталоге бота выполните:
cd /root/mybot
npm install
Укажите токен бота в файле .env (или там, откуда его читает ваш код). Никогда не загружайте токен на GitHub и не вставляйте его в тикет.
3. Запустите бота через PM2
npm install -g pm2
pm2 start index.js --name mybot
Замените index.js на входной файл вашего бота (тот, что указан в поле "main" его package.json).
4. Автозапуск вместе с VPS
pm2 save
pm2 startup systemd
pm2 save сохраняет список процессов, а pm2 startup восстанавливает его при каждой загрузке.
Повседневное управление
pm2 status # бот онлайн?
pm2 logs mybot # смотреть, что выводит бот (выход — Ctrl + C)
pm2 restart mybot # перезапустить после изменения кода
pm2 monit # загрузка CPU и памяти в реальном времени
Бот написан на Python?
PM2 справится и с ним:
apt install -y python3-venv
cd /root/mybot
python3 -m venv venv
venv/bin/pip install -r requirements.txt
pm2 start bot.py --name mybot --interpreter venv/bin/python3
А затем выполните тот же pm2 save, что и в шаге 4.