В предыдущем разделе вы зарегистрировали узел и создали на нём 11 портов Minecraft, а именно: от 25565 до 25575. Чтобы игроки могли присоединиться к миру, сначала необходимо создать сервер Minecraft на этом узле и запустить его через панель управления.
Заполните серверную форму
В панели администратора откройте раздел «Серверы», затем нажмите «Создать новый». Все настройки представлены в одной длинной форме, сгруппированной в панели сверху вниз. В первой панели указывается название сервера и выбирается его владелец; владелец - это пользователь панели, который будет видеть сервер на панели управления. Для первого сервера подойдет учётная запись администратора из Части 2. Флажок «Запустить сервер после установки» включён по умолчанию, и в данном случае это правильный выбор.
На второй панели настраивается сервер. Выберите узел, а затем настройки по умолчанию - IP-адрес и порт, которые будут использоваться игроками. Этот сервер принимает 10.0.2.15:25565, первый порт Minecraft из предыдущего раздела, поэтому игрокам достаточно ввести адрес сервера и больше ничего.
Далее идут ограничения на функции. Ограничения на базы данных и выделение ресурсов определяют, сколько баз данных MariaDB и дополнительных портов владелец может создать самостоятельно; значение 0 означает, что создание запрещено. Ограничение на резервные копии здесь составляет 3 - это количество резервных копий, которые данный сервер может хранить одновременно.
Установить ограничения на ресурсы
Панель ресурсов определяет, какую долю ресурсов узла может использовать данный сервер, а Docker обеспечивает соблюдение этих ограничений на практике:
- Ограничение по ЦП: процент от одного потока, то есть 100 - это один полный поток, а 200 - два. В справочном тексте самой формы приведена формула: количество потоков, умноженное на 100. На этом сервере используется значение 200.
- Память: 2048 МИБ. Контейнер, превышающий этот предел, останавливается ядром, поэтому указанное значение включает в себя как кучу Java, так и память, необходимую процессу Java сверх этого объема. На данной платформе для сервера Paper в режиме простоя было зафиксировано значение около 1,06 ГИБ, а 2 ГИБ оставляют запас.
- Обмен: 0 - отключает использование свопа для контейнера. Значение -1 разрешает неограниченное использование свопа.
- Место на диске: 5000 МИБ для данных, плагинов, журналов и JAR-файла сервера.
- Вес блочного ввода-вывода: 500 - значение по умолчанию, относительный вес пропускной способности диска в случае конкуренции между несколькими серверами.
Итоговые значения узла, указанные в предыдущем разделе, являются верхним пределом. При уровне перераспределения, равном 0 процентам, панель отказывается создавать сервер, ограничения которого привели бы к превышению узлом 6144 MiB памяти или 30000 MiB дискового пространства.
Выберите гнездо и яйцо
«Гнездо» - это категория игр, а «яйцо» - шаблон для одной из игр в этой категории. Выберите «гнездо» Minecraft и «яйцо» Paper. Paper - это высокопроизводительный форк Java-сервера Minecraft, который сохраняет исходный игровой процесс и добавляет поддержку плагинов, а также множество исправлений, повышающих производительность, поэтому он часто становится первым выбором. В том же «гнезде» также содержатся «яйца» для исходной версии Minecraft, Forge, Bungeecord и Sponge.
При выборе яйца остальные поля формы заполняются автоматически. Команда запуска - это java В этой строке по умолчанию указан образ Docker «Java 25», а внизу отображаются несколько переменных: версия Minecraft, имя JAR-файла сервера, путь для загрузки и номер сборки Paper. Оставьте latest в полях «Версия» и «Сборка», после чего скрипт установки загрузит последнюю версию. Выберите «Создать сервер».
Сервер загружает Minecraft прямо сейчас?
Да, и установка первого сервера на узле занимает больше всего времени. Wings загружает образ установщика и образ Java (объёмом около 800 МБ), а затем запускает скрипт установки egg в кратковременном контейнере. Скрипт запрашивает у службы загрузки PaperMC новейшую версию, сохраняет файл объёмом примерно 53 МиБ server.jar в папку сервера и записывает файл по умолчанию server.properties. Как только образы окажутся на узле, установка, подобная этой, завершится примерно через минуту.
Если установка зависнет или после этого файл jar окажется отсутствующим, просмотрите журнал узла с помощью команды journalctl -u wings и в контейнере программы установки с помощью docker logs. Одной из распространенных причин является работа DNS внутри контейнеров, что подробно описано в части 2 в разделе «Устранение ошибки „Resolving timed out“».
Запустите сервер и примите условия лицензионного соглашения
По завершении установки сервер появится на панели управления пользователя. Откройте панель управления учетной записью - страницу по основному адресу панели - и в списке вы увидите каждый сервер с его адресом и текущими показателями использования. Цветная полоса на правом краю строки отображает состояние сервера: она окрашена в зеленый цвет, пока сервер работает.
Откройте сервер, чтобы перейти на страницу консоли. В правом верхнем углу находится панель кнопок управления, в центре - консоль, а рядом с ней - столбец с текущими статистическими данными. Совершенно новый сервер находится в автономном режиме, поэтому консоль пуста, а в поле «Время работы» отображается статус «Offline».
Нажмите «Start». В консоли сначала появятся сообщения от демона Pterodactyl, а затем - от Java-процесса: Wings проверяет использование дискового пространства, обновляет конфигурацию процесса, загружает образ Docker, если его нет, и выводит java -version перед самой командой. Затем Paper выводит свою собственную версию, которая на момент написания статьи составляла 26.3, сборка 169, на Java 25.
Принять лицензионное соглашение Minecraft
При первом запуске сервер останавливается самостоятельно, поскольку компания Mojang требует, чтобы каждый владелец сервера принял лицензионное соглашение Minecraft (EULA) до запуска сервера. Процесс Paper выводит соответствующее сообщение в консоль, после чего демон сообщает, что процесс остановлен. Панель распознает это сообщение и открывает диалоговое окно со ссылкой на текст лицензии.
В консоли, расположенной за диалоговым окном, отображается строка You need to agree to the EULA in order to run the server, после чего появляется сообщение об ошибке с кодом завершения 0 и строкой Aborting automatic restart, last crash occurred less than 60 seconds ago. Ни то, ни другое не представляет проблемы. Код завершения 0 означает, что Paper остановился намеренно, и демон не пытается его перезапустить.
Выберите «Я согласен», и в панели появится следующее сообщение: eula=true в eula.txt и самостоятельно перезапускает сервер. На этот раз Paper создаёт мир, что на маломощном компьютере занимает около полуминуты, и завершает процесс строкой, которую с нетерпением ждёт каждый администратор Minecraft:
Статистика, отображаемая рядом с консолью, показывает, что на самом деле использует сервер: 1,06 ГиБ памяти из 2 ГиБ (предельного значения) и 222 МиБ дискового пространства, при этом процессор находится в режиме простоя. Именно на эти показатели следует обращать внимание при определении того, сколько серверов может разместиться на одном узле.
Запуск команд из консоли
Строка ввода под консолью отправляет текст прямо в стандартный вход сервера Minecraft, точно так же, как если бы вы ввели его в терминале на этом компьютере. Команда list отображает, кто находится в сети, и say отправляет сообщение каждому игроку.
Ответ 0 of a max of 20 players online также показывает значения по умолчанию для свежего server.properties: 20 мест для игроков и стандартный игровой порт. Теперь игрок может добавить адрес сервера в список многопользовательских серверов клиента Minecraft Java Edition, и в списке серверов он отобразится с сообщением дня по умолчанию, A Minecraft Server.
Прежде чем приглашать игроков: убедитесь, что в их Java-клиенте Minecraft установлена та же версия игры, что и на сервере. Чтобы это проверить, посмотрите версию в первых строках консоли Paper - в данном случае это была версия 26.3, - поскольку клиенты с другой версией не допускаются, если только вы не установите плагин, преобразующий протоколы.
Редактирование файлов и настроек автозагрузки
Вкладка «Файлы» представляет собой веб-файловый менеджер, который обеспечивает чтение и запись в папку сервера, которую демон хранит в /var/lib/pterodactyl/volumes на узле. Здесь отображаются файлы, созданные программой Paper при первом запуске: world папка, plugins, server.properties, а также конфигурационные файлы для Paper и Bukkit. При нажатии на файл открывается редактор, поэтому изменение сообщения дня или ограничения на количество игроков занимает всего несколько секунд, а перезапуск прилагает изменения.
На вкладке «Запуск» отображаются параметры, которые владелец может изменить, не затрагивая «яйцо». Здесь показаны команда запуска, выбор образа Docker и переменные из формы создания.
Здесь следует обратить внимание на два параметра. Заменить latest в версии Minecraft с определённым номером, например 1.21.11, если игрокам приходится оставаться на одной версии, поскольку переустановка сервера с помощью latest загружает самую новую версию на данный день. В списке образов Docker также представлены более старые версии Java, и для версии Minecraft, требующей более старой версии Java, следует использовать соответствующий образ.
Последней вкладкой, которую стоит открыть сейчас, является «Сеть». В ней отображается адрес, используемый этим сервером, помеченный как «Основной», и именно здесь в части 4 данного руководства адрес компьютера заменяется на маршрутизируемый IPv4-адрес.
В заключение
- Создание сервера подразумевает выбор узла, конфигурации, ограничений по ресурсам и «яйца».
- Egg загружает игру в небольшой установочный контейнер, и первый сервер на узле работает медленнее всего из-за загрузки образов.
- Когда сервер останавливается на этой панели, в диалоговом окне отображается лицензионное соглашение Minecraft (EULA), и после его принятия сервер запускается заново.
- Вкладки «Консоль», «Файлы» и «Автозагрузка» позволяют выполнять повседневные административные задачи без использования командной строки на компьютере.
В следующем разделе вы запустите другую игру на том же узле, импортировав «яйцо» сообщества.