Установщик по умолчанию раскладывает всё в /opt/pzmanager вместо домашнего каталога пользователя: серверные файлы, миры, бэкапы и конфиг лежат рядом одной понятной структурой, а системному пользователю больше не нужен домашний каталог и shell. Адрес панели задаётся при установке (PZ_LISTEN), каталог и пользователь — через PZ_HOME и PZ_USER. Конфиг создаётся только при первой установке, поэтому повторный запуск установщика обновляет бинарник, не трогая настройки, миры и учётки. Адрес теперь занимается до автозапуска игрового сервера: если IP ещё не поднят или порт занят, менеджер падает сразу с внятной ошибкой, а не оставляет работающий сервер PZ без панели управления. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
33 lines
955 B
Desktop File
33 lines
955 B
Desktop File
[Unit]
|
|
Description=PZ Manager — веб-панель сервера Project Zomboid
|
|
After=network-online.target
|
|
Wants=network-online.target
|
|
|
|
[Service]
|
|
Type=simple
|
|
User=pzserver
|
|
Group=pzserver
|
|
WorkingDirectory=/opt/pzmanager
|
|
ExecStart=/usr/local/bin/pzmanager serve --config /opt/pzmanager/config.yaml
|
|
Restart=on-failure
|
|
RestartSec=5
|
|
|
|
# Менеджер сам останавливает игровой сервер по SIGTERM: сначала отправляет
|
|
# команду quit (мир сохраняется), потом добивает процесс. Дадим ему время.
|
|
KillSignal=SIGTERM
|
|
KillMode=mixed
|
|
TimeoutStopSec=300
|
|
|
|
# Всё своё панель держит в /opt/pzmanager, домашние каталоги ей не нужны.
|
|
NoNewPrivileges=true
|
|
PrivateTmp=true
|
|
ProtectSystem=full
|
|
ProtectHome=true
|
|
ReadWritePaths=/opt/pzmanager
|
|
|
|
StandardOutput=journal
|
|
StandardError=journal
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|