Перейти к содержимому

Обновление лаунчера

Лаунчер обновляется сам при запуске: проверяет сервер, скачивает новую версию, подменяет себя и перезапускается. Игрок ничего не выбирает и ничего не скачивает руками.

Как выложить версию

Соберите лаунчер под нужные платформы и положите файлы в каталог версий:

/var/lib/laminara/launcher/
0.2.0/
laminara-windows-x64.exe
laminara-linux
Laminara-linux.AppImage
Laminara-mac-os-arm64.app.tar.gz

Платформа и упаковка определяются по имени файла: расширение (.exe, .AppImage, .app.tar.gz) задаёт тип, а ключ платформы в имени (windows-x64, linux, mac-os-arm64, …) — систему. Затем:

laminara-server exec "launcher publish 0.2.0"
laminara-server exec "launcher status"

Публикация кладёт байты в то же хранилище, что и сборки, подписывает документ релиза вашим ключом и делает его текущим. Версия обязана быть вида 1.2.3 и строго больше предыдущей — понижение невозможно ни на сервере, ни на клиенте.

Включите каталог в конфиге:

{
"launcher": { "dir": "/var/lib/laminara/launcher" }
}

Что делает лаунчер игрока

  1. При старте запрашивает релиз и проверяет подпись тем же ключом, что и манифесты сборок.
  2. Если версия новее и её можно установить — показывает экран «Обновление лаунчера» с прогрессом.
  3. Качает артефакт, сверяет BLAKE3, атомарно подменяет себя и перезапускается.

Если обновление не удалось (нет сети, нет прав, битые байты) — лаунчер продолжает работу на текущей версии: старый файл возвращается на место.

Установки из пакетного менеджера или системных каталогов (/usr, /opt, Program Files, Snap, Flatpak) лаунчер не трогает — он только сообщает, что вышла новая версия.