Обновление приложения 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. |
Сначала сделайте резервную копию
Делайте резервную копию перед любым большим переходом между версиями и всегда – перед возможным возвратом на более старую версию.
- Откройте панель Settings (настройки).
- Перейдите на вкладку Advanced (дополнительно).
- Найдите раздел Backup & Export (резервные копии и экспорт).
- Нажмите кнопку Download Backup (скачать резервную копию).
- Сохраните файл
.zipв надежном месте.
Пока идет работа, на кнопке видно Creating backup…. По завершении браузер сохраняет архив .zip с вашими данными. О восстановлении читайте в руководстве Резервное копирование и восстановление Marinara.
Обновление на разных платформах
Выберите раздел, который соответствует способу установки Marinara. Git-копия – это копия, установленная с помощью программы Git: сюда относятся и установщик для Windows, и любая копия, полученная через git clone.
Windows
Скрипт запуска обновляет Marinara, когда вы его запускаете.
- Закройте приложение Marinara Engine.
- Откройте его снова ярлыком на рабочем столе или в меню "Пуск" либо запустите
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
- Закройте приложение Marinara Engine.
- Запустите скрипт запуска из папки 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 при каждом запуске.
- Откройте Termux.
- Запустите скрипт запуска.
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: сайт, сохраненный на домашний экран, который открывается как приложение.
- Обновите компьютер, хост контейнера или устройство Android, на котором работает ваш сервер Marinara. Используйте раздел для этого устройства выше.
- Перезагрузите приложение с домашнего экрана или вкладку Safari.
Если Safari продолжает показывать старую сборку, переустановите PWA. См. Очистка и повторная установка приложения PWA.
Обновление вручную (git-копия без скрипта запуска)
Этот способ подходит, если вы запускаете git-копию командой pnpm start, а не скриптом запуска. Выполняйте команды из папки Marinara.
- Получите последний стабильный код.
git fetch origin +refs/heads/main:refs/remotes/origin/main- Перейдите на него.
git merge --ff-only origin/main || git checkout --detach origin/main- Переустановите зависимости, соберите приложение и запустите его.
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, есть ли новая версия. Некоторые установки могут еще и применить обновление из браузера.
- Откройте панель Settings.
- Перейдите на вкладку Advanced.
- Найдите раздел Updates (обновления).
Выбор канала выпусков
Release Channel (канал выпусков) задает, за какими сборками вы следите.
- Latest Stable: выпуски с тегами
vX.Y.Z. Это обычный выбор. - Staging/UAT: предварительные сборки для тестирования, которые могут быть незавершенными. При выборе этого канала появляется предупреждение "Staging builds are pre-release tester builds. Back up your app data before applying them."
Если выбрать другой канал в браузере на том компьютере, где работает сервер, надпись на кнопке обновления меняется на Switch to с названием канала. Эта кнопка работает даже при выключенных обычных обновлениях из приложения, а во время работы показывает Switching…. Удаленные устройства так не могут, если только не выполняют условия для Apply Update (применить обновление), перечисленные ниже.
Check for Updates
Нажмите Check for Updates. Во время работы кнопка показывает Checking…. Под ней видны версия Release, код коммита Build и, если она известна, ветка Branch.
- Если у вас последняя версия, зеленая строка сообщает "You're on the latest" и показывает номер версии.
- Если есть более новый выпуск, на карточке появляется "vX.Y.Z available" со ссылкой Release notes.
- Если git-копия отстала, карточка показывает "N commits behind". Коммит – это одно сохраненное изменение в коде, поэтому в этот счет может попасть и невыпущенная работа.
Проверка выпуска кешируется примерно на 15 минут, а счетчик коммитов – примерно на 5 минут, поэтому повторное нажатие сразу же может показать те же числа.
Если проверка не удалась, появляется сообщение "Could not check for updates. Try again later." Обычно это значит, что дело в сети или в проблеме на стороне GitHub.
Apply Update
Apply Update обновляет git-копию из браузера. Кнопка появляется, только если выполнены все эти условия:
- Установка – это git-копия. Контейнеры и другие установки так обновляться не могут.
- Ветка –
main,masterилиstagingлибо рабочая копия в отсоединенном состоянии (detached checkout). Копия на любой другой ветке считается рабочей копией для разработки, и Marinara отказывается ее обновлять. - Владелец сервера указал
UPDATES_APPLY_ENABLED=trueв файле.envсервера. - Переменная
UPDATES_APPLY_DISABLEDне задана. Она блокирует любое применение обновления, включая переключение канала, и ее задают скрипты запуска для разработчиков.
Чтобы применить обновление с компьютера, на котором работает сервер, секрет администратора не нужен. Откройте Marinara по адресу http://127.0.0.1:7860 или http://localhost:7860.
Это меняют две настройки:
- Адрес, который обслуживает обратный прокси или туннель, считается другим устройством.
REQUIRE_AUTH_FOR_LOOPBACK_PROXY=falseзаставляет считать таких посетителей локальными, в том числе для локального обхода секрета администратора. Для публичного прокси или туннеля оставьте эту защиту включенной. MARINARA_REQUIRE_ADMIN_SECRET_ON_LOOPBACK=trueтребует секрет даже для локальных запросов.
Применение обновления с другого устройства по умолчанию выключено. Для него нужны все три условия:
UPDATES_ALLOW_REMOTE_APPLY=trueв файле.envсервера.ADMIN_SECRET, заданный в файле.envсервера. Это второй пароль для рискованных действий.- Тот же секрет, сохраненный на вашем устройстве в Settings → Advanced → Admin Access (доступ администратора).
Нажмите Apply Update. Пока сервер скачивает код, переустанавливает зависимости, собирает приложение и выключается, кнопка показывает Updating…. Затем появляется сообщение "Update applied successfully. Please relaunch the app to use the new version." Чтобы завершить обновление, снова запустите Marinara.
Если не получилось: когда кнопки Apply Update нет, Marinara объясняет почему.
- Установки в контейнере показывают тег образа и команду
docker compose pull && docker compose up -d, которую нужно выполнить на хосте. - Git-копии с выключенным применением обновлений показывают команду для обновления вручную, которую можно скопировать.
- Остальные установки показывают ссылку Download (скачать) на выпуск в GitHub.
Обновление приложения в браузере
Кнопка Refresh App (обновить приложение) находится в том же разделе Updates. Сервер она не обновляет. Она удаляет service worker (небольшой скрипт, с помощью которого браузер быстро загружает приложение) и очищает кеши браузера, а затем перезагружает страницу. Чаты и настройки остаются на месте.
Нажимайте ее, когда приложение выглядит устаревшим или пустым, хотя сервер уже обновился. Во время работы кнопка показывает Refreshing….
Ваши данные и дополнительные загрузки
Обновление заменяет код приложения, а не папку с данными и не том marinara-data. Чаты, персонажи, персоны, лорбуки, пресеты, подключения и настройки остаются на месте. Где лежат данные, описано в руководстве Резервное копирование и восстановление Marinara.
- Дополнительные пакеты. При обновлении с версии, где официальные агенты, карты, звонки или игры режима Conversation входили в комплект, первый запуск скачивает соответствующие дополнительные пакеты. Ваш выбор, настройки и история сохраняются. Во время этого первого запуска сервер должен быть в сети. Если источник скачивания недоступен, Marinara повторяет попытку при следующем запуске и ничего не удаляет.
- Язык руководств. Если вы пользуетесь скачанным языком документации, который выбирается в Settings → General → Documentation Language (общие → язык документации), первый запуск после обновления обновляет его. Если источник недоступен, Marinara оставляет установленный пакет, показывает недостающие руководства по-английски и повторяет попытку при следующем запуске.
- Язык интерфейса. Языковые пакеты интерфейса скачиваются отдельно и вручную. При первом обновлении с версии со встроенными переводами интерфейс возвращается к английскому. Снова выберите свой язык в Settings → General → Language (язык). Последующие обновления сохраняют скачанные пакеты. Чтобы получить новые переводы, используйте Refresh language pack (обновить языковой пакет). Там, где перевода нет, показывается английский текст.
Обновление с версии 2.5.0
Шаги выше не меняются. Но несколько изменений затрагивают сервер, которым пользуются другие устройства или люди. Если это ваш случай, раскройте подробности.
- Обратный прокси или туннель на том же компьютере. Посетители, которых nginx, Caddy, Cloudflare Tunnel, Tailscale Serve или ngrok передают в Marinara, теперь считаются удаленными. Без входа они видят страницу настройки, а для резервных копий и других защищенных действий нужен секрет администратора. См. Обратные прокси и туннели на том же компьютере.
- Обход входа для Tailscale. Прямые подключения к адресу Tailscale этого компьютера по-прежнему обходят вход. Остальные подключения из
100.64.0.0/10больше его не обходят, а посетителям через Tailscale Serve и Funnel нужен вход. См. Обход для Tailscale и Docker. - Docker с паролем или списком разрешенных адресов. Если задан вход (в приложении или Basic Auth), браузер на компьютере-хосте теперь тоже его запрашивает. То же происходит и при
TRUSTED_AUTH_PROXY, если только подключается не сам прокси. Если задан толькоIP_ALLOWLIST, браузеру на хосте отказывают, пока вы не внесете в список шлюз контейнера, поэтому используйте вход. См. Обход для Tailscale и Docker. - Чаты и профили, перенесенные в другую установку. Журнал чата, профиль настроек или полный профиль больше не переносит в другую установку значения Discord Mirror (зеркалирование в Discord), DeepLX URL (адрес DeepLX), DeepL API Key (ключ API DeepL) и Intiface URL (адрес Intiface). Введите их там заново. Ваши собственные профили и полный профиль, восстановленный в той же установке, сохраняют их.
- Нет доступа после обновления? См. Нет доступа после обновления.
Переход на старую версию
Вернуться назад можно не всегда. Новые версии сохраняют данные в более новом формате хранения, а сборка отказывается открывать данные в формате новее того, который она знает. Текущие сборки используют формат хранения 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, недокачанные файлы или устаревший кеш браузера.
- Если скрипт запуска сообщает, что версия Node.js слишком старая, установите Node.js 24 LTS и запустите приложение снова.
- Если после обновления сервера приложение выглядит сломанным, нажмите Refresh App.
- Если git-копия не может обновиться без ошибок, используйте команды обновления вручную.
Тексты ошибок и способы их исправить собраны в руководстве Устранение неполадок в приложении Marinara Engine.
Смежные руководства
- Резервное копирование и восстановление Marinara
- Устранение неполадок в приложении Marinara Engine
- Руководство по установке на Windows
- Установка на macOS и Linux
- Запуск в контейнере (Docker / Podman)
- Руководство по установке на Android (Termux)
- Руководство по приложению PWA для iOS / iPadOS