Обновление панели из интерфейса и режим обновления в установщике
Установщик стал идемпотентным: на уже настроенной машине он определяет установленную версию, останавливает службу, меняет бинарник и поднимает её обратно, не трогая конфиг, миры и учётные записи. Зависимости при обновлении не переустанавливаются — это лишние минуты apt. Кнопки «Обновить» и «Перезапустить панель» появились на вкладке «Настройки» вместе с текущей версией и описанием нового релиза. Панель работает от непривилегированного пользователя и не может ни заменить свой бинарник в /usr/local/bin, ни дёрнуть systemctl. Вместо того чтобы расширять её права, установщик кладёт root-скрипт pzmanager-admin и разрешает сервисному пользователю через sudoers ровно эту одну команду. Скрипт сверяет sha256 скачанного бинарника с checksums.txt релиза. Если правила sudo нет, кнопки не будет — панель покажет команду для терминала. Перед обновлением и перезапуском игровой сервер останавливается штатным quit: иначе его погасил бы systemd уже в момент рестарта, и ожидание растянулось бы на таймаут остановки. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -40,10 +40,12 @@ jobs:
|
||||
|
||||
# Скрипты установки кладём в релиз: тогда get.sh ставит версию
|
||||
# целиком из одного источника и не зависит от состояния ветки.
|
||||
cp deploy/install.sh deploy/pzmanager.service deploy/get.sh dist/
|
||||
cp deploy/install.sh deploy/pzmanager.service dist/
|
||||
cp deploy/get.sh deploy/pzmanager-admin.sh dist/
|
||||
|
||||
cd dist
|
||||
sha256sum pzmanager-linux-* install.sh pzmanager.service get.sh > checksums.txt
|
||||
sha256sum pzmanager-linux-* install.sh pzmanager.service \
|
||||
get.sh pzmanager-admin.sh > checksums.txt
|
||||
cat checksums.txt
|
||||
|
||||
- name: Опубликовать релиз
|
||||
|
||||
Reference in New Issue
Block a user