Быстрый старт
Нужны JDK 25 и Docker. На Windows клонируйте с git clone -c core.longpaths=true: часть путей к скриптам длиннее,
чем Windows допускает по умолчанию.
База данных
Заголовок раздела «База данных»docker compose up -dКоманда запускает PostgreSQL 18 на 127.0.0.1:5432 с базой l2nx и при первом старте создаёт по одной роли и одной
схеме на сервер: l2nx_login владеет login, l2nx_game владеет game. Таблицы серверы создают сами при старте
(Liquibase). Это совпадает с настройками обоих серверов по умолчанию (spring.datasource.*): пароль l2nx. Порт
открыт только для вашей машины; прежде чем открывать базу куда-то ещё, смените пароли и задайте такие же серверам в
config/application.yaml (см. эксплуатацию). Как подготовить базу без Compose — в
разделе о базе данных страницы эксплуатации.
Роли и схемы создаются только при создании volume. До версии 1.0 у каждого сервера одна baseline-схема, и её правят на
месте, поэтому после pull изменений, затрагивающих базу, пересоздайте её командами docker compose down -v и
docker compose up -d; локальные данные при этом удаляются. Ошибка checksum Liquibase при старте означает
именно это.
Серверы
Заголовок раздела «Серверы»Обоим серверам нужен один и тот же secret GS-link длиной не менее 32 символов; задайте его в каждом терминале перед запуском:
export L2NX_GSLINK_SECRET=$(openssl rand -base64 32) # первый терминал; скопируйте значение во второй./gradlew :login:boot:run./gradlew :chronicles:high-five:boot:runСервер логина принимает клиентов на порту 2106. Игровой сервер регистрируется на нём через GS-link (порт 9014,
эксплуатация) и принимает клиентов на порту 7777. Аккаунт создаётся при первом входе (l2nx.login.auto-create-accounts в application.yaml сервера логина).
Принимаются клиенты High Five с ревизиями протокола 267, 268, 271 и 273; набор задаёт protocol adapter highfive,
отдельной настройки у него нет.
Дистрибутивы
Заголовок раздела «Дистрибутивы»./gradlew installDistсобирает два готовых к запуску каталога:
| Каталог | Содержимое |
|---|---|
login/boot/build/install/login-server |
bin/login-server, config/ |
chronicles/high-five/boot/build/install/game-server |
bin/game-server, config/, data/ |
Серверы работают headless. Рестарт из игры или по расписанию завершает процесс с кодом 2, падение —
другим ненулевым кодом, остановка — кодом 0: запускайте сервер под супервизором, который перезапускает его при ненулевом
коде (systemd Restart=on-failure, Docker restart: on-failure; примеры в эксплуатации). ./gradlew distZip упаковывает те же каталоги в архивы.
Сборка перезаписывает в этих каталогах всё, что приходит из исходников, включая config/. Сохраняются log/ и
data/geodata/.
Геодата
Заголовок раздела «Геодата»Геодата не поставляется. Положите файлы в data/geodata каталога игрового сервера; формат и путь задаются в
config/GeoEngine.ini.
