パッケージング
NeoTavern はプラットフォームごとのネイティブパッケージとして配信され、それぞれが Node.js サイドカー、SQLite、ネイティブアドオン、本番 Web アセットを運びます。
配信フォーマット
デスクトップビルドは次のものを生成します:
- Windows インストーラー — ユーザーごとのインストールモードの NSIS と MSI インストーラー。インストーラーはアプリを登録し、ユーザーデータをプラットフォームのアプリローカルデータディレクトリに置きます。
- Windows ポータブルビルド — 実行ファイル、サイドカー、
portable.flagマーカー、resources/、および.sha256チェックサムファイルを含む ZIP。フラグがある場合、データはアプリローカルデータの代わりにアプリケーションの隣のローカルdata/フォルダに置かれます。 - macOS パッケージ — macOS ランナーで DMG にパッケージ化される
.appバンドル。 - Linux — AppImage とアーカイブ。
ディストリビューションがネイティブアドオンをバンドルするため、各フォーマットは自身のネイティブプラットフォームランナーでビルドおよびスモークテストされます。準備されたアーティファクトのクロスプラットフォームコピーはサポートされません。
内部に同梱されるもの
すべてのパッケージには、アプリが実行時に必要とするものがすべて含まれています:
- Tauri 2 シェル。
- 自己完結型 Node.js 24 サイドカー実行ファイル。
better-sqlite3経由の SQLite。- 画像処理用の Sharp。
- 本番 Web アセット。
Node.js、SQLite、アセットがパッケージ内にあるため、ユーザーは事前に何もインストールする必要がありません — Node.js も npm もデータベースセットアップも不要です。
初回起動
初回起動は製品の核心的な約束です: アプリを開くだけで動作します。
- シェルがサイドカーを起動します。
- バックエンドがデータディレクトリを作成し、SQLite データベースを初期化し、保留中のマイグレーションを実行し(保留中のスキーマ変更の前にバックアップを取り)、同梱テーマとスターターキャラクターを初期化します。
- ウェブビューが準備のできたアプリケーションで開きます。
ターミナルも、プラットフォームのもの以外のインストーラーウィザードも、npm install も、手動構成もありません。ユーザーがチャット背景を選んだりプラグインをインストールしたりしても、それらは実行ファイルには存在しません — ユーザーデータはバンドルとは別なので、アップデートはユーザーファイルに触れずにコアを置き換えます。
アップデート
リリースビルドはアーティファクトに署名し、Tauri アップデーターを統合します。アップデーターはプラットフォームアーティファクトをインストールする前にマニフェストと minisign 署名を検証し、その後シェルを再起動します。ロールバックとは、以前にレビューされたコードを新しい署名付きリリースとして公開することを意味し、署名のないダウングレードは許可されません。プラグインとテーマはプラグインマネージャーとテーママネージャーを通じて独立してアップデートされ、ユーザーファイルが実行可能なアップデートアーティファクトに入ることはありません。
ビルド
リポジトリから、パッケージングコマンドは次のとおりです:
pnpm desktop:prepare
pnpm desktop:build
pnpm desktop:portable
pnpm desktop:release
desktop:prepare はサーバーと Web をビルドし、ターゲット固有のネイティブアドオンをコピーし、Tauri ターゲットトリプルサフィックス付きのサイドカーを作成します。desktop:portable はさらに NSIS/MSI インストーラーとチェックサム付きポータブル ZIP をビルドし、ヘッドレスシェルのスモークテストを実行します。desktop:release は署名付きアップデーターアーティファクトを生成し、リリースシークレットが必要です。インストーラーのビルドには、ビルドマシン上の Rust stable MSVC、Windows C++ Build Tools、WebView2 が必要ですが、エンドユーザーにはいずれも不要です。