Inkubus をアップデートする
新しいバージョンの zip を note の販売記事からダウンロードしたら、この手順で既存のインストールを更新します。作品データ(server/data/ と server/output/)はアップデートで消えません。キャスト機能で登録した画像も server/data/ 内(cast/)なので保持されます。
npm install ではなく npm ci を使ってください。package-lock.json に厳密に従ってインストールします(npm install はロックを書き換える可能性があります)。
01 全体の流れ
所要はおよそ 5〜10 分です。
- サーバを停止する。
- 念のためバックアップを取る(推奨)。
- 新しい zip を展開する(= 既存フォルダに上書き)。
npm ciで依存を更新する。- サーバを起動して動作確認。
02 サーバを停止する
npm run dev のターミナルで Ctrl+C。キューを稼働中なら、バッチ完了を待つかジョブ画面から先に停止しておくと安全です。
03 バックアップ(推奨)
スキーマが変わるアップデートでは app.sqlite を Inkubus が自動でバックアップします(後述の §07)。ただし小説の本文ファイルとキャスト画像は自動バックアップの対象外なので、大事な作品があるなら、アップデート前にバックアップを取っておくと安心です。
サーバを停止した状態で、Inkubus のフォルダで次の 1 コマンドを実行するだけです。
npm run backup
小説の本文(server/output/)とメタ情報・キャスト画像(server/data/)がまとめて 1 つの zip になり、backups フォルダに日時入りで保存されます。出力先の変更や復元の手順は バックアップ のページを参照してください。
04 上書き展開
配布 zip は常に inkubus/ という名前のフォルダで展開されます。既存の inkubus/ の上に上書きすれば OK。server/data/ と server/output/ は zip に含まれないので消えません(キャストの画像も server/data/cast/ にあるため残ります)。
Windows
zip を右クリック → 「すべて展開」。展開先は既存の inkubus フォルダの 1 つ上の階層を指定(末尾に \inkubus-x.y.z が付いていたら消す)。「同名のファイルがあります」と聞かれたら「ファイルを置き換える」。
macOS / Linux
cd ~/code # 既存が ~/code/inkubus/ の場合
unzip -o ~/Downloads/inkubus-x.y.z.zip
-o は「確認なしで上書き」のオプションです。
不安な場合は、新 zip を別の空フォルダに展開してから、旧フォルダの server/data/ と server/output/ をコピーしても同じ結果になります。
05 依存の更新
cd inkubus
npm ci
新バージョンでは依存ライブラリが増減することがあるので npm ci は必須です。server/ と web/ 両方の依存が同時に入ります。
06 動作確認
npm run dev
ブラウザで http://localhost:5173(Chrome 推奨)を開き、ヘッダや About 画面のバージョン表示が新しいか、ライブラリで過去の作品が見えるかを確認してください。
07 自動バックアップ
DB スキーマが変わるアップデートでは、起動時にスキーマ更新の直前に SQLite を自動バックアップします。
- 保存先:
server/data/app.sqlite.bak-YYYY-MM-DDTHH-mm-ss - 直近 5 件まで自動保持、古いものは削除。
- 問題が起きたら、この
.bak-...をapp.sqliteにリネームで復元できます(古いバージョンの zip と合わせて使用)。
08 更新後に残る古いファイル
更新は固定名 inkubus/ フォルダへの上書きで行うため、旧版にあって新版に無いファイルはそのまま残ります。v1.x から更新した場合、次のような古いファイルがフォルダに残ることがあります。
pub-docsフォルダ(中の.mdファイル)CHANGELOG.mdLICENSE(拡張子なしの旧ファイル。新しいLICENSE.txtとは別に残ります)
動作には影響しません。Inkubus は現行のファイルだけを参照します。気になる場合は、これらの古いファイルを手動で削除して構いません。