Обновление приложения Marinara Engine

Обновите приложение Marinara Engine до новой версии, проверяйте обновления прямо в приложении и возвращайтесь на прежнюю версию, если что-то сломалось. Чаты и настройки при обновлении сохраняются.

Какой способ обновления подходит вам?

Как вы установили приложениеКак обновить
Установщик для Windows или start.batЗакройте Marinara и откройте снова. См. Windows.
macOS или LinuxСнова запустите ./start.sh. См. macOS и Linux.
Docker или PodmanСкачайте новый образ и перезапустите контейнер. См. Docker или Podman.
Приложение для AndroidОбновите APK, затем нажмите Install / Start Marinara. См. Android (Termux).
iPhone или iPadОбновите устройство, на котором работает сервер. См. iPhone и iPad.

Сначала сделайте резервную копию

Делайте резервную копию перед любым большим переходом между версиями и всегда – перед возможным возвратом на более старую версию.

  1. Откройте панель Settings (настройки).
  2. Перейдите на вкладку Advanced (дополнительно).
  3. Найдите раздел Backup & Export (резервные копии и экспорт).
  4. Нажмите кнопку Download Backup (скачать резервную копию).
  5. Сохраните файл .zip в надежном месте.

Пока идет работа, на кнопке видно Creating backup…. По завершении браузер сохраняет архив .zip с вашими данными. О восстановлении читайте в руководстве Резервное копирование и восстановление Marinara.

Обновление на разных платформах

Выберите раздел, который соответствует способу установки Marinara. Git-копия – это копия, установленная с помощью программы Git: сюда относятся и установщик для Windows, и любая копия, полученная через git clone.

Windows

Скрипт запуска обновляет Marinara, когда вы его запускаете.

  1. Закройте приложение Marinara Engine.
  2. Откройте его снова ярлыком на рабочем столе или в меню "Пуск" либо запустите start.bat.

Скрипт запуска скачивает свежий код, переустанавливает то, что изменилось, собирает приложение заново и запускает новую версию. Если вы сами меняли код, скрипт откладывает ваши изменения и возвращает их на место после обновления. Если это не удается, он оставляет текущую версию и выводит сообщение. Перед обновлением скрипт копирует ваши данные и пропускает обновление, которое привело бы к версии старше ваших данных (см. Переход на старую версию).

Чтобы один раз пропустить обновление, запустите start.bat --skip-update. Чтобы установленная версия сохранялась между запусками, укажите AUTO_UPDATE_ENABLED=false в файле .env проекта. Это отключает только автоматические обновления. Команды вручную и Settings → Advanced → Check for Updates (проверить обновления) по-прежнему работают.

Если скрипт запуска сообщает, что версия Node.js слишком старая, установите Node.js 24 LTS (Long Term Support – рекомендуемый стабильный выпуск с долгосрочной поддержкой), затем снова запустите Marinara. Можно также скачать самый новый установщик со страницы GitHub Releases и запустить его.

macOS и Linux

  1. Закройте приложение Marinara Engine.
  2. Запустите скрипт запуска из папки Marinara.
./start.sh

Скрипт запуска скачивает свежий код, переустанавливает изменившиеся зависимости, собирает приложение заново и запускает новую версию. Чтобы один раз пропустить обновление, используйте ./start.sh --skip-update, а чтобы отключить автоматические обновления – AUTO_UPDATE_ENABLED=false в файле .env. Если версия Node.js слишком старая, установите Node.js 24 LTS и снова запустите скрипт запуска.

Docker или Podman

Контейнеры обновляются скачиванием нового образа, а не через скрипт запуска. Сделайте резервную копию, затем выполните эту команду из папки, где лежит файл Compose.

docker compose pull && docker compose up -d

Для Podman используйте вместо этого podman compose. Образы выпусков публикуются как ghcr.io/pasta-devs/marinara-engine:X.Y.Z и :latest, а также с парными тегами -lite. Скачивание образа не затрагивает данные в томе marinara-data. См. Запуск в контейнере (Docker / Podman).

Android (Termux)

Termux – это приложение для Android, в котором для Marinara работает небольшая система Linux. Его скрипт запуска обновляет Marinara при каждом запуске.

  1. Откройте Termux.
  2. Запустите скрипт запуска.
cd Marinara-Engine
./start-termux.sh

Скрипт запуска обновляет код, при необходимости обновляет Node.js, собирает приложение заново и запускает сервер. Если обновление что-то сломало и вы хотите остаться на текущей копии, добавьте --skip-update. Чтобы отключить автоматические обновления, укажите AUTO_UPDATE_ENABLED=false в файле .env проекта.

Если вы пользуетесь приложением для Android (APK), скачайте последнюю версию APK и откройте файл, чтобы Android обновил приложение. Затем откройте Marinara Engine и нажмите Install / Start Marinara, чтобы обновить и запустить копию в Termux. Обновление никогда не просит учетные данные подписи или секрет.

iPhone и iPad

На этих устройствах сервер не работает. Значок на домашнем экране – это PWA: сайт, сохраненный на домашний экран, который открывается как приложение.

  1. Обновите компьютер, хост контейнера или устройство Android, на котором работает ваш сервер Marinara. Используйте раздел для этого устройства выше.
  2. Перезагрузите приложение с домашнего экрана или вкладку Safari.

Если Safari продолжает показывать старую сборку, переустановите PWA. См. Очистка и повторная установка приложения PWA.

Обновление вручную (git-копия без скрипта запуска)

Этот способ подходит, если вы запускаете git-копию командой pnpm start, а не скриптом запуска. Выполняйте команды из папки Marinara.

  1. Получите последний стабильный код.
git fetch origin +refs/heads/main:refs/remotes/origin/main
  1. Перейдите на него.
git merge --ff-only origin/main || git checkout --detach origin/main
  1. Переустановите зависимости, соберите приложение и запустите его.
pnpm install --force --frozen-lockfile
pnpm build
pnpm start

Для тестовой версии (staging) выполните эти две команды вместо шагов 1 и 2:

git fetch origin +refs/heads/staging:refs/remotes/origin/staging
git checkout -B staging origin/staging

Предупреждение: сборки staging – это предварительные сборки для тестирования. Перед их использованием сделайте резервную копию данных.

Обновление из приложения

Marinara умеет проверять на GitHub, есть ли новая версия. Некоторые установки могут еще и применить обновление из браузера.

  1. Откройте панель Settings.
  2. Перейдите на вкладку Advanced.
  3. Найдите раздел Updates (обновления).

Выбор канала выпусков

Release Channel (канал выпусков) задает, за какими сборками вы следите.

Если выбрать другой канал в браузере на том компьютере, где работает сервер, надпись на кнопке обновления меняется на Switch to с названием канала. Эта кнопка работает даже при выключенных обычных обновлениях из приложения, а во время работы показывает Switching…. Удаленные устройства так не могут, если только не выполняют условия для Apply Update (применить обновление), перечисленные ниже.

Check for Updates

Нажмите Check for Updates. Во время работы кнопка показывает Checking…. Под ней видны версия Release, код коммита Build и, если она известна, ветка Branch.

Проверка выпуска кешируется примерно на 15 минут, а счетчик коммитов – примерно на 5 минут, поэтому повторное нажатие сразу же может показать те же числа.

Если проверка не удалась, появляется сообщение "Could not check for updates. Try again later." Обычно это значит, что дело в сети или в проблеме на стороне GitHub.

Apply Update

Apply Update обновляет git-копию из браузера. Кнопка появляется, только если выполнены все эти условия:

Чтобы применить обновление с компьютера, на котором работает сервер, секрет администратора не нужен. Откройте Marinara по адресу http://127.0.0.1:7860 или http://localhost:7860.

Это меняют две настройки:

Применение обновления с другого устройства по умолчанию выключено. Для него нужны все три условия:

Нажмите Apply Update. Пока сервер скачивает код, переустанавливает зависимости, собирает приложение и выключается, кнопка показывает Updating…. Затем появляется сообщение "Update applied successfully. Please relaunch the app to use the new version." Чтобы завершить обновление, снова запустите Marinara.

Если не получилось: когда кнопки Apply Update нет, Marinara объясняет почему.

Обновление приложения в браузере

Кнопка Refresh App (обновить приложение) находится в том же разделе Updates. Сервер она не обновляет. Она удаляет service worker (небольшой скрипт, с помощью которого браузер быстро загружает приложение) и очищает кеши браузера, а затем перезагружает страницу. Чаты и настройки остаются на месте.

Нажимайте ее, когда приложение выглядит устаревшим или пустым, хотя сервер уже обновился. Во время работы кнопка показывает Refreshing….

Ваши данные и дополнительные загрузки

Обновление заменяет код приложения, а не папку с данными и не том marinara-data. Чаты, персонажи, персоны, лорбуки, пресеты, подключения и настройки остаются на месте. Где лежат данные, описано в руководстве Резервное копирование и восстановление Marinara.

Обновление с версии 2.5.0

Шаги выше не меняются. Но несколько изменений затрагивают сервер, которым пользуются другие устройства или люди. Если это ваш случай, раскройте подробности.

Переход на старую версию

Вернуться назад можно не всегда. Новые версии сохраняют данные в более новом формате хранения, а сборка отказывается открывать данные в формате новее того, который она знает. Текущие сборки используют формат хранения 10. Форматы 8, 9 и 10 добавили аватары MMD, связи подключений с аккаунтами и аватары GLB/FBX. Сборка, которая знает только более старый формат, не может открыть данные, сохраненные в этих форматах.

Скрипт запуска пропускает автообновление, которое привело бы к несовместимой версии, а встроенный механизм обновления отказывается его применять. Чтобы вернуться к более старой сборке, остановите Marinara и восстановите полную резервную копию, созданную до обновления. Команда преобразования файлов чата, о которой сказано ниже, не умеет преобразовывать настройки аватаров MMD. Не меняйте номер формата вручную.

Если ваши данные старше формата хранения 8, преобразование одной командой может вернуть файлы чата к прежней структуре. См. После перехода на старую версию в чатах не видно сообщений.

Возврат на версию 2.5.0

Версия 2.5.0 не может открыть данные, обновленные до формата хранения 8 или новее. Используйте резервную копию, созданную до обновления.

Со старыми данными, которые версия 2.5.0 может открыть, она не знает о том, что добавили новые функции: о части настроек подключений, о сведениях, нужных для повторной генерации изображений в чате, и о частях контрольных точек игр, часов наборов правил и видео сцен. Когда версия 2.5.0 сохраняет чат или подключение (например, когда вы отправляете сообщение, играете ход в игре, создаете изображение или меняете подключение), она удаляет эти новые данные из всего чата или подключения. Повторное обновление их не возвращает.

Чтобы вернуться точно туда, где вы были, сделайте резервную копию перед обновлением. См. Сначала сделайте резервную копию.

Если обновление не удалось

Чаще всего сбои вызывают старая версия Node.js, недокачанные файлы или устаревший кеш браузера.

Тексты ошибок и способы их исправить собраны в руководстве Устранение неполадок в приложении Marinara Engine.

Смежные руководства