Профили серверов: несколько миров с раздельными настройками
Профиль — это отдельный сервер: свой мир, .ini, песочница, набор модов и лимит памяти JVM. Project Zomboid различает их по -servername, поэтому файлы профилей не пересекаются. Работает всегда один профиль: серверные файлы, игровые порты и файл запуска JVM общие, так что переключение разрешено только на остановленном сервере. - config: список профилей вместо одиночных server_name/admin_password/ java_memory; старые поля переносятся в первый профиль при загрузке; - supervisor: запускает активный профиль и выставляет его -Xmx на каждом старте, потому что файл запуска общий; - бэкапы: архив снимается с одного профиля (мир + его конфиги), имя профиля попадает в имя файла, ротация считается по профилям; - API профилей: список, создание с копированием настроек из другого профиля, правка, удаление и переключение активного; - панель: селектор профиля в шапке и вкладка со списком профилей. Удаление профиля убирает его только из панели: мир и конфиги остаются на диске, чтобы случайное нажатие не стоило сохранений. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -11,6 +11,8 @@
|
||||
|
||||
## Что умеет
|
||||
|
||||
- **Профили серверов** — несколько независимых сборок (свой мир, конфиг,
|
||||
песочница, моды и лимит памяти) с переключением одной кнопкой.
|
||||
- **Управление сервером** — запуск, остановка (через команду `quit`, мир
|
||||
сохраняется), перезапуск, автоподъём после падения, автозапуск вместе с
|
||||
менеджером.
|
||||
@@ -22,9 +24,9 @@
|
||||
браузере, с поиском по параметрам и сохранением комментариев в файле.
|
||||
- **Моды** — списки Workshop ID и Mod ID с порядком загрузки, названия модов
|
||||
подтягиваются из мастерской Steam.
|
||||
- **Бэкапы** — ручные и по расписанию, с ротацией, скачиванием и
|
||||
восстановлением (перед восстановлением автоматически снимается страховочная
|
||||
копия).
|
||||
- **Бэкапы** — ручные и по расписанию, отдельно по каждому профилю, с
|
||||
ротацией, скачиванием и восстановлением (перед восстановлением
|
||||
автоматически снимается страховочная копия).
|
||||
- **Установка и обновление** сервера через SteamCMD прямо из панели.
|
||||
|
||||
## Как это устроено
|
||||
@@ -91,6 +93,34 @@ sudo ufw allow 16261/udp
|
||||
sudo ufw allow 16262/udp
|
||||
```
|
||||
|
||||
## Профили серверов
|
||||
|
||||
Профиль — это отдельный сервер: свой мир, свой `*.ini`, свои настройки
|
||||
песочницы, свой список модов и свой лимит памяти. Project Zomboid различает их
|
||||
по параметру `-servername`, поэтому профили не мешают друг другу:
|
||||
|
||||
```
|
||||
~/Zomboid/Server/vanilla.ini ~/Zomboid/Saves/Multiplayer/vanilla/
|
||||
~/Zomboid/Server/vanilla_SandboxVars.lua
|
||||
~/Zomboid/Server/modded.ini ~/Zomboid/Saves/Multiplayer/modded/
|
||||
~/Zomboid/Server/modded_SandboxVars.lua
|
||||
```
|
||||
|
||||
Работает всегда один профиль — активный: серверные файлы, игровые порты и файл
|
||||
запуска JVM общие. Переключить профиль можно на остановленном сервере, выбрав
|
||||
его в шапке панели или на вкладке «Профили»; после этого все вкладки —
|
||||
конфиг, песочница, моды, бэкапы — относятся уже к нему.
|
||||
|
||||
При создании профиля можно скопировать `.ini` и настройки песочницы из
|
||||
существующего: удобно, когда нужен тот же набор правил, но чистый мир.
|
||||
|
||||
Удаление профиля убирает его только из панели — мир и конфиги остаются на
|
||||
диске. Чтобы вернуть профиль, создайте его с тем же идентификатором.
|
||||
|
||||
Обновление с версии, где сервер был один, проходит само: старые поля
|
||||
`server_name`, `admin_password` и `java_memory` превращаются в первый профиль
|
||||
при первом запуске.
|
||||
|
||||
## Доступ снаружи
|
||||
|
||||
Панель управляет сервером, поэтому наружу её лучше не выставлять голой. Два
|
||||
@@ -148,10 +178,16 @@ data_dir: /home/pzserver/.local/share/pzmanager
|
||||
server_dir: /home/pzserver/pzserver # куда SteamCMD ставит сервер
|
||||
zomboid_dir: /home/pzserver/Zomboid # миры, конфиги и логи игры
|
||||
steamcmd_path: "" # пусто — найти в PATH или скачать
|
||||
server_name: servertest # servertest -> servertest.ini
|
||||
admin_password: "" # пароль админа игрового сервера
|
||||
java_memory: 4g # -Xmx для JVM
|
||||
extra_args: [] # доп. аргументы start-server.sh
|
||||
profiles: # серверы: у каждого свой мир и настройки
|
||||
- id: vanilla # vanilla -> vanilla.ini, Saves/Multiplayer/vanilla
|
||||
title: Ванильный мир # как профиль подписан в панели
|
||||
admin_password: "" # пароль админа игрового сервера
|
||||
java_memory: 4g # -Xmx для JVM этого профиля
|
||||
extra_args: [] # доп. аргументы start-server.sh
|
||||
- id: modded
|
||||
title: Сборка с модами
|
||||
java_memory: 8g
|
||||
active_profile: vanilla # какой профиль запускается и настраивается
|
||||
autostart: false # поднимать сервер вместе с менеджером
|
||||
autorestart: true # поднимать сервер после падения
|
||||
stop_timeout: 1m30s # сколько ждать после quit до SIGTERM
|
||||
@@ -159,7 +195,7 @@ log_buffer_lines: 5000 # строк консоли в памяти
|
||||
backup:
|
||||
dir: /home/pzserver/pzbackups
|
||||
schedule: 6h # 0 — отключить автобэкапы
|
||||
keep: 20 # сколько архивов хранить
|
||||
keep: 20 # архивов на профиль
|
||||
stop_server: false # останавливать сервер на время бэкапа
|
||||
```
|
||||
|
||||
@@ -168,8 +204,10 @@ backup:
|
||||
|
||||
## Бэкапы
|
||||
|
||||
В архив попадают `~/Zomboid/Saves` и `~/Zomboid/Server` (миры и конфиги). Имя
|
||||
файла — `pz-ГГГГММДД-ЧЧММСС[-пометка].tar.gz`.
|
||||
В архив попадают мир активного профиля и его серверные конфиги. Имя файла —
|
||||
`pz-профиль-ГГГГММДД-ЧЧММСС[-пометка].tar.gz`, так что архивы разных сборок не
|
||||
путаются, а ротация (`backup.keep`) считается по каждому профилю отдельно.
|
||||
Архивы, снятые до появления профилей, панель тоже читает и восстанавливает.
|
||||
|
||||
Бэкап на живом сервере технически корректен, но снимок может отставать от
|
||||
состояния мира в памяти. Если хочется гарантированной согласованности —
|
||||
|
||||
Reference in New Issue
Block a user