nebusdocs
СодержаниеБоты и приложения на Node.js и Python

Боты и приложения на Node.js и Python

Ваша панель подходит не только для игр: в неё входят два универсальных egg для бота Discord, API, небольшого сайта или любого скрипта.

Предустановленные eggs

Они находятся в nest Generic, уже установленном в вашей панели:

EggВерсии (Docker Image)Запускаемая программа
Node.js genericNode.js с 22 по 26Переменная MAIN_FILE (по умолчанию index.js; файл .ts запускается через tsx)
Python genericPython с 3.7 по 3.14Переменная PY_FILE (по умолчанию app.py)

Эти eggs взяты из репозитория сообщества pelican-eggs (лицензия MIT) и адаптированы Nebus для Pterodactyl.

Создание сервера

  1. Администрирование → Servers → Create New: имя, владелец и порт (Default Allocation), даже если бот его не использует.
  2. Ресурсы: простому боту хватает 256–512 MiB памяти и 50 % процессора; сайту или API — от 512 MiB до 1 ГБ.
  3. Nest Configuration: Generic, затем Node.js generic или Python generic. Выберите версию в Docker Image.
  4. Service Variables: запускаемый файл и при необходимости репозиторий Git (см. ниже). Если вы будете загружать файлы сами, установите User Uploaded Files в 1.
  5. Create Server. Установка занимает меньше минуты.
Форма создания: nest Generic, egg Node.js generic, образ Docker и переменные
Нижняя часть формы создания с egg Node.js generic.

Добавление кода

  • С вашего компьютера: вкладка Files (кнопка Upload) или по SFTP (см. Файлы и SFTP). Положите файл запуска в корень.
  • Из Git: заполните Git Repo Address (и при необходимости Install Branch); для приватного репозитория — Git Username и токен в Git Access Token. Репозиторий клонируется при установке; при Auto Update = 1 он обновляется (git pull) при каждом запуске.

Эти настройки можно изменить позже на вкладке Startup сервера. Чтобы клонировать другой репозиторий, измените адрес и выполните Settings → Reinstall Server (папка должна быть пустой).

Вкладка Startup сервера Node.js: образ Docker и переменные egg
Вкладка Startup: версия Node.js и настройки egg.

Зависимости

  • Node.js: если есть package.json, при каждом запуске выполняется npm install. Переменная Additional Node packages добавляет пакеты (через пробел), Uninstall Node packages удаляет.
  • Python: если есть файл requirements.txt (переменная REQUIREMENTS_FILE), он устанавливается через pip при каждом запуске. Переменная Additional Python packages добавляет пакеты.

Пакеты устанавливаются в папку сервера и учитываются в его дисковом пространстве.

Запуск и наблюдение

Консоль бота на Python: версия Python, установка зависимостей и сообщение Bot démarré
Запуск бота на Python: в консоли видно всё, что выводит ваша программа.

Нажмите Start в консоли. Сервер переходит в состояние Running (зелёный), как только программа выведет первую строку; если она ничего не выводит, он остаётся в Starting (жёлтый) — других последствий нет. Stop отправляет программе Ctrl+C.

Чтобы автоматически перезапускать сервер каждую ночь, используйте запланированную задачу.

Веб-приложение

Приложение должно слушать порт сервера из переменной окружения SERVER_PORT на всех адресах (0.0.0.0):

const http = require('node:http');
const port = process.env.SERVER_PORT;
http.createServer((req, res) => res.end('Привет!')).listen(port, '0.0.0.0');

После этого оно доступно по HTTP по адресу и порту, указанным в консоли (например, http://gra1.nebus.fr:30000; адрес вашей панели — в строке Адрес серверов личного кабинета), или по вашему выделенному IP. HTTPS на этих портах не предоставляется.

Токены и пароли

Не храните токен бота в публичном репозитории Git. Поместите его в файл (например, .env, который читает ваша программа), загруженный через вкладку Files, или в базу данных сервера (см. Базы данных).

Не нашли ответа? Создайте тикет в личном кабинете или напишите нам: contact@nebus.fr