機能¶
BombVault はデフォルトではシンプルで、必要なときには奥深くなります。シンプル表示 / 詳細表示 スイッチを切り替えるまで、インターフェースは基本操作だけを表示します。このページでは機能一式をグループごとに紹介します。
バックアップ範囲¶

コンテナごとにスケジュールの切り替え、バックアップ順、個別の履歴を持ちます。
| 対象 | 保存される内容 |
|---|---|
| Docker コンテナ | Appdata ディレクトリに加え、コンテナ定義(イメージ、環境変数、ポート、ラベル、ボリューム)。既定では appdata ディレクトリ全体が対象です。コンテナの フォルダーを選択 で、バックアップに含めるフォルダーを正確にチェックできます。パスの数はその場で数えられ、除外したものは一覧で表示され、ルートごとに キャッシュフォルダをスキップ(CACHEDIR.TAG)スイッチがあります。 |
| KVM / libvirt VM | VM ディスクイメージ、XML 定義、UEFI NVRAM(グレースフルシャットダウンまたはライブスナップショット、SSH 経由)。ライブスナップショットは、スナップショットを作成できない場合に自動でグレースフルバックアップにフォールバックするため、VM バックアップが単にエラーで終わることはありません。 変更ブロックのみ をオンにすると、qcow2 ディスクの稼働中 VM を libvirt のチェックポイント経由で読み取ります。バックアップは前回以降に書かれたブロックだけを読み、それでも各スナップショットは単独でディスク全体を復元できます。ZFS zvol 上のディスクは同じ SSH 接続を通じて zfs send でストリーミングされるため、ディスクが zvol の VM も 1 つの VM としてバックアップされます。パススルー vTPM の状態は、ドメイン XML がそのパスを示している場合に NVRAM の隣に保存されます。TrueNAS が Windows 11 ゲスト用に設定するエミュレート vTPM はそのパスを公開しないため、そうしたゲストの回復キーは手元に控えておいてください。VM バックアップガイドを参照してください。 |
| Unraid フラッシュ | USB フラッシュ全体(/boot):OS、ライセンス、アレイ設定、共有、ネットワークおよびプラグイン設定。復元はワンクリックの .zip ダウンロードで、稼働中のフラッシュを上書きすることはありません。 |
| アプリ設定 | BombVault 自身の /config(設定データベース、オフサイトの認証情報、libvirt の SSH 鍵ペア)。SQLite の VACUUM INTO でスナップショットを取るため、WAL モードのデータベースが書き込み途中で取得されることはありません。復元はセルフ再起動で行われるため、稼働中のデータベースがオープンなハンドルの下で上書きされることはありません。 |
| ファイルとフォルダー | 名前付きのファイルセット: サーバー上の任意のフォルダー(共有、ドキュメント、写真ライブラリ)で、それぞれにセットごとの除外パターンを任意で設定できます。他のドメインと完全に同等です(スケジュール、保持、オフサイトコピー、整合性チェック、復元ドリル)。 |
| ZFS データセット | データセットとその下にあるすべてのデータセットを、1 つの ZFS スナップショットから読み取るので、すべてが同じ瞬間のものになります。保存は restic でフォルダーと同じように行われ、重複排除され、中身を閲覧でき、ファイル単位で復元できます。新しい子データセットは自動で加わり、個別に除外でき、読み取れないものはスキップして名前を表示します。必要ならスナップショットの瞬間だけコンテナを停止したり、コマンドを実行したりできます。ボリュームは含まれません。VM のボリュームはその VM と一緒にバックアップされ、VM のないボリュームはまだバックアップされません。ZFS データセットを参照してください。 |
復元¶

ガイド付き復旧は、まっさらな環境を災害時の手順に沿って一箇所で導きます。
- ワンクリックの完全復元。 スナップショットを選び、復元をクリック。以上です。
- 項目ごとに一つのタイムライン。 コンテナ、VM、ファイルセット、フラッシュ、アプリ構成は、それらが存在するすべての場所、書き込まれるリポジトリ、そして各オフサイトターゲットにまたがる一つのタイムラインとしてバックアップを一覧表示します。オフサイトにコピーされたバックアップは一度だけ表示され、各場所が付記されます。オフサイトの場所は開いたときに読み取られ、ある場所での削除は、それが最後のコピーだったかどうかを示します。
- コンテナは自動的に再インストールされます。 コンテナ定義が Docker API に対して再生されるため、コンテナは Unraid の Docker タブに以前とまったく同じ状態で再び現れます。
- GPU、制限、リンクが戻ります。 復元したコンテナは、リソース制限、ログドライバー、DNS 設定、従来のリンク、GPU またはランタイム (
--gpus、--runtime=nvidia) を取り戻します。その GPU ドライバーやランタイムがないホストでは、復元がそれを伝え、GPU とランタイムなしで復元 を提案します。複数のコンテナや stack を復元した後も同様です。存在しないコンテナ、または復元したコンテナの起動時に停止しているコンテナへのリンクは外され、実行履歴にそのことが記録されます。 - VM は自動的に再作成されます。 XML が SSH 経由で再インポートされるため、VM はディスクと UEFI NVRAM を再アタッチした状態で VM Manager に再び現れます。VM が削除された後でも同様です。バックアップを検出は、完全に消えてしまったエントリ(たとえば新規インストール後)を再構築します。
- 個別復元。 他に触れることなく、コンテナ 1 つ、VM 1 つ、またはファイルセット 1 つを復元します。
- フラッシュの復元は
.zipダウンロード。flash-<id>.zipとしてブラウザにストリーミングされ、そのまま Unraid の USB クリエーターに投入できます。稼働中の/bootに触れることは一切ありません。 - プラグインをひとつずつ。 フラッシュのページは各フラッシュバックアップのプラグインをバージョンとサイズ付きで一覧にし、ひとつだけを稼働中のフラッシュに戻します。戻すのは
.plgファイル、config/plugins以下のフォルダー、バックアップにあるパッケージファイルです。フラッシュのほかの部分は変わりません。Unraid は次回の起動時に、または Plugins, Install Plugin からすぐにプラグインをインストールします。 - スケジュールされたフラッシュ zip エクスポート。 各フラッシュバックアップの後、任意で、スナップショットを選んだフォルダーへプレーンな
.zipとして書き出せます(毎回上書きされる単一のflash-latest.zip、またはローテーションする履歴)。Syncthing または rclone のフォルダーに向ければ、ブータブル USB のバックアップが自動でサーバー外に出ていきます。 - プリフライトの競合チェック。 何かを停止または削除する前に、復元はコンテナの静的 IP と公開ホストポートが空いていることを検証し、途中で終わった復元を残す代わりに、明確なメッセージとともに中止します。
- 復元前の確認。 復元ダイアログは最初に、リポジトリが応答するか、保存済みの鍵で開けるか、復元ポイントがあるか、復元が書き込む分の空きが復元先にあるかを確認します。失敗した確認がある間は開始がロックされ、ボタンの (i) がどれかを示します。
- 復元プラン。 確定の前に、ダイアログは復元が今の状態と比べて何をするかを示します。新しいファイル、置き換わるファイル、変わらないファイル (一覧は必要なときに表示)、そしてバックアップになく復元先に残るファイルです。コンテナーと VM では、復元で作り直す設定を動いている設定とも比べます。イメージとタグ、ポート、変数名、ボリューム、またはメモリ、vCPU、ディスク、ネットワークです。restic はファイルを読まずに、サイズと更新時刻から試行実行でこれを求めます。非常に大きなツリーは 30 秒で止まり、そう表示します。スタックの復元では、メンバーごとに確認と計画を行い、止めているメンバーの名前を示します。
- 共有フォルダー。 元の場所への復元では、書き込むフォルダーにマウントが届いているほかのコンテナーを、動作中かどうかにかかわらずすべて名前で示します。たとえば「このパスは nextcloud-db も使っています」。警告だけで、止めはしません。
- ファイルレベルの復元。 コンテナスナップショットの ファイル を展開し、絞り込み、任意の数のファイルとフォルダーにチェックを入れ、その選択を元の場所に、または選んだフォルダーへ復元します。
- ファイルセットの復元。 ファイルセットのスナップショットを、(明示的な確認の後に)元の場所に、または選んだフォルダーへ復元します。決して黙って行いません。ここでも選択的復元が使えます。
- ZFS データセットの復元。 項目内の 1 つのデータセットを元の場所へ(削除するまで残る ZFS の安全スナップショットを取ってから)、フォルダーへ、または選んだファイルだけ復元できます。バックアップ内の全データセットをフォルダーへ復元することもできます。データセットがロールバックされたり置き換えられたりすることはありません。
- 復元は実行状態を保ちます。 バックアップ時に稼働していたコンテナや VM は稼働状態で復帰し、停止していたものは停止したままです。復元後に停止したままにするにチェックを入れると、起動せずに再作成します。
- スタック全体を復元。 同じ Docker Compose プロジェクトのコンテナは スタック パネルにグループ化されます。スタックを復元… は、各メンバーを最新のバックアップから停止状態で再構築し、その後、任意で
depends_on順に起動します。 - ライブ進捗、キャンセル、ビジー表示。 長時間の復元にはライブのパーセンテージバーが表示され、種類を認識した確認とともにキャンセルできます。キャンセルされた復元は失敗ではなくキャンセルとして記録されます。
- ガイド付き復旧。 専用の リカバリー タブが、新規インストールを災害ケースへと案内します。オフサイトと復旧を参照してください。
- 別の BombVault リポジトリから復元。 一度限りの読み取り専用セッションで、別の BombVault インスタンスのリポジトリを、そのインスタンスの
APP_KEYを使って開きます。これにより、自分の設定に触れることなく、サーバー A からサーバー B へコンテナを引き出せます。オフサイトと復旧を参照してください。 - ZFS プロパティも戻ります。 ZFS のバックアップはすべて、各データセットでローカルに設定されたプロパティ(圧縮、レコードサイズ、クォータ、大文字小文字の区別など)を保存します。新しいデータセットへの復元ではそれを使って作成し、既存のデータセットへの復元では一覧を表示し、頼んだときだけ設定します。ZFS データセットを参照してください。
- Appdata.Backup プラグインから取り込む。 リカバリー ページで、プラグインのバックアップフォルダーを BombVault に指定します。コンテナのアーカイブはそれぞれ、プラグインが作成した日時の付いたそのコンテナの復元ポイントになります。取り込み済みのアーカイブは飛ばし、アーカイブそのものは読み取るだけです。復元にコンテナの定義が必要なので、先に BombVault でそのコンテナを一度バックアップしておく必要があります。保持ルールは取り込んだ復元ポイントを削除しません。不要になったものは自分で削除してください。
ストレージとスケジュール¶
- restic による増分・重複排除バックアップ。大きな VM ディスクでもリポジトリが膨れ上がりません。
- デスティネーション: ローカルパス、またはオフサイト。SMB 共有と WebDAV サーバー(Nextcloud、ownCloud、SharePoint)は、ホストへのマウントなしで 設定、クラウドアクセス、rclone のフォームから直接使えます。NFS(Unraid でエクスポートをマウントし、バックアップパスをそこに向ける)、rclone なしのネイティブ restic バックエンド(
s3:...、rest:http://host:8000/repo、sftp:user@host:/repo)、またはrclone:<remote>:<bucket>/path経由の任意の rclone リモート。すべての認証情報は暗号化して保存されます。 - SSH ターゲットは相手側に何もインストールする必要がありません。
sftp:は SSH サーバーだけを必要とするため、素の Raspberry Pi(Docker も restic もなし)がオフサイトのデスティネーションとして機能します。ホスト鍵は初回接続時に自動でピン留めされます。 - オフサイトコピー(ローカル + リモート)。 高速なローカルバックアップを保ちつつ、ひとつ以上のオフサイトレプリカを追加します。ベストエフォート方式で
restic copyにより複製されます(オフサイトの不調でローカルバックアップが失敗することはありません)。各ドメインには独自のオフサイトスケジュールがあり、今すぐ複製ボタンも備わっています。 - ドメインごとに複数のオフサイトターゲット。 各ドメイン(コンテナ、VM、フラッシュ、config、ファイルセット、ZFS データセット)は、ひとつだけでなく複数のオフサイトデスティネーションへ同時に複製できます。オフサイトページで追加のターゲットを加え、それぞれに独自のリポジトリ、S3 ストレージクラス、追記専用フラグ、保持、成長予算を設定します。既存のオフサイトコピーは最初のターゲットとして引き継がれるため、2 つ目を追加するまで何も変わりません。ドメインのすべてのターゲットは、そのドメインのオフサイトスケジュールで複製されます。
- 名前付きリポジトリ。 バックアップの保存先を 設定、ストレージ、リポジトリ に一度書き留めておきます。ローカルパスでも、独自の認証情報セットを持つ任意の restic リモートでも構いません。その後、項目のカードでそのうちの 1 つを保存先として選びます。各行にはそれを指している項目の数が表示されます。項目や配置の既定値が使っているリポジトリは、移動も削除もできません。BombVault はすでに書き込まれたバックアップを移動しないからです。
- 複数のクラウド認証情報。 共有クラウド認証情報は既定ですべての場所に適用されますが、どのデスティネーションでも代わりに名前付きの認証情報セットを選べます(設定、クラウドアクセス、追加の認証情報セット)。これにより、Hetzner の S3 バケットとローカルの Garage サーバーを、それぞれ独自のキーで並行して使えます。オフサイトターゲットや、それ自体がリモートリポジトリであるバックアップパスも同様です。
- 保存先。 オフサイトの保存先は、S3 ストレージサービス、自前の S3 サーバー、自前のサーバーと共有、rclone が対応するすべてのクラウドストレージを一覧するウィザードで一度だけ設定します。サインイン、接続テスト、フォルダー選択、そして削除に対する保護についての率直な説明が含まれます。設定した保存先は、すべてのドメインと項目にボタンとして表示されます。保存先 を参照してください。
- 項目ごとの配置。 各コンテナ、VM、ファイルセットのカードにはボタンの列があり、ローカル とオフサイトターゲットごとに一つのボタンが並び、点灯したものがバックアップを受け取ります。すでに NAS 上にある共有を、さらに B2 へ送る必要はなくなります。位置は最初のバックアップから固定され、コピー先はいつでも変更でき、カードは何か所のサイトがその項目を保持しているか、そして 3-2-1 が満たされているかを示します。項目ごとの配置 を参照してください。
- 配置の既定値。 ドメインごとの一行が、新しい項目がどこに書き込まれるか、そして独自の選択を持たない項目がどのターゲットへコピーされるかを決めます。変更してもバックアップは移動せず、どのターゲットが項目を得るか失うかを事前に示します。
- 手動バックアップ順序。 コンテナページのバックアップ順序パネルから、コンテナがバックアップされる正確な順序を設定します。スケジュール実行や複数選択実行はそれに従います。順序を指定しなかったコンテナは、これまでどおり最も期限超過のものから順にバックアップされ、単一コンテナのバックアップは変わりません。
- 設定可能な保持: keep-last / 日次 / 週次 / 月次 / 年次。各バックアップの後に自動で整理され、ソースごとに設定します(ローカルとオフサイトのどちらも 設定、保持 で。これによりオフサイトのコピーをアーカイブとして長く保てます)。各ソースは共通ルールの代わりに、ローカルとオフサイトそれぞれで独自のルールも使えます(ソースごとの保持ルール)。たとえば毎日変わるコンテナーは日次バックアップを7つ、ほとんど変わらないVMはそれより少なく保持できます。
- リポジトリごとの圧縮: オフ、自動 (restic の既定値)、最大の 3 つから、各バックアップパスと各名前付きリポジトリには 設定、ストレージ で、各オフサイト先には 設定、オフサイト で選べます。バックアップ、オフサイトコピー、整理はこの設定で書き込み、リカバリキットにも記載されるので、素の restic でも同じ方法で書き込みを続けられます。
- ドメインごとのスケジュール(日次 / 週次(複数曜日セットを含む)/ N 日ごと / 生の cron)。すべて 設定、スケジュール の一か所で編集します。コンテナ、VM、フォルダーセット、ZFS の項目は 1 つずつ独自の間隔を持つこともでき、N日ごと は復元ドリル、改ざんテスト、週次ダイジェストにも使えます。
- アプリがアイドルになるまで待つ。 コンテナーは、アプリが忙しい間、設定した時間を上限にスケジュールされたバックアップを待たせ、アプリがアイドルになった時点で開始できます。メディアサーバーはストリーミングしていないとき、その他のコンテナーは CPU とトラフィックが 設定、スケジュール の上限を数分間下回ったときにアイドルとみなします(ホストネットワークでは CPU のみ)。待機中のバックアップは理由と期限とともにアクティビティログとコンテナーに表示されます。ロックを保持しないため、他のコンテナーはそのまま進みます。手動バックアップは待ちません。同じ実行で対象になる compose スタックのメンバーは一緒に待ち、再起動後も待機は期限を保ったまま続きます。コンテナをオフにすると待機中のバックアップはすべて取り消され、スケジュールをオフにするとその実行で待たせていたものが取り消されます。時間を短くすると、すでに始まった待機も短くなります。
- オフサイトの帯域幅制限。 restic のアップロード/ダウンロードレートに上限を設け、複製が WAN を飽和させないようにします。
- ストリーミング優先。 Plex、Jellyfin、Emby などのメディアサーバーがストリーミングしている間、オフサイトコピーは低い制限でアップロードし、ストリーム終了の数分後に通常の制限へ戻ります。BombVault はメディアサーバーの送信トラフィックを Docker から読み取ります。REST、S3、B2、Azure、Google Cloud、Swift と HTTP 経由の rclone はコピーの途中で減速し、SFTP とローカルまたはマウントされたフォルダーは次のコピーステップで低い制限になります。ホストネットワーク上のメディアサーバーは測定できません。設定、オフサイト にあります。
- コールドおよびアーカイブのストレージクラス(S3)。 ネイティブ S3 のオフサイトリポジトリでは、ストレージクラスを選べます。復元可能な階層(Standard、Standard-IA、One Zone-IA、Intelligent-Tiering、Glacier Instant Retrieval)に限定されているため、アーカイブ料金が黙って復元を壊すことはありません。まず非同期の解凍が必要なディープアーカイブ階層(Glacier Flexible、Deep Archive)は意図的に除外しています。ネイティブ S3 バックエンドのみが対象です。rclone リモートはそのクラスを rclone 設定で指定します。
- バックアップフォルダーはマシン外へコピー可能なまま。 各バックアップの後、BombVault はローカルリポジトリツリーを、ディレクトリ
0755/ ファイル0644に緩めます(リポジトリは暗号化されているため何も露出しません)。これにより、SMB 経由の非 root の同期ユーザーが締め出されません。リカバリー定義は各リポジトリの内側に存在するため、コピーされたリポジトリフォルダーは完全に自己完結しています。
インサイト、検証、監視¶
- カードから一時停止。 コンテナ、VM、フォルダーセットのどのカードにも スケジュールを一時停止 があり、その項目をスケジュールと全体バックアップから外します。スケジュールを再開 で元に戻せます。スケジュールに含める と同じスイッチを操作するため、2 つは常に一致します。一時停止中の項目には灰色の スケジュール停止中 バッジが付き、今すぐバックアップ は引き続き使えます。
- 保護ステータス(RPO)。 ダッシュボードは、最後に成功したバックアップをそのスケジュールと比較して、ドメインごとに緑 / 黄 / 赤のインジケーターを表示します。これにより、期限超過のバックアップはログに隠れる代わりに赤くなります。
- バックアップ健全性のヒートマップ。 GitHub のコントリビューション風のカレンダーで、ドメインごとに日ごとのバックアップ結果を表示します。コンテナ / VM / フラッシュ / セルフバックアップ / フォルダーの切り替えつき。
- どこにでも実行タイミング。 すべての実行履歴エントリに
開始、終了(所要時間)が表示され、各コンテナと VM はそのページに独自の 最近の実行 リストを持ちます。 - 並べ替えられるダッシュボード。 カスタマイズモードを切り替えて、カードを好きな順序にドラッグし、不要なものを非表示にできます。レイアウトはブラウザごとに保存されます。
- リポジトリサイズと重複排除の傾向。 ドメインごとの現在のリポジトリサイズ、重複排除率、スナップショット数を、ストレージ成長のスパークラインとともに表示します。
- 復元検証ドリル。 BombVault は定期的にバックアップが復元可能であることを証明し(
restic check --read-data-subset、範囲を限定)、ドメインごとに復元可能と検証済みバッジを表示します。 - 最初のバックアップ後の復元チェック。 アイテムの最初のバックアップが終わると、BombVault はその一部(最大 100 ファイル、256 MiB)を復元フォルダー内の一時フォルダーに復元し、restic に各ファイルをハッシュと照合して読み戻させ、サイズをバックアップと比較します。VM ディスクのようにサンプルに収まらない大きなファイルは、代わりに先頭 64 MiB を読み戻します。結果はアイテムのカードに表示され、失敗は通知で届きます。復元を確認 を押すと、いつでも最新のバックアップで同じチェックを実行できます。以降のバックアップでは繰り返しません。
- 起動テスト。 バイトが正しくても、アプリが再び動くとは限りません。コンテナーのカードの 起動テスト は、最新のバックアップを隔離コピーとして復元して起動します。名前は
bombvault-test-で始まり、公開ポートも LAN への経路もない専用の内部 Docker ネットワーク、CPU 1 個とメモリー 2 GiB、データは復元フォルダー内の一時フォルダーに置かれます。コンテナーのヘルスチェックが正常を報告すれば合格、ヘルスチェックがなければ最初の公開ポートがそのネットワーク内から応答すれば合格、どちらもなければ動作し続ければ合格です。元のコンテナーは停止も変更もされず、コピーとそのネットワーク、データはテスト後に削除されます。テスト途中で BombVault が再起動した場合も同じです。ホストネットワーク上のもの、特権モードのもの、デバイスを使うもの、別のコンテナーが必要なものはテスト不可と表示されます。スケジュールされた復元チェックで 起動テスト をオンにすると、実行ごとに 1 つのコンテナーを、最もテストされていないものから順にテストします。結果はカードとダッシュボードに表示されます。コピーには元のコンテナのラベルが一切付かず、元のコンテナが追加している capabilities、セキュリティオプション、sysctl、cgroup parent なしで動きます。それらが必要なコンテナはテストに失敗し、結果にはコピーに何がなかったかが表示されます。 - 自己修復オペレーション。 操作の途中の再起動によって残された、証明可能な孤立 restic ロックは、自動で強制解除され、一度だけリトライされます。保持は identity-stable(項目ごとに整理され、パスやホストの変更に影響されない)で、保持の失敗は通知を送ります。
- フォルダースキャンでは見えない警告。 除外アシスタントはサイズの問いに答えます。けれども最も高くつくバックアップの失敗のいくつかはサイズの問題ではないため、アプリケーションがデータをどう保存しているかについて、アプリ固有の注意書きも備えています。その目的となった例が Immich です。Immich はすべての写真のアルバム、顔、日付を別のコンテナで動く PostgreSQL データベースに保存しているため、Immich コンテナをファイルレベルでバックアップすると、それらを一切含まないまま写真だけが復元され、しかも復元は成功したように見えます。この警告は除外の提案があるかどうかにかかわらず表示され、スキャン対象が何も選ばれていないコンテナでも表示されます。注意書きはどちらの場合でも当てはまるからです。
- 未バックアップ(カバレッジ)。 サーバー上で自動バックアップの対象になっていないものをすべて、それぞれの理由とともに挙げるダッシュボードカードです。理由は、BombVault にまったく追加されていない、存在はするがスケジュールに含まれていない、自身のスケジュールがオフになっている、どこでもスケジュールがオンになっていない、のいずれかです。その上にある保護インジケーターは別の問い、つまりスケジュールされているバックアップが時間どおりに実行されたかに答えるもので、誰も設定しなかったコンテナは見えません。そのコンテナはどの一覧にもどのエラーにも現れないため、何も黄色になりません。コンテナは BombVault 自身の行ではなく Docker のライブ一覧から読み取ります。行のない項目こそ名前を挙げる必要があるものだからです。オフにしたバックアップの種類は、あなたが選んだことなので、数に一切含まれません。
- 保持のプレビュー。 保持設定の横にあるパネルが、次の実行で削除されるものを、実際に削除される前に表示します。リポジトリごと、項目ごとに、復元ポイントを名前で示します。リポジトリのロックを取らず何も変更しないため、バックアップの実行中でも答えます。保持がオフのときは空の一覧ではなくそう表示し、追記専用のリポジトリはその旨を示し(そこでは保持は一切実行されません)、到達できなかったリポジトリは黙って抜け落ちるのではなく名前で示されます。設定、保持 にあり、ローカルとオフサイトの両方のポリシーについて、それぞれ自分の分をプレビューします。
- 異常。 コンテナ、VM、フォルダーセット、データベースダンプ、フラッシュドライブ、セルフバックアップのバックアップを、毎回その項目自身の履歴と比べます。チェックの対象は次のとおりです。実行で保存された新しいデータ量を、最近のバックアップで普段いちばん多い量と普段の 1 時間あたりのペースと比べたもの。データの大部分を保存し直したバックアップ (名前を変えて書き換えたファイルも含みます)。restic が項目ごと、ダンプごとに報告するソースのサイズとファイル数。restic 自身のバックアップ時間。失敗の連続と散発的な失敗。通らなくなったリストアチェック。そしてローカル、SFTP、rclone のリポジトリの空き容量で、これはリポジトリの増え方から予測します。項目は最初の 10 回のバックアップから学習しますが、ほぼ空のソース、データの大部分の書き換え、失敗は最初からチェックします。アップデート時には restic 0.17 が保存しているスナップショットの概要から履歴を一度読み込むので、既存の環境がゼロから始まることはありません。感度 (厳しめ、標準、緩め) と、通知を送る最低の重大度は 設定、整合性 で全体に設定し、項目ごとに変えられます。警告は原因がなくなると自動で閉じます。失われたデータと埋まりつつあるディスクについての重大な検出結果は確認済みにするまで残り、確認済みの検出結果は、その原因が一度なくなるまで再び報告されません。想定どおりと印を付ける を使うと 10 回のバックアップの後に新しい水準が普通になりますが、ほぼ空のソースのチェックは決してオフになりません。また選択を変えると、項目の履歴は自動でやり直しになります。ソースがほぼ空になった、大きく縮んだ、またはバックアップがデータの大部分を保存し直した間は、検出結果を確認済みにするか想定どおりと印を付けるまで、保持ポリシーはその項目の古いバックアップを残し、検出結果は最後の正常なバックアップへリンクします。通知は 1 つの出来事につき 1 回だけ送られ、すでに自分で通知する失敗やリストアチェックが二重に報告されることはありません。できないこと: S3、B2、REST のリポジトリには空き容量の値がありません。Unraid のユーザー共有ではアレイ全体の空き容量になります。restic 0.17 より前のバックアップにはサイズの履歴がありません。ZFS 項目もデータセットごとに調べます。ツリーの各データセットはそれぞれの履歴を持ち、空になったデータセットや読めなくなったデータセットはデータの喪失として扱われ、そのデータセットの古いバックアップだけが保持されます。 ZFS 項目をデータセットごとに見守る仕組みは ZFS データセット で説明しています。アシスタントは MCP サーバー を通じて未対応の異常を読み取れます。 ソースのサイズやファイル数に関する検出は、それが最初に現れたバックアップの日時で示されます。前のバックアップと比較 は、ファイルが消えた、増えた、変わったフォルダーを一覧にし、そのほぼすべてがアプリが自分で作り直す検索インデックス、キャッシュ、サムネイルにある場合は注記を付けます。
- アプリごとのおすすめ除外。 よく知られたイメージ(Plex、Jellyfin、Emby、Sonarr、Radarr、Lidarr、Readarr、Prowlarr、Immich、Nextcloud、PhotoPrism、Tautulli。linuxserver、hotio、binhex、公式の各版)では、除外アシスタントがアプリ自身で作り直すフォルダー(キャッシュ、ログ、プレビュー画像、ポスター)を提案します。各項目は中身を説明し、どれでもオフにでき、選択したものを除外 を押すまで何も除外されません。
- サポートバンドル。 バグ報告用の、ワンクリックで作れる伏せ字済みの ZIP です。ホスト連携チェック、すべてのシークレットを除いた設定、最近の実行、次に予定されているもの、最近のログを含みます。さらに各データベースの最後のダンプの結果、コンテナから見えるマウントを添えた ZFS 項目、未対応の異常、MCP キーの数(名前は決して含みません)も入ります。パスワード、トークン、rclone の設定、通知の認証情報、リポジトリの場所に埋め込まれたパスワードはすべて取り除かれ、バンドル自身のマニフェストにもそう記されます。サポート用のファイルが設定のバックアップと取り違えられてはならないからです。同じ理由で、リカバリーキットと同様にログインパスワードが必要です。含まれるログは、このコンテナが最後に起動してからの出力です。コンテナが再起動したクラッシュについては、引き続き
docker logsを見てください。 - 暗号化キー・リカバリーキット。 マスターキー、導出された restic パスワード、そして正確なリポジトリの場所とコマンドをワンクリックでダウンロードできるため、稼働中の BombVault がなくても復元できます。オフサイトと復旧を参照してください。
- 設定のエクスポートとインポート。 設定、システム ページの設定のエクスポート / インポートカードは、設定一式(ドメイン設定、オフサイトターゲット、スケジュール、保持、通知)を持ち運び可能な JSON ファイルに書き出します。これにより、新しいマシンへの移行やセットアップの複製で、すべてを手作業で入力し直す必要がなくなります。オフサイトと通知の認証情報を含めるかどうかは選べます。含めた場合、ファイルはリカバリーキットと同じくらい機密性が高くなります。インポートはプレビューを表示して確認を求め、バックアップデータや履歴に触れることは決してありません。
- 通知。 Webhook(Discord / Slack / Gotify / ntfy)、Matrix、Healthchecks.io、メール(SMTP)、セルフホストの Apprise API サーバー、そして Unraid ネイティブの通知システム。バックアップごとのポリシー: なし / 失敗時 / 常に。多数の項目のスケジュール実行では、1 通の M 件中 N 件成功 サマリーを送れます。URL が設定されていれば、Healthchecks はライフサイクル全体(
/start、その後に成功または/fail)を受け取ります。 - 週次ダイジェスト。 同じチャネルを通じて、週に 1 通のメッセージを送ります。実行回数、新たに届いたバックアップデータの量、オフサイトが最新かどうか、主な失敗が含まれます。既定はオフで、設定、通知 に独自の間隔があります。何もなかった週も、そのことが 1 通で報告されます。
- Prometheus
/metrics。 Grafana や Uptime Kuma 向けのオプトイン(デフォルトはオフ、任意の bearer トークン)。バックアップのステータス、サイズ、タイムスタンプを公開します。ラベルにシークレットやパスは含まれません。 - HTTP API、Home Assistant、mDNS。 スクリプトやダッシュボード向けに、名前付きトークンで使う
/api/v1の API があります。トークンは読み取り専用にも、バックアップの開始を許可するようにもできます。Home Assistant は MQTT ディスカバリーで BombVault を見つけ、センサーを持つデバイスとして、許可すればドメインごとのバックアップボタンも付けて登録します。また BombVault はネットワーク上でbombvault.localとして自身を告知します。API と連携を参照してください。 - 空き容量と満杯までの週数。 ローカルリポジトリ、SFTP リポジトリ、そして空き容量を報告する SMB や WebDAV のデスティネーションでは、空き容量と、現在の増加ペースであと何週間もつかが表示されます。S3、B2、REST のリポジトリでは「空き容量は不明」と表示されます。これらのバックエンドは空き容量を報告しないためです。
- フォルダー別のサイズ。 コンテナ、VM、フォルダーセットの「バックアップ」欄にある フォルダー別のサイズ は、最新のバックアップで容量を使っているフォルダーとファイル、そのうち直近のバックアップで新規または変更として追加された量を、1 階層ずつ表示します。BombVault はファイルを読まずにリポジトリーのインデックスから読み取り、一度開いた後はバックアップのたびに更新します。
- バックアップが遅かった理由。 バックアップの実行中、BombVault は CPU、ディスク、ネットワークの使用率を見ています。バックアップがいつもよりかなり長くかかり、ひとつのものが明らかに限界だった場合、実行記録にそれが表示されます。たとえば「保存先ディスク disk1 の使用率は 98% でした」や「BombVault はコンテナーの CPU 上限の 100% を使っていました」です。それ以外の場合は何も表示しません。
- 前回のバックアップ後に変更。 前回のバックアップ後に別のイメージ、ポート、変数、ボリュームで作り直されたコンテナには、名前の横に印が付きます。その (i) は変更点を一覧にし、変数は名前だけを示します。これは通知にすぎず、次のバックアップで消えます。
ランサムウェア対策¶
- イミュータブル(追記専用)オフサイト。 オフサイトリポジトリを追記専用としてフラグ付けすると、ランサムウェアや侵害されたホストがバックアップを削除したり書き換えたりできなくなります。相手側(
--append-onlyモードのrestic/rest-server)がそれを強制します。BombVault はそれを常に検証するだけで、設定上の主張だけで緑を表示することは決してありません。 - 改ざんテスト。 BombVault は定期的に、オフサイトリポジトリに対して実際に削除を試みる(存在しないオブジェクトを狙う)ことで、追記専用の保証を証明します: 拒否されれば保護されており、受理されれば保護されていません。判定不能の結果が、保存された判定を覆すことはありません。
- ガイド付きオフサイトセットアップ。 ウィザードが、バックエンドの選択から、すぐ貼り付けられる rest-server のデプロイスニペット、接続テスト、イミュータブルの切り替え、保持戦略までを案内します。
- DR ドリル(オフサイト)。 オフサイトリポジトリから実際のターゲットを使い捨てのサンドボックスへ復元し、ファイル単位・バイト単位で検証してからクリーンアップします。オフサイトと復旧を参照してください。
- ランサムウェア対策スコアカード。 ドメインごとに緑 / 黄 / 赤の姿勢と、経過日数を刻んだチェックリストを備えたダッシュボードカード。すべての赤い行は修正箇所へディープリンクします。検証済みの事実に基づいてのみ緑になります。
- 成長予算アラーム。 イミュータブルなオフサイト(古いスナップショットを意図的に決して整理しない)では、サイズ予算を設定し、それが暴走する前に警告を受け取れます。
- フレーズによるペアリング。 インスタンスは 12 個の単語で 1 つのグループに参加します。1 台でフレーズを作成し、次の 1 台でそれを入力します。同じネットワーク上のメンバーは直接通信し、それ以外はリレー(プロジェクトのリレー、自分のリレー、またはリレーなし)を経由します。メンバー間のすべての通信はエンドツーエンドで暗号化されます。グループはインスタンスページのスコアカード、Mesh のオフサイト提案、そしてレシーバーや取得元が必要とするものを運びますが、バックアップデータと APP_KEY は決して運びません。オフサイトと復旧を参照してください。
- インスタンスページ。 設定で インスタンス をオンにすると、グループ内のすべてのインスタンス(このインスタンスを含む)のカードが並ぶページが使えます。各カードには、アドレス、接続しているかどうか、ドメインごとの保護状態と最後のバックアップが、ローカルのダッシュボードと同じ赤、黄、緑で表示されます。今すぐチェック を押すと、メンバーにドメイン 1 つのリポジトリの検証を依頼します。このページから、別のマシンでバックアップ、復元、削除を始めることはできません。
- Mesh オフサイト。 メンバーは自分のオフサイトストレージを、グループを通じて別のメンバーに提供できます。相手の管理者はインスタンスページでその提案を確認し、受け入れるか断ります。受け入れると、通常の認証情報セットとオフサイトターゲットが作成されます。この経路で送られるのは接続情報だけで、バックアップデータは送られません。
- 受信側ダッシュボード(受信する側)。 別の BombVault からイミュータブルなオフサイトコピーを受け取るマシンでは、レシーバー トグル(設定)をオンにすると レシーバー タブが現れます。受信したリポジトリを読み取り専用で(送信元インスタンスの restic パスワードで開き、それはペアリンググループ経由で届きます)登録すると、ソースごとにグループ化されたスナップショットのインベントリ、各ソースが最後に到着した時刻を確認でき、受信側のハードウェアで独立した
restic checkを実行できます。設定した期間内にソースが送信を止めたとき(デッドマンズスイッチ)や、整合性チェックが失敗したときに警告します。厳密に読み取り専用のため、受信したリポジトリに書き込むことは決してなく、デフォルトはオフです。オフサイトと復旧を参照してください。 - 他のインスタンスからの取得(取得側)。 オフサイト複製の鏡像です。このマシンがスナップショットを外へ押し出す代わりに、他の誰かのものを引き込みます。取得 トグル(設定)をオンにすると インスタンス ページの 取得 タブが現れます。ペアリンググループから相手のインスタンスとそのリポジトリの場所を選び、次にどの種類のバックアップを保持しているか、どのくらいの頻度で取得するかを選びます。相手の restic パスワードはグループ経由で届き、APP_KEY が届くことは決してありません。相手側にはこれ以上設定することがなく、稼働している必要もありません。ソースリポジトリは読み取られるだけです。パスワードを確認するために開かれ、一覧表示され、コピーの元として名付けられるだけで、初期化、ロック解除、整理、書き込みが行われることは決してありません。双方が自分の認証情報を保持し、
rclone:ソースは、rclone がこのインスタンスの remote でそこへ到達してしまうため拒否されます。オフサイトと復旧を参照してください。
プレーンエクスポート¶
- コンテナのプレーンエクスポート。 コンテナごとの エクスポート (プレーン tar) ボタンは、リポジトリの隣に、ツール不要で閲覧できるコピーを書き出します: バックアップフォルダーの
<name>.tar.gzと Unraid の<name>.xmlテンプレートです。restic はエンジンのままで、これは追加の便利なコピーです。 - VM のプレーンエクスポート。 VM にも同じ エクスポート (プレーン tar) があります: ディスクイメージの
<name>.tar.gzと<name>.xmlで、virsh defineとディスクだけで復元でき、BombVault も restic も不要です。 - プレーンエクスポートを暗号化(age)。 エクスポートは restic の外に置かれるため、デフォルトでは平文です。設定で age 暗号化をオンにし、ひとつ以上の受信者(age 公開鍵または SSH 公開鍵)を追加します。すると各エクスポート(コンテナと VM の
.tar.gz、それらの.xmlサイドカー、フラッシュ ZIP)はそれらの受信者向けに封印され、後でマシン外で対応する秘密鍵を使って復号できます。安全策として、暗号化がオンで有効な受信者が設定されていない場合、エクスポートは平文を書き込む代わりに、明確なエラーで失敗します。 - リカバリーキットも封印されます。 同じ設定がオンなら、キットは
bombvault-recovery-kit.md.ageとしてダウンロードされます。バイナリではなく ASCII アーマー形式なので、プレーンな読めるテキストのままです。パスワードマネージャーに貼り付けたり印刷したりでき、それこそがキットの用途です。同じ安全策が適用されるため、暗号化がオンで使える受信者がない場合は、マスターキーを平文で渡すことに戻らず、ダウンロードを拒否します。これをオンにするときに正しく押さえておくべき点が 1 つあります。キットを開くには age の秘密鍵が必要なので、その鍵はキット自体に依存しない場所に保管してください。
AI アシスタント (MCP)¶
BombVault には MCP サーバーが組み込まれており、Claude Code や Claude Desktop などのアシスタントがバックアップの状態、カバレッジ、実行履歴、復元ポイント、実行中のアクティビティを読み取れます。許可されたキーがあれば、アシスタントは 1 つの項目、1 つのドメイン、またはすべてのバックアップを開始し、自分で開始したバックアップをキャンセルすることもできます。復元、削除、prune、設定は Web インターフェースに残ります。クライアントごとに 設定、連携、MCP サーバー で専用のキーを作成します。キーは一度だけ表示され、指紋としてだけ保存され、いつでも名前の変更、交換、取り消しができます。開始は 1 時間あたりと項目ごとに制限され、保持ガードによって、アシスタントのバックアップが「最新 N 個を保持」のポリシーからあなた自身の復元ポイントを押し出すことはありません。アシスタントが開始した実行には、キー名とともに「MCP 経由」と表示されます。MCP サーバー を参照してください。 データベースのダンプと ZFS データセット も、アシスタントが読み取れる項目と復元ポイントに含まれ、BombVault が見つけた異常も一覧できます。
アプリと関連ツール¶
- Android アプリ。 グループ内のすべてのサーバーをスマートフォンで扱え、全サーバーのアクティビティログを 1 つの画面で見られます。QR コードでグループとペアリングし、各サーバーをサインイン済みの状態で開きます。Android アプリを参照してください。
- 受信サーバー。 オフサイトコピーを受信するマシンは、ワンクリックで追記専用の rest-server を起動し、グループのほかのインスタンスに提供できます。ログインはインスタンスごとに別々です。受信サーバー を参照してください。
- 設定、アプリ。 最初に Android アプリのカードがあり、サーバーが動かしているリリースの APK とその QR コードを入手できます。続いて関連ツールごとのカードが並ぶページです。ParleyPort のカードでは、Unraid テンプレートを入手し、ParleyPort を起動する Docker コマンドをコピーでき、そのリポジトリとペアリングのリレー設定へ移動できます。BombVault Widget のカードでは、テンプレートとリポジトリを入手でき、ホスト SSH 接続を通じてプラグインをインストールまたは削除します。
- BombVault Widget。 Unraid のダッシュボードに置くタイルで、BombVault のアクティビティログと次に予定された実行を表示します。ホスト SSH 接続がない場合、カードは Plugins, Install Plugin でインストールするための
.plgアドレスを示します。プラグインは、ほかのプラグインと同じようにそこから削除できます。 - 埋め込み可能なアクティビティログ。 設定、連携 で読み取り専用トークンを生成すると、Homepage、Organizr、Heimdall など iframe を表示できるダッシュボード用のアドレスが得られます。ライブのアクティビティログだけを表示する小さなページです。トークンで見られるのはそのログだけで、無効化 を押すとすぐに取り消されます。埋め込みページは英語のみです。
その他¶
- 実行中のバックアップを止める。 バックアップを開始できるカードには、実行中、進捗バーの横に バックアップを中止 ボタンがあります。その実行は失敗ではなくキャンセルとして記録されます。restic はスナップショットを最後に書き込むため、中断された実行には参照されないデータが残るだけでスナップショットはできず、止めても安全です。
- 一度に多数をバックアップ。 コンテナを複数選択して 選択をバックアップ を押します。バッチはサーバー側で実行されるため、タブを閉じたり接続を失ったりしても続行します。BombVault は自分自身のコンテナをバックアップ(したがって停止)することは決してありません。
- スナップショットブラウザ。復元ポイントの一覧、スナップショットごとの削除、そしてファイルレベルの復元のための折りたたみ可能なフォルダーツリーを備えています。
- ドメインごとのリポジトリメンテナンス: 検証(
restic check)、ロック解除(古いロックの削除)、整理(設定されている場合は保持ポリシーをオンデマンドで適用、そうでなければ単なる空き領域回収)。 - 検証、復元チェック、整理の進捗。 いずれかの実行中は、アクティビティログと整合性カードに restic の数えた進み具合(例:47 パック中 12)が表示され、見積もれるだけのデータがそろうと、その段階の残り時間も表示されます。restic はここでバイトではなくパック、スナップショット、インデックスファイルを数えるため、バーもそれを示します。最初の数値が出るまではバーが数値なしで動きます。
- データベースの自動ダンプ。 認識された PostgreSQL、MySQL、MariaDB のコンテナ(公式イメージ、PostGIS、TimescaleDB、pgvector、pgautoupgrade、Immich のデータベースイメージ、linuxserver、yobasystems、jc21 の MariaDB、そして Oracle の mysql-server)は、各バックアップの前に稼働中のサーバーからダンプされます。データベースに似ているだけのコンテナにも同じ選択肢がカードに出ますが、あなたが選ぶまではオフのままです。ダンプはリポジトリへ直接流れ込み、ファイルのバックアップと並ぶ独立した復元ポイントになります。ディスクに書かれることはありません。認証情報はコンテナ自身の変数(
*_FILEのシークレットを含む)から取られ、コンテナの外には出ません。各カードは、データベースのデータフォルダーがコンテナ停止中に保存されるのか、稼働中にコピーされるのか、まったく保存されないのかを示します。ダンプが失敗してもバックアップは失敗しません。理由と対処のヒントを添えた失敗した実行として現れ、通知を送ります。ダンプが自動で戻されることはありません。ダウンロード(そのまま、または圧縮して)、フォルダーへの保存、起動したての空のデータベースへのワンクリック取り込み、restic の CLI での取り出しができます。コンテナごとに、ラベルbombvault.dbdump=falseで、あるいは設定で全コンテナまとめてオフにできます。 異常検知は各ダンプのサイズも見守ります。アシスタントは MCP サーバー を通じてコンテナのダンプを一覧できます。 - コンテナごとの pre/post バックアップフック。 シェルコマンドがコンテナ内で実行されます(たとえばキャッシュをディスクへ書き出す)。pre フックが失敗するとバックアップは中止されます。認識されたデータベースは自動でダンプされるため、そのためのフックは不要です。
- バックアップ中に他のコンテナを停止し、ヘルスゲート付きで再起動。 依存するコンテナ(たとえばデータベース)を、このコンテナのバックアップ中に停止するよう指定します。その後、BombVault はそれらを Compose の
depends_on順で復帰させ、デフォルトでは、それに依存するコンテナを起動する前に、各コンテナが healthy を報告する(ヘルスチェックがなければ running を報告する)まで待機します。これにより、Pi-hole、データベース、VPN ゲートウェイのような依存先が、それを必要とするサービスより先に実際に立ち上がり、それらが connection refused に戻ることがなくなります。待機はコンテナごとのタイムアウト(デフォルト 120 秒)で上限が定められているため、遅い、あるいは決して healthy にならないコンテナが実行をハングさせることはありません。待機とタイムアウトはどちらも 設定、コンテナ にあります(以前の一斉再起動に戻すには待機をオフにします)。同じ順序付き・ヘルスゲート付き再起動は、バックアップ後のイメージ更新もラップします。そのため、更新が入る日には、依存先は再作成の間ずっと停止したまま保たれ、完了後にはじめてヘルスゲート付きで復帰します。 - コンテナごとの除外パターン。 バックアップされるボリューム内でスキップするサブディレクトリを 1 行に 1 つ列挙します。コンテナ内で見えるとおりのパスを入力します。ライブプレビューが各行の解決先を示し、何も除外しない行があれば警告します。
- バックアップ成功後に更新(詳細、デフォルトはオフ)。 これをコンテナでオンにすると、BombVault は最新のイメージを取得して再作成します。ただし、実際により新しいイメージがある場合のみで、常に先に新しい復元ポイントが確保されます。オプションの追加機能: 更新されたコンテナごとの通知と、イメージのクリーンアップ(他のコンテナと共有されるベースイメージは決して削除されません)。更新後、BombVault は Unraid にそのコンテナの更新ステータスを再チェックするよう依頼します。そのため、Docker タブの古い update available バナーが、居座る代わりに自分で消えます(Unraid の更新は Docker API を直接通るため、そのキャッシュされたステータス、そして一部のバージョンではキャッシュされたダイジェストが、そうしなければバナーを表示し続けてしまいます)。これはベストエフォートで、バックアップに影響することは決してなく、デフォルトでオンで、設定にトグルがあります。
- 別のフォルダーへの復元。複製や検査のために使えます。
- スナップショットの差分とタグ。 2 つのスナップショットを比較して何が変わったかを確認し、スナップショットにタグを付けて絞り込みます。
- 更新後の新機能。 リリースノートが新バージョンごとに一度だけポップアップします。バイナリに埋め込まれたノートから配信されるため、ダイアログはオフラインでも機能します。
- HTTPS をデフォルトで(自己署名、またはリバースプロキシの背後に独自の証明書を持ち込み)。
- Docker ヘルスチェック。 コンテナは自身の
/api/healthから healthy/unhealthy を報告するため、エンジンが動かなくなった場合に auto-heal ツールがそれを再起動できます。 - 42 言語のダーク/ライト UI と国旗ピッカー。
- 設定は自動で保存されます。 スイッチを切り替えるか入力欄から離れると、変更はすぐに書き込まれます。操作部品が短く光り、サーバーが拒否した場合は揺れます。保存ボタンが残っているのは、途中まで保存すると危険な 3 か所だけです。rclone の設定ボックス、認証情報セットの編集画面、ログインパスワードです。
- ポップアップを控えめにする。 設定、一般 で定型の確認メッセージをミュートでき、失敗だけが引き続き表示されます。この設定はブラウザごとで、通知には影響しません。
- 見た目を好みに合わせる。 設定、外観 では、色(アクセントカラー 1 色、または 8 色のパレットを使うレインボーモード)、角(丸め、やや丸め、角ばった)、アニメーション(オフ、控えめ、ワイルド、嵐)を設定でき、ブラウザごとに記憶されます。システムが動きを減らすよう求めている場合は、常にそちらが優先されます。