Marinara Engineのアップデート

Marinara Engineを新しいバージョンにアップデートする方法、アプリ内でアップデートを確認する方法、問題が起きたときに元のバージョンへ戻す方法を説明します。アップデートしてもチャットと設定はそのまま残ります。

どのアップデート方法を使うか

インストールした方法アップデートの方法
Windowsインストーラーまたはstart.batMarinaraを終了して、もう一度開きます。Windowsを参照してください。
macOSまたはLinux./start.shをもう一度実行します。macOSとLinuxを参照してください。
DockerまたはPodman新しいイメージを取得して再起動します。DockerまたはPodmanを参照してください。
AndroidアプリAPKをアップデートしてから、Install / Start Marinara(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を実行します。

ランチャーが最新のコードを取得し、変更された部分を再インストールし、ビルドし直して新しいバージョンを起動します。自分でコードを変更していた場合は、その変更をいったん退避し、アップデート後に元に戻します。退避できない場合は、今のバージョンのままにして、その旨を表示します。アップデートの前にはデータをコピーし、データより古いバージョンに移ることになるアップデートはスキップします(古いバージョンへダウングレードするを参照)。

1回だけアップデートを飛ばすには、start.bat --skip-updateを実行します。起動のたびにインストール済みのバージョンを保つには、プロジェクトの.envにAUTO_UPDATE_ENABLED=falseを設定します。これでオフになるのは自動アップデートだけです。手動のコマンドと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

ランチャーが最新のコードを取得し、変更された依存パッケージを再インストールし、ビルドし直して新しいバージョンを起動します。1回だけ飛ばすには./start.sh --skip-updateを使います。自動アップデートをオフにするには、.envにAUTO_UPDATE_ENABLED=falseを設定します。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タグです。pullしても、marinara-dataボリュームの中のデータには影響しません。コンテナーでのインストールを参照してください。

Android (Termux)

Termuxは、Marinaraのために小さなLinux環境を動かすAndroidアプリです。Termuxのランチャーは、実行するたびにMarinaraをアップデートします。

  1. Termuxを開きます。
  2. ランチャーを実行します。
cd Marinara-Engine
./start-termux.sh

ランチャーはコードをアップデートし、必要に応じてNode.jsをアップグレードし、ビルドし直してサーバーを起動します。アップデートで問題が起き、今のコピーのまま使いたいときは、--skip-updateを付けます。自動アップデートをオフにするには、プロジェクトの.envにAUTO_UPDATE_ENABLED=falseを設定します。

Androidアプリ(APK)を使っている場合は、最新のAPKをダウンロードして開き、Androidにアプリをアップデートさせます。その後Marinara Engineを開き、Install / Start Marinara(Marinaraのインストール/起動)をタップして、Termux側のコピーをアップデートして起動します。アップデートの際に、署名の認証情報やシークレットを求められることはありません。

iPhoneとiPad

これらのデバイスではサーバーは動きません。ホーム画面のアイコンはPWAです。PWAとは、ホーム画面に保存してアプリのように開けるWebサイトのことです。

  1. Marinaraのサーバーを動かしているコンピューター、コンテナーのホスト、Androidデバイスをアップデートします。上にあるそのデバイスの節を参照してください。
  2. ホーム画面のアプリか、Safariのタブを再読み込みします。

Safariが古いビルドを表示し続ける場合は、PWAをインストールし直します。PWAの削除と再インストールを参照してください。

手動アップデート(gitのコピー、ランチャーなし)

ランチャーではなくpnpm startでgitのコピーを動かしている場合は、この方法を使います。次のコマンドは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の代わりに次の2つのコマンドを実行します。

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

Warning: 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で開いてください。

次の2つの設定で、この扱いが変わります。

別のデバイスからの適用は、デフォルトでオフです。次の3つがすべて必要です。

Apply Updateをクリックします。サーバーがコードを取得し、再インストールし、ビルドし直して停止するまでの間、ボタンにはUpdating…と表示されます。その後「Update applied successfully. Please relaunch the app to use the new version.」と表示されます。Marinaraを起動し直せば完了です。

うまくいかなかった場合: Apply Updateが表示されないときは、その理由をMarinaraが表示します。

ブラウザーでアプリを再読み込みする

Refresh App(アプリの再読み込み)は、同じUpdatesセクションにあります。これはサーバーをアップデートしません。サービスワーカー(アプリを速く読み込むためにブラウザーが使う小さなスクリプト)を削除し、ブラウザーのキャッシュを消去してから、ページを再読み込みします。チャットと設定はそのまま残ります。

サーバーのアップデートは済んでいるのに、アプリの表示が古いままだったり真っ白になったりするときに使います。処理中はボタンにRefreshing…と表示されます。

データと任意のダウンロード

アップグレードで置き換わるのはアプリのコードだけで、データフォルダーやmarinara-dataボリュームは置き換わりません。チャット、キャラクター、ペルソナ、ロアブック、プリセット、接続、設定はそのまま残ります。データの保存場所については、Marinaraのバックアップと復元を読んでください。

2.5.0からのアップデート

上の手順はこれまでと同じです。ただし、ほかのデバイスやほかの人が使うサーバーには、いくつかの変更が影響します。該当する場合は、詳細を開いてください。

古いバージョンへダウングレードする

元のバージョンに戻せるとは限りません。新しいバージョンはデータを新しいストレージ形式で保存し、ビルドは自分が知っている形式より新しい形式のデータを拒否します。現在のビルドはストレージ形式10を使います。形式8、9、10では、それぞれMMDアバター、接続とアカウントのリンク、GLB/FBXアバターが追加されました。それより古い形式しか知らないビルドでは、これらの形式で保存したデータを開けません。

ランチャーは互換性のないバージョンに移ることになる自動アップデートをスキップし、アプリ内のアップデーターもその適用を拒否します。古いビルドへ戻すには、Marinaraを停止し、アップグレードする前に作成した完全なバックアップを復元してください。下のチャットファイルの変換コマンドでは、MMDアバターの設定を変換できません。形式番号を手作業で変更しないでください。

データがストレージ形式8より古い場合は、1つのコマンドでチャットファイルを以前の配置に戻せます。古いバージョンへ切り替えたらチャットのメッセージが表示されないを参照してください。

2.5.0に戻す

バージョン2.5.0は、ストレージ形式8以降にアップグレードしたデータを開けません。アップグレード前に作成したバックアップを使ってください。

2.5.0が開ける古いデータでも、2.5.0は新しい機能が追加したデータを認識できません。具体的には、一部の接続設定、チャットの画像を再生成するための情報、ゲームのチェックポイント、ルールセットのクロック、シーン動画の一部です。2.5.0がチャットや接続を保存すると(たとえば、メッセージを送る、ゲームのターンを進める、画像を作る、接続を変更するといった操作のとき)、その新しいデータはチャット全体または接続全体から削除されます。もう一度アップデートしても、削除されたデータは戻りません。

元の状態にそのまま戻れるようにするには、アップデートの前にバックアップを作成してください。事前のバックアップを参照してください。

アップデートに失敗したとき

失敗のほとんどは、古いNode.js、途中で終わったダウンロード、ブラウザーの古いキャッシュが原因です。

エラーメッセージと対処法は、Marinara Engineのトラブルシューティングを参照してください。

関連ガイド