3.3 から 4.0 へのアップグレード
4.0 はプラグイン化のための大型リリースです。ダウンローダーは複数のインスタンスを持てるようになり、リネーム、ハードリンク、トレントフィルター、メディアサーバーの更新は内蔵プラグインが提供します。初回起動時に、AB は 3.3 の設定を新しい場所へ自動的に移行します。このページでは、移行で何が変わるか、アップグレード手順、アップグレード後の確認項目、3.3 へのロールバック方法を説明します。
4.0 はベータ版です
4.0 は 4.0.0-beta.N のベータ版としてのみ公開されています。4.0 正式版の公開までは、latest イメージタグは 3.3 を指します。本番環境では、先に下記のバックアップを取ってください。
アップグレードの前に
- 現在のバージョンが 3.3.x であることを確認します。 4.0 へは 3.3.x からのみアップグレードできます。古いバージョンのデータ(
config/version.infoの記録が 3.3 未満、または 2.x のdata/data.jsonが残っている)を検出すると、AB は起動を拒否し、最新の 3.3.x に一度アップグレードして起動するよう案内します。このときconfig.jsonはすでに 4.0 形式に書き換えられている場合があります。3.3.x に戻す前に、config.json.v3.bakでconfig.jsonを上書きしてください。 - コンテナを停止し、
configとdataの 2 つのフォルダーをバックアップします。 3.3 へロールバックするときに必要です(3.3 へのロールバック を参照)。
docker stop AutoBangumi
cp -a ${HOME}/AutoBangumi/config ${HOME}/AutoBangumi/config.bak-3.3
cp -a ${HOME}/AutoBangumi/data ${HOME}/AutoBangumi/data.bak-3.3イメージタグの変更
4.0 ベータ版のイメージタグ:
| タグ | 意味 |
|---|---|
4.0.0-beta.N | 指定したベータ版。例:4.0.0-beta.1。アップグレードとロールバックを管理しやすいため推奨 |
dev-latest | 最新のベータ版。4.0 に限らず、すべての X.Y.Z-beta.N リリースで更新されます |
latest | 最新の正式版。4.0 正式版の公開までは 3.3 です |
イメージは ghcr.io/estrellaxd/auto_bangumi と Docker Hub の estrellaxd/auto_bangumi に公開されます。
Docker Compose:image を変更し、コンテナを作り直します。
services:
AutoBangumi:
image: "ghcr.io/estrellaxd/auto_bangumi:4.0.0-beta.1"docker compose pull
docker compose up -dDocker CLI:古いコンテナを削除し、新しいタグと同じオプションで docker run を再実行します。
ボリューム(/app/config、/app/data)、ポート、環境変数は変わりません。4.0 で追加された環境変数はありません。プラグインは config/plugins/ にインストールされ、/app/config ボリュームに含まれます。
アプリ内更新(3.3 のベータチャンネル)
3.3 で更新チャンネルにベータ版を選んでいる場合、設定 → ソフトウェア更新 に 4.0.0-beta.N が表示されます。4.0 の更新パッケージはイメージバージョン 4.0.0-beta.1 以上を必要とします。3.3 のイメージで 今すぐ更新 を押すと、イメージが古いため新しいイメージを pull するよう求めるエラーで失敗します。前の節のとおりイメージタグを変更してください。安定版チャンネルのユーザーには 4.0 ベータ版は表示されません。
初回起動:設定の移行
AB は config.json を読み込む前に、3.3 形式かどうかを確認します。3.3 形式の場合、まず元のファイルを config.json.v3.bak にバックアップし、次のフィールドを 4.0 の場所へ移します。
| 3.3 のフィールド | 4.0 の場所 |
|---|---|
downloader | plugins.instances 内の id が default のダウンローダーインスタンス。type は provider になり、その他のフィールド(ホスト、ユーザー名、パスワード、ダウンロードパス、SSL)は options に入ります |
| — | plugins.slots.downloader を "default"(既定のダウンローダーインスタンス)に設定 |
bangumi_manage.rename_method | plugins.slots.rename_strategy。非推奨の normal は同じ動作の none に変わります |
bangumi_manage.revision_conflict_policy | plugins.slots.conflict_policy |
Bark チャンネルの token | device_key |
WeCom チャンネルの chat_id | webhook_url |
移行前後のダウンローダー設定の例:
{
"downloader": {
"type": "qbittorrent",
"host": "172.17.0.1:8080",
"username": "admin",
"password": "adminadmin",
"path": "/downloads/Bangumi",
"ssl": false
},
"bangumi_manage": {
"rename_method": "pn",
"revision_conflict_policy": "hold"
}
}{
"plugins": {
"slots": {
"downloader": "default",
"rename_strategy": "pn",
"conflict_policy": "hold"
},
"instances": [
{
"id": "default",
"point": "downloader",
"provider": "qbittorrent",
"options": {
"host": "172.17.0.1:8080",
"username": "admin",
"password": "adminadmin",
"path": "/downloads/Bangumi",
"ssl": false
}
}
]
}
}例には関連するフィールドだけを示しています。その他の設定は変わりません。
- バックアップは上書きされません。
config.json.v3.bakがすでにある場合(3.3 にロールバックしてから再度アップグレードした場合など)、新しいバックアップはconfig.json.v3.bak.1、config.json.v3.bak.2などに保存されます。最初のバックアップに最も古い 3.3 の設定が入っています。 - 移行に成功すると、ログに
Migrated config.json to 4.0 (...); the 3.3 file is kept as config.json.v3.bakが出力されます。括弧内は移動したフィールドです。 - 移行に失敗すると、
config.jsonは 3.3 の内容のまま残り、AB は起動しません。ログに原因のフィールドが表示されます。そのフィールドを修正して再起動してください。 - すでに 4.0 形式の設定は移行されず、バックアップも作られません。
- 環境変数(
AB_DOWNLOADER_HOST、AB_METHODなど)は引き続き有効です。読み込まれるのはconfig.jsonがない初回起動時だけで、値は既定のダウンローダーインスタンスとplugins.slotsに書き込まれます。
同じ起動で、データベースは schema v26 に自動更新されます。プラグイン用のストレージテーブル plugin_kv が追加され、アニメ、映画、RSS 購読、トレントに downloader_id 列が追加されます。既存のトレントは default インスタンスに属します。既存のルールと購読の downloader_id は空で、既定インスタンスを使うことを意味します。
4.0 で変わる動作
複数のダウンローダー
設定 → ダウンローダー設定 で複数のダウンローダーインスタンス(qBittorrent、aria2、またはプラグインのダウンローダー)を追加し、既定インスタンスを指定できます。ルールと RSS 購読はダウンローダーを選択でき、空欄なら既定インスタンスを使います。各トレントは所属するダウンローダーを記録し、リネームと削除はそのダウンローダー上で行われます。詳しくは ダウンローダー設定 を参照してください。
リネームはプラグインに
pn、advance と新しい template は、既定で有効な内蔵プラグイン rename が提供します。none は AB 本体が提供します。pn と advance の出力は 3.3 と完全に同じです。
templateは自分で書いたテンプレートからファイル名を作ります。設定の保存時に AB がテンプレートを試しにレンダリングし、不正なテンプレートは保存できません。- 実行時にあるファイルのテンプレートのレンダリングに失敗すると、そのファイルは元の名前のまま残り、「ファイル名を変更しなかった」旨の通知が送られます。
pnへのフォールバックはしません。 - 設定 → プラグイン で
renameプラグインを無効にすると、すべてのアニメがnoneとして扱われ、元のファイル名が保たれます。
詳しくは アニメ管理設定 を参照してください。
メディアライブラリへのハードリンク
新しい内蔵プラグイン hardlink は既定で無効です。有効にすると、トレントの整理が終わったときに動画と字幕をメディアライブラリのフォルダーにリンクします。ダウンロードフォルダーはそのまま残り、シードを続けます。
- ダウンローダーと AB から見えるパスが異なる場合(別々のコンテナで動いている場合など)、ダウンローダーインスタンスごとに
path_mapでパスの対応を設定します。 - ハードリンクを作れない場合(ファイルシステムが異なる場合)、既定ではファイルをコピーします(
cross_device: copy)。 - Docker では、メディアライブラリのフォルダーも AB コンテナにマウントする必要があります。ハードリンクを使うには、ダウンロードフォルダーとメディアライブラリを同じディスクに置き、1 つのマウントポイントでコンテナにマウントしてください。
詳しくは アニメ管理設定 を参照してください。
その他の内蔵プラグイン
- トレントフィルタープラグイン
ingest-filtersは既定で有効です。includeオプションが空のときは何もフィルターしません。 media-server-refreshは既定で有効です。Jellyfin / Emby / Plex のアドレスと API キーを設定したときだけ、ライブラリの更新を要求します。
サードパーティープラグイン
ローカルフォルダー(config/plugins/local/)と pip でインストールしたプラグインは署名されていません。設定 → プラグイン で「未署名プラグインを許可」(plugins.allow_unsigned)をオンにしたときだけ読み込まれます。プラグインの開発は プラグイン開発 を参照してください。
削除された機能
- 3.2 互換の GET 制御エンドポイント(
/api/v1/restart、/start、/stop、/shutdown)とGET /api/v1/auth/refresh_token。POST を使ってください。これらを呼び出すスクリプトは修正が必要です。 - 旧
experimental_openai設定セクションと、通知の単一チャンネル用の旧フィールド。3.3 ですでにllmとnotification.providersへ移行済みです。
アップグレード後の確認
- [ ] ログに
Migrated config.json to 4.0の行があり、configフォルダーにconfig.json.v3.bakがある。 - [ ] 設定 → ダウンローダー設定 に id が
defaultのインスタンスがあり、ホスト、ユーザー名、ダウンロードパスが 3.3 と同じで、接続できる。 - [ ] リネーム方式が 3.3 と同じ。3.3 の
normalはnoneと表示されますが、動作は同じでファイル名を変更しません。 - [ ] 設定 → プラグイン で
renameプラグインが有効になっている。 - [ ] Bark または WeCom の通知を使っている場合、テスト通知を送る。
- [ ] ハードリンクやメディアサーバーの更新が必要な場合、設定 → プラグイン で有効にして設定する。
- [ ] 3.2 の GET 制御エンドポイントを使うスクリプトを POST に変更した。
3.3 へのロールバック
4.x は実行バージョンを config/version_v4.info に書き込み、config/version.info は変更しません。そのため 3.3 は起動時にデータのバージョンを誤認しません。3.3 のデータで 4.x を初めて起動すると、AB はデータベースを data/data.db.v3.bak にバックアップします。
アップグレード前の完全なバックアップがある場合(推奨):
- コンテナを停止します。
configとdataフォルダーをconfig.bak-3.3とdata.bak-3.3で置き換えます。- イメージタグを 3.3(例:
3.3.6)に戻し、コンテナを作り直します。
4.0 で行った変更(新しいアニメ、新しい購読、新しい設定)はすべて失われます。
完全なバックアップがない場合:
- コンテナを停止します。
config/config.json.v3.bakでconfig/config.jsonを上書きします。3.3 はplugins.instancesを認識しないため、戻さないとダウンローダー設定が既定値になります。data/data.db.v3.bakでdata/data.dbを上書きします。4.0 がテーブルを変更したデータベースは 3.3 では使えません。- 4.0 でアプリ内更新を使った場合は、
config/updates/フォルダーを削除します。削除しないと、3.3 のイメージが起動時にそこにある新しい 4.0 のコードを読み込みます。 - イメージタグを 3.3(例:
3.3.6)に戻し、コンテナを作り直します。
この方法ではアップグレード時の状態に戻ります。4.0 で追加・変更したアニメ、トレントの記録、設定はすべて失われます。
再び 4.0 にアップグレードすると移行がもう一度実行され、新しいバックアップは config.json.v3.bak.1 に保存されます。