Перейти до вмісту
EnshwickEnshwickальфа
Завантажити

Сервер у Docker або Kubernetes

Виділений сервер у контейнері отримує Enshwick із файлів поруч з enshrouded_server.exe. Сам ніхто їх не встановить. Образ або том несе їх у тих версіях, які ви обрали.

Покладіть файли в образ

Section titled “Покладіть файли в образ”

Покладіть powrprof.dll і теку mods в образ поруч із сервером. Підійде й том, змонтований туди.

  • enshwick.zip містить Enshwick і жодного мода. Кожен мод має власний архів у випусках свого проєкту.
  • До першого випуску, 1.0.0, ці файли існують лише як збірки для розробки, наприклад https://github.com/enshwick/enshwick/releases/download/dev/enshwick.zip. Кожна нова збірка замінює цей файл.
  • Завантажте файли один раз і зберігайте їх у власному сховищі, наприклад у бакеті або в контексті збирання образу. Тоді кожне перезбирання образу бере ті самі файли.
  • Закріпіть кожен архів за його SHA-256. GitHub показує його поруч із кожним файлом випуску. Тоді образ містить саме той файл, який ви перевірили.

Цей шаблон бере архів із контексту збирання. Кожне <...> задайте самі:

FROM alpine:<version> AS enshwick
RUN apk add --no-cache unzip
ARG ENSHWICK_SHA256=<the archive's SHA-256>
WORKDIR /enshwick
COPY enshwick.zip ./
RUN echo "$ENSHWICK_SHA256 enshwick.zip" | sha256sum -c - \
&& unzip -q enshwick.zip -d files
FROM <your Enshrouded server image>
COPY --from=enshwick /enshwick/files/ <folder that holds enshrouded_server.exe>/

Моди інших авторів проходять ті самі кроки з власними посиланнями на випуски.

Змінюйте версії викочуванням

Section titled “Змінюйте версії викочуванням”

Нова версія — це новий образ або новий том. Викочуйте його, як будь-яку іншу зміну. Ніколи не змінюйте файли в запущеному контейнері: наступний перезапуск візьме набір, якого ніхто не збирав, і репліки розійдуться.

Тримайте сервер робочим після оновлення гри

Section titled “Тримайте сервер робочим після оновлення гри”

Після оновлення гри Enshwick може не мати таблиці для нової збірки гри. Тоді він шукає потрібне за шаблонами коду, і вимикається лише те, чого шаблони не знайшли. З build_patterns = false в enshwick.toml у теці гри така збірка натомість працює без модів.

Перезберіть образ, коли новіший Enshwick матиме таблицю для цієї збірки.

Моди тримають налаштування і дані кожного світу поруч із його збереженням, у теках на кшталт world0-mod-settings і world0-mod-data біля world0.ksd. Покладіть теку сервера savegame на том, і світ збереже дані модів між розгортаннями.

Щоб перенести світ на інший сервер, скопіюйте збереження разом із двома його теками. Світ, який хтось запускав у грі, переноситься так само: скопіюйте його з теки збережень гравця в savegame сервера.

Де лежать файли перелічує ці теки.

Перевірте, що завантажив сервер

Section titled “Перевірте, що завантажив сервер”

На кожному завантаженні світу Enshwick пише mods.lock у world0-mod-data/enshwick/ цього світу. Там версія і SHA-256 Enshwick та збірка гри. Там також ідентифікатор, версія, тека і SHA-256 кожного запущеного мода.

Що змінилося відтоді, як світ завантажувався востаннє, пишеться в журнал.

Порівняйте цей файл із lock-файлом сервера, якому ви довіряєте, або з гешами файлів, які ви поклали. Тоді ви знаєте, що под запускає саме той образ, який ви задумали.

Завантаження з Nexus потребують входу, а його API — облікового запису Premium. Тож жодне автоматичне збирання чи сервер не завантажить їх сам. Завантажте такий мод один раз власноруч, зберігайте файл у своєму сховищі й кладіть в образ звідти, за версією.

Запустіть сервер на хості Linux

Section titled “Запустіть сервер на хості Linux”

Образ на Linux запускає сервер для Windows під Proton. Беріть GE-Proton або Proton від Valve, закріплений за версією і запущений поза Steam. Звичайний Wine теж підійде, але Proton першим отримує виправлення, потрібні іграм.

Сервер на Linux показує налаштування, як-от WINEDLLOVERRIDES. З обмеженням процесора для контейнера Optimizer запускає не більше робочих потоків, ніж дозволяє обмеження.