Поиск по сайту:

Как начать работу с Pterodactyl для управления игровым сервером


Pterodactyl — это платформа управления сервером, которая использует контейнеры Docker для управления экземплярами приложений. Он предназначен для запуска, настройки и управления безголовыми игровыми серверами, такими как серверы Minecraft, но может использоваться и для других приложений.

Установка птеродактиля и демона

Pterodactyl состоит из двух основных компонентов: панели управления, на которой размещается веб-интерфейс и которая взаимодействует с демонами, и сами демоны, работающие на хост-серверах, которые действуют как рабочие машины, работающие на вашем оборудовании. Панель управления может быть установлена на базовом VPS или непосредственно на одном из хост-серверов вместе с демоном.

Демон управляет контейнерами Docker, внутри которых работают игровые серверы. Docker — это инструмент контейнеризации, который в основном упаковывает все зависимости и код, необходимые вашему приложению для запуска, в один файл, называемый образом Docker, который можно скопировать для запуска новых серверов. Это позволяет вам определить, как запустить один сервер Minecraft, а затем развернуть 20 копий этого основного образа сервера Minecraft с различной конфигурацией, и все это без установки Java 20 раз.

Установка Pterodactyl немного сложнее, чем apt get install, поэтому мы не будем здесь подробно описывать все шаги. Вместо этого вы можете обратиться к их руководству по установке, которое должно оставаться в актуальном состоянии. По сути, вы устанавливаете стек LAMP на VPS и настраиваете базу данных MySQL для правильного взаимодействия с Pterodactyl.

Затем на каждом хост-узле вам нужно будет установить демон. Это включает в себя установку Docker и NodeJS, а также запуск certbot от LetsEncrypt для создания SSL-сертификата, чтобы соединение между панелью управления и демоном можно было безопасно установить через TLS.

После его установки вам нужно будет настроить и настроить каждый демон из консоли Pterodactyl. Во-первых, вам нужно создать несколько тегов местоположения на вкладке «Местоположения» на боковой панели, чтобы отсортировать каждый демон. По сути, это коды регионов, которые вы можете создать для организации, и они не служат для каких-либо других целей, но для настройки демона необходимо иметь хотя бы один код.

Затем создайте новый узел на вкладке «Узлы» на боковой панели.

Дайте ему имя и описание и введите доменное имя, которое можно использовать для доступа к демону. В настройках вы также можете изменить каталог файла демона (если вы используете OVH, это будет /home/daemon-data, а не /srv/), а также как изменение общего объема памяти и дискового пространства, доступного для новых серверов. Это касается всего узла, поэтому введите здесь характеристики вашей машины.

Затем нажмите «Создать», и вам будет предоставлен файл JSON. Скопируйте это и вставьте в:

/srv/daemon/config/core.json

Затем вы можете запустить демон с помощью sudo npm start. Однако вы, вероятно, захотите демонизировать это с помощью systemd, чтобы он запускался при запуске.

[Unit]
Description=Pterodactyl Wings Daemon
After=docker.service

[Service]
User=root
#Group=some_group
WorkingDirectory=/srv/daemon
LimitNOFILE=4096
PIDFile=/var/run/wings/daemon.pid
ExecStart=/usr/bin/node /srv/daemon/src/index.js
Restart=on-failure
StartLimitInterval=600

[Install]
WantedBy=multi-user.target

Сохраните это как wings.service в /etc/systemd/system/ и включите его:

systemctl enable --now wings

Теперь узел должен быть связан (если это не так, проверьте настройки брандмауэра), но вам нужно будет сделать последний шаг, чтобы его можно было использовать — назначить выделение IP-адресов для новых серверов на вкладке «Распределение». . Если вашему серверу требуется несколько портов, вам необходимо указать дополнительные распределения.

Настройка конфигурации вашего сервера

Конфигурация сервера начинается с Eggs, которые содержат большую часть переменных и определяют, какой образ Docker использовать. Яйца делятся на гнезда в зависимости от игры; например, гнездо Minecraft содержит яйца для ванили, а также модифицированные конфигурации сервера, такие как Forge, Paper и BungeeCord.

Птеродактиль предупреждает большими красными буквами, что редактирование яйца — это расширенная функция, но их легко изменить, и если вы хотите какой-либо ручной контроль над работой ваших серверов, вам придется с ними ознакомиться.

В разделе «Конфигурация» в настройках Egg вы найдете элементы управления для изменения образа Docker и изменения команд запуска.

Вы получите максимальный контроль, предоставив свои собственные образы Docker. Вы можете разветвить готовые образы Pterodactyl и изменить сценарий запуска в entrypoint.sh , включив в него все, что вам нужно. Это полезно, если вы хотите выполнить некоторые действия перед запуском бинарного файла игрового сервера. В моем случае я установил это, чтобы обновить сервер до правильной ветки Steam, а затем получить последнюю сборку моего кода с сервера TeamCity. Таким образом, сервер всегда обновляется, а развертывание кода выполняется автоматически при перезапуске сервера.

Если вы просто хотите запустить сервер, а не какие-либо пользовательские моды или код, вы можете просто отредактировать переменные на вкладке «Переменные», которые включают такие вещи, как имя сервера, порты RCON и любую другую конфигурацию, которая получает передается в качестве аргумента в командную строку.

Вы можете использовать эти переменные в сценарии запуска и точке входа в контейнер Docker (полезно для изменения сценария в зависимости от типа сервера), и их можно изменять для каждого сервера отдельно.

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

На странице «Серверы» на боковой панели создайте новый сервер. Дайте ему имя и описание и обязательно установите себя в качестве владельца сервера, иначе это вызовет ошибку.

Вам также нужно будет выбрать, на каком узле будет работать этот сервер и какое распределение портов он будет использовать. Если вам нужны дополнительные порты для RCON, вам необходимо установить вторичные распределения.

Ниже вы найдете элементы управления ресурсами, где вы можете установить ограничения на память, диск и ЦП. Большинство игровых серверов являются однопоточными, но некоторые задачи (например, генерация навигационной сетки при запуске для Rust) могут перегружать ЦП, что может повлиять на другие службы в системе. Если вам все равно и вы просто хотите, чтобы сервер работал как можно лучше, вы можете установить для всех этих значений значение 0, чтобы отключить их.

Затем выберите гнездо и яйцо, которые вы используете. Вы найдете элементы управления для переключения образа Docker, а также для переопределения всех переменных сервера в Egg. Возможно, вам придется указать здесь номера портов, чтобы они соответствовали распределениям.

После того, как все настроено, нажмите «Создать». Pterodactyl отправит запрос демону и создаст новый сервер. Первая установка займет несколько минут, но как только она будет готова, вы сможете просмотреть вывод сервера на вкладке «Консоль» в меню сервера.

В этом меню вы также найдете встроенную систему управления файлами, а также имя пользователя для подключения по FTP (которое привязано к контейнеру Docker). Вы также можете добавить других пользователей на этот сервер и настроить расписание для выполнения таких команд, как ежедневные перезагрузки.

В разделе «Конфигурация» вы найдете элементы управления для редактирования переменных сервера, а также для запуска перестроений контейнера Docker. Это не стирает данные, но необходимо, если вы редактируете entrypoint.cs.