Гид

Выделенные серверы

Настройте первый матч

И Docker, и Windows используют autoexec.cfg рядом с eldorado.exe для команд запуска. Создайте его со следующими настройками для сетевого многопользовательского лобби с Guardian и Slayer, без модов и голосования. Если файл уже есть, обновите настройки, а не добавляйте конфликтующие команды.

Server.ShouldAnnounce 0
Server.Mode 3
Server.LobbyType 2
Server.Mod none
Voting.SystemType 0
Game.Map guardian
Game.GameType Slayer
Game.Start

Эти настройки не публикуют сервер в списке и сохраняют пароль, заданный в его настройках. Для закрытой игры оставьте пароль входа. Когда игроки смогут подключаться, измените Server.ShouldAnnounce на 1 и в настройках, и в этом файле, если хотите показывать сервер в общедоступном списке.

Запустите выделенный сервер на Linux через Docker

Docker-образ сообщества использует Wine и Xvfb; сеанс рабочего стола и хост с Windows не нужны. Установите Docker Engine с плагином Compose на хост Linux x86-64. Предоставьте собственный полный комплект файлов ElDewrito из установки: образ не содержит и не скачивает игру.

Используйте domistyle/eldewrito:v0.7.1-c1.3 с ElDewrito 0.7.1 на хосте x86-64. Этот образ с фиксированной версией сохраняет соответствие контейнера выпуску игры. Не отключайте проверку контрольных сумм при запуске; если она сообщает о несовпадении, восстановите оригинальные файлы игры 0.7.1 перед повторной попыткой.

Подготовьте папку игры

  1. Поместите полную установку 0.7.1 в /opt/eldewrito, чтобы eldorado.exe лежал непосредственно в этом каталоге, а не во вложенной папке установки. Используйте отдельную копию, а не ту, из которой играете сами. Перед запуском контейнера сохраните резервную копию конфигурации и пользовательского контента.
  2. Сохраните data/dewrito.json из релиза. Создайте data, data/server и logs, если их нет. При остановленном сервере задайте в data/dewrito_prefs.cfg следующие значения, сохранив остальные настройки. Замените оба примера паролей до публикации портов; пароль входа и пароль RCON должны различаться.
Server.Name "My ElDewrito Server"
Server.MaxPlayers 16
Server.Password "replace-with-private-join-password"
Server.RconPassword "replace-with-separate-admin-password"
Server.GamePort 11774
Server.Port 11775
Game.RconPort 11776
Server.SignalServerPort 11777
Server.ShouldAnnounce 0
Server.FileServerEnabled 0
UPnP.Enabled 0
  1. Создайте /opt/eldewrito/autoexec.cfg, используя общую конфигурацию запуска.

  2. Сохраните JSON с двумя картами из раздела «Добавьте небольшую ротацию с голосованием» как /opt/eldewrito/data/server/voting.json, но оставьте Voting.SystemType 0 для первого матча. Наличие файла настроек, JSON голосования и data/dewrito.json не даст скрипту запуска создать вместо отсутствующих файлов встроенные файлы с настройками по умолчанию, среди которых есть включение публичного объявления и старый список каталогов серверов.

Важная часть структуры папок:

/opt/eldewrito/
  eldorado.exe
  mtndew.dll
  autoexec.cfg
  maps/
  data/
    dewrito.json
    dewrito_prefs.cfg
    server/
      voting.json
    map_variants/
    game_variants/
  mods/
  logs/

Привязка каталога ниже делает всю эту папку игры доступной внутри контейнера как /game. Конфигурация голосования должна оставаться в data/server/voting.json, а настройки — в data/dewrito_prefs.cfg.

Запуск и управление контейнером

Сохраните следующий текст как compose.yaml в отдельном рабочем каталоге, затем выполните из него команды под примером. Это адаптация примера Compose от авторов образа: версия закреплена, опубликованы только порты подключения игроков, а все постоянные файлы остаются в предоставленном каталоге игры.

services:
  eldewrito:
    image: domistyle/eldewrito:v0.7.1-c1.3
    restart: unless-stopped
    ports:
      - "11774:11774/udp"
      - "11775:11775/tcp"
    volumes:
      - /opt/eldewrito:/game
    cap_add:
      - SYS_PTRACE
docker compose pull
docker compose up -d
docker compose ps
docker compose logs --tail=100 -f

Этому образу требуется SYS_PTRACE. По умолчанию контейнер запускает игру с UID/GID 1000 и при старте рекурсивно меняет владельца и права в подключённом каталоге игры. Используйте отдельную папку; не подключайте домашний каталог. Если серверным файлам нужен другой владелец, образ поддерживает PUID и PGID в диапазоне 1000–60000. Не задавайте SKIP_CHOWN, если заранее не обеспечили необходимые права.

Одна привязка каталога сохраняет конфигурацию, моды и журналы в папке игры с прямым доступом с хоста. Отдельные именованные тома поверх этих папок не нужны.

Проверьте информационную службу по адресу http://HOST:11775, затем попросите игрока подключиться и появиться на карте через Server.Connect HOST:11775. Выполните проверки подключения, включая смену карты. Один HTTP-ответ не доказывает, что игровой UDP-трафик работает. Ctrl+C закрывает просмотр журналов, не останавливая сервер.

Перед изменением конфигурации, плейлистов или файлов игры остановите службу:

docker compose stop

Измените файлы в /opt/eldewrito, затем снова запустите службу командой docker compose up -d. Обновляйте файлы игры и образ согласованной парой: загрузка образа не обновляет подключённую установку игры. После успешных закрытых проверок замените Server.ShouldAnnounce 0 на Server.ShouldAnnounce 1 и в настройках, и в autoexec.cfg, чтобы публично объявить сервер. Удаляйте пароль входа только если хотите открыть сервер всем.

Если нужен голос, добавьте "11777:11777/tcp" в ports и соответствующее правило брандмауэра/роутера. Для RCON не публикуйте TCP 11776 без необходимости; для SSH-туннеля или администрирования с самого хоста добавьте только "127.0.0.1:11776:11776/tcp", сохраните надёжный Server.RconPassword и пересоздайте службу командой docker compose up -d. Не копируйте публичное сопоставление RCON из исходного примера.

Запустите минимальный выделенный сервер на Windows

Windows — нативная альтернатива Docker/Wine. Используйте отдельную установку игры для сервера; входящий в комплект dedicated_server.bat запускает eldorado.exe в выделенном режиме и следит за его перезапуском.

Во время использования скрипта запускайте на этом ПК только один экземпляр игры. Его логика перезапуска может закрывать другие процессы eldorado.exe, включая игровой клиент или другой сервер. Останавливайте скрипт перед намеренным закрытием или обновлением сервера, чтобы он не запустил его снова.

  1. Сделайте резервную копию data\dewrito_prefs.cfg, data\server и существующего autoexec.cfg этой установки. Не заменяйте файл запуска или личные настройки своей игровой установки серверным шаблоном.

  2. Настройте имя сервера, лимит игроков и пароль входа через Host Settings, затем нажмите Close и выйдите из игры. Во время первоначальной настройки оставьте объявление в списке серверов отключённым. Настройки хранятся в data\dewrito_prefs.cfg; редактируя этот файл при закрытой игре, сохраняйте посторонние записи.

  3. Создайте autoexec.cfg рядом с eldorado.exe, используя общую конфигурацию запуска.

  4. Откройте командную строку с этой установкой в качестве рабочего каталога. Запустите оттуда dedicated_server.bat. Относительные пути к исполняемому файлу, конфигурации и журналам зависят от рабочего каталога.

  5. Скрипт запускает игру с такими аргументами:

eldorado.exe -launcher -dedicated -window -height 200 -width 200 -minimized
  1. Изучите вывод запуска и журналы сервера, затем подключитесь с другого ПК в локальной сети. Убедитесь, что загрузились Guardian и Slayer и вы можете появиться на карте. Если сервер остаётся в лобби или сообщает об ошибке команды/контента, разберите точную ошибку, а не открывайте новые порты.
  2. После локальной проверки проведите проверку подключения извне. Чтобы объявить сервер публично, включите Display Server in Browser и удалите или измените Server.ShouldAnnounce 0 в autoexec.cfg. Если оставить эту команду, при перезапуске объявление снова отключится.

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