Как запустить бота на Node.js
Discord-бот на discord.js, Telegram-бот на grammY или Telegraf, небольшой API на Express — всё это запускается на Coding-сервере одинаково.
1. Выберите версию Node.js
Во вкладке «Запуск» → «Docker Image» доступны Node.js 12–21. Берите 20 — это LTS-версия, её поддерживают все популярные библиотеки. discord.js v14 требует Node.js 16.11 или новее.
2. Загрузите проект
Загрузите файлы через файловый менеджер или SFTP. Папку node_modules загружать не нужно: зависимости из package.json ставятся сами при каждом запуске сервера.
/home/container
├── index.js
├── package.json
└── .env3. Настройте запуск
| Переменная | Что указать |
|---|---|
| Main file | Главный файл, например index.js или src/bot.js |
| Additional Node packages | Пакеты, которых нет в package.json (через пробел) |
| Uninstall Node packages | Пакеты, которые нужно удалить при запуске |
| Additional Arguments | Флаги для запуска, например --max-old-space-size=512 |
4. Токен — в .env
// npm install dotenv
import "dotenv/config";
const token = process.env.DISCORD_TOKEN;Файл .env не добавляйте в GitHub — внесите его в .gitignore.
5. Запуск
Нажмите «Start». В консоли сначала пройдёт npm install, затем запустится бот. Если бот упал, в консоли будет причина — начните с последних красных строк.
Частые ошибки
| Ошибка | Что делать |
|---|---|
| Cannot find module '…' | Добавьте пакет в dependencies в package.json и перезапустите |
| Cannot use import statement outside a module | Добавьте "type": "module" в package.json или используйте require |
| Used disallowed intents | Включите нужные Intents у бота на discord.com/developers |
| JavaScript heap out of memory | Боту не хватает памяти тарифа — оптимизируйте код или возьмите тариф больше |