コンテンツにスキップ

機能

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

バックアップ範囲

対象 保存される内容
Docker コンテナ Appdata ディレクトリに加え、コンテナ定義(イメージ、環境変数、ポート、ラベル、ボリューム)。
KVM / libvirt VM VM ディスクイメージ、XML 定義、UEFI NVRAM(グレースフルシャットダウンまたはライブスナップショット、SSH 経由)。ライブスナップショットは、スナップショットを作成できない場合に自動でグレースフルバックアップにフォールバックするため、VM バックアップが単にエラーで終わることはありません。
Unraid フラッシュ USB フラッシュ全体(/boot):OS、ライセンス、アレイ設定、共有、ネットワークおよびプラグイン設定。復元はワンクリックの .zip ダウンロードで、稼働中のフラッシュを上書きすることはありません。
アプリ設定 BombVault 自身の /config(設定データベース、オフサイトの認証情報、libvirt の SSH 鍵ペア)。SQLite の VACUUM INTO でスナップショットを取るため、WAL モードのデータベースが書き込み途中で取得されることはありません。復元はセルフ再起動で行われるため、稼働中のデータベースがオープンなハンドルの下で上書きされることはありません。
ファイルとフォルダー 名前付きのファイルセット: サーバー上の任意のフォルダー(共有、ドキュメント、写真ライブラリ)で、それぞれにセットごとの除外パターンを任意で設定できます。他のドメインと完全に同等です(スケジュール、保持、オフサイトコピー、整合性チェック、復元ドリル)。

復元

  • ワンクリックの完全復元。 スナップショットを選び、Restore をクリック。以上です。
  • ローカルまたはオフサイトから復元。 どのバックアップブラウザにも Local / Off-site スイッチがあるため、ローカルリポジトリが失われたり破損したりした場合でも、オフサイトのレプリカから直接一覧表示して復元できます。削除はソースごとです: バックアップの削除は、いま表示しているコピーにのみ影響します。
  • コンテナは自動的に再インストールされます。 コンテナ定義が Docker API に対して再生されるため、コンテナは Unraid の Docker タブに以前とまったく同じ状態で再び現れます。
  • VM は自動的に再作成されます。 XML が SSH 経由で再インポートされるため、VM はディスクと UEFI NVRAM を再アタッチした状態で VM Manager に再び現れます。VM が削除された後でも同様です。バックアップを検出は、完全に消えてしまったエントリ(たとえば新規インストール後)を再構築します。
  • 個別復元。 他に触れることなく、コンテナ 1 つ、VM 1 つ、またはファイルセット 1 つを復元します。
  • フラッシュの復元は .zip ダウンロード。 flash-<id>.zip としてブラウザにストリーミングされ、そのまま Unraid の USB クリエーターに投入できます。稼働中の /boot に触れることは一切ありません。
  • スケジュールされたフラッシュ zip エクスポート。 各フラッシュバックアップの後、任意で、スナップショットを選んだフォルダーへプレーンな .zip として書き出せます(毎回上書きされる単一の flash-latest.zip、またはローテーションする履歴)。Syncthing または rclone のフォルダーに向ければ、ブータブル USB のバックアップが自動でサーバー外に出ていきます。
  • プリフライトの競合チェック。 何かを停止または削除する前に、復元はコンテナの静的 IP と公開ホストポートが空いていることを検証し、途中で終わった復元を残す代わりに、明確なメッセージとともに中止します。
  • ファイルレベルの復元。 コンテナスナップショットの Files を展開し、絞り込み、任意の数のファイルとフォルダーにチェックを入れ、その選択を元の場所に、または選んだフォルダーへ復元します。
  • ファイルセットの復元。 ファイルセットのスナップショットを、(明示的な確認の後に)元の場所に、または選んだフォルダーへ復元します。決して黙って行いません。ここでも選択的復元が使えます。
  • 復元は実行状態を保ちます。 バックアップ時に稼働していたコンテナや VM は稼働状態で復帰し、停止していたものは停止したままです。復元後に停止したままにするにチェックを入れると、起動せずに再作成します。
  • スタック全体を復元。 同じ Docker Compose プロジェクトのコンテナは Stacks パネルにグループ化されます。Restore stack は、各メンバーを最新のバックアップから停止状態で再構築し、その後、任意で depends_on 順に起動します。
  • ライブ進捗、キャンセル、ビジー表示。 長時間の復元にはライブのパーセンテージバーが表示され、種類を認識した確認とともにキャンセルできます。キャンセルされた復元は失敗ではなくキャンセルとして記録されます。
  • ガイド付き復旧。 専用の Recovery タブが、新規インストールを災害ケースへと案内します。オフサイトと復旧を参照してください。
  • 別の BombVault リポジトリから復元。 一度限りの読み取り専用セッションで、別の BombVault インスタンスのリポジトリを、そのインスタンスの APP_KEY を使って開きます。これにより、自分の設定に触れることなく、サーバー A からサーバー B へコンテナを引き出せます。オフサイトと復旧を参照してください。

ストレージとスケジュール

  • restic による増分・重複排除バックアップ。大きな VM ディスクでもリポジトリが膨れ上がりません。
  • デスティネーション: ローカルパス、またはオフサイト。SMB/CIFS と NFS(Unraid で共有をマウントし、Backup Path をそこに向ける)、rclone なしのネイティブ restic バックエンド(s3:...rest:http://host:8000/repob2:...sftp:user@host:/repo)、または rclone:<remote>:<bucket>/path 経由の任意の rclone リモート。すべての認証情報は暗号化して保存されます。
  • SSH ターゲットは相手側に何もインストールする必要がありません。 sftp: は SSH サーバーだけを必要とするため、素の Raspberry Pi(Docker も restic もなし)がオフサイトのデスティネーションとして機能します。ホスト鍵は初回接続時に自動でピン留めされます。
  • オフサイトコピー(ローカル + リモート)。 高速なローカルバックアップを保ちつつ、ひとつ以上のオフサイトレプリカを追加します。ベストエフォート方式で restic copy により複製されます(オフサイトの不調でローカルバックアップが失敗することはありません)。各ドメインには独自のオフサイトスケジュールがあり、今すぐ複製ボタンも備わっています。
  • ドメインごとに複数のオフサイトターゲット。 各ドメイン(コンテナ、VM、フラッシュ、config、ファイルセット)は、ひとつだけでなく複数のオフサイトデスティネーションへ同時に複製できます。Off-site タブで追加のターゲットを加え、それぞれに独自のリポジトリ、S3 ストレージクラス、追記専用フラグ、保持、成長予算を設定します。既存のオフサイトコピーは最初のターゲットとして引き継がれるため、2 つ目を追加するまで何も変わりません。ドメインのすべてのターゲットは、そのドメインのオフサイトスケジュールで複製されます。
  • 手動バックアップ順序。 Containers ページのバックアップ順序パネルから、コンテナがバックアップされる正確な順序を設定します。スケジュール実行や複数選択実行はそれに従います。順序を指定しなかったコンテナは、これまでどおり最も期限超過のものから順にバックアップされ、単一コンテナのバックアップは変わりません。
  • 設定可能な保持: keep-last / 日次 / 週次 / 月次。各バックアップの後に自動で整理され、ソースごとに設定します(ローカルはバックアップパスの隣で、オフサイトは Off-site タブで。これによりオフサイトのコピーをアーカイブとして長く保てます)。
  • ドメインごとのスケジュール(日次 / 週次(複数曜日セットを含む)/ N 日ごと / 生の cron)。すべて Settings, Schedules の一か所で編集します。
  • オフサイトの帯域幅制限。 restic のアップロード/ダウンロードレートに上限を設け、複製が WAN を飽和させないようにします。
  • コールドおよびアーカイブのストレージクラス(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 の同期ユーザーが締め出されません。リカバリー定義は各リポジトリの内側に存在するため、コピーされたリポジトリフォルダーは完全に自己完結しています。

インサイト、検証、監視

  • 保護ステータス(RPO)。 ダッシュボードは、最後に成功したバックアップをそのスケジュールと比較して、ドメインごとに緑 / 黄 / 赤のインジケーターを表示します。これにより、期限超過のバックアップはログに隠れる代わりに赤くなります。
  • バックアップ健全性のヒートマップ。 GitHub のコントリビューション風のカレンダーで、ドメインごとに日ごとのバックアップ結果を表示します。コンテナ / VM / フラッシュ / Config / ファイルの切り替えつき。
  • どこにでも実行タイミング。 すべての実行履歴エントリに 開始、終了(所要時間) が表示され、各コンテナと VM はそのページに独自の 最近の実行 リストを持ちます。
  • 並べ替えられるダッシュボード。 カスタマイズモードを切り替えて、カードを好きな順序にドラッグし、不要なものを非表示にできます。レイアウトはブラウザごとに保存されます。
  • リポジトリサイズと重複排除の傾向。 ドメインごとの現在のリポジトリサイズ、重複排除率、スナップショット数を、ストレージ成長のスパークラインとともに表示します。
  • 復元検証ドリル。 BombVault は定期的にバックアップが復元可能であることを証明し(restic check --read-data-subset、範囲を限定)、ドメインごとに最終復元可能検証バッジを表示します。
  • 自己修復オペレーション。 操作の途中の再起動によって残された、証明可能な孤立 restic ロックは、自動で強制解除され、一度だけリトライされます。保持は identity-stable(項目ごとに整理され、パスやホストの変更に影響されない)で、保持の失敗は通知を送ります。
  • 暗号化キー・リカバリーキット。 マスターキー、導出された restic パスワード、そして正確なリポジトリの場所とコマンドをワンクリックでダウンロードできるため、稼働中の BombVault がなくても復元できます。オフサイトと復旧を参照してください。
  • 設定のエクスポートとインポート。 Settings ページの設定のエクスポートとインポートカードは、設定一式(ドメイン設定、オフサイトターゲット、スケジュール、保持、通知)を持ち運び可能な JSON ファイルに書き出します。これにより、新しいマシンへの移行やセットアップの複製で、すべてを手作業で入力し直す必要がなくなります。オフサイトと通知の認証情報を含めるかどうかは選べます。含めた場合、ファイルはリカバリーキットと同じくらい機密性が高くなります。インポートはプレビューを表示して確認を求め、バックアップデータや履歴に触れることは決してありません。
  • 通知。 Webhook(Discord / Slack / Gotify / ntfy)、Matrix、Healthchecks.io、メール(SMTP)、セルフホストの Apprise API サーバー、そして Unraid ネイティブの通知システム。バックアップごとのポリシー: なし / 失敗時 / 常に。多数の項目のスケジュール実行では、1 通の M 件中 N 件成功 サマリーを送れます。URL が設定されていれば、Healthchecks はライフサイクル全体(/start、その後に成功または /fail)を受け取ります。
  • Prometheus /metrics Grafana や Uptime Kuma 向けのオプトイン(デフォルトはオフ、任意の bearer トークン)。バックアップのステータス、サイズ、タイムスタンプを公開します。ラベルにシークレットやパスは含まれません。

ランサムウェア対策

  • イミュータブル(追記専用)オフサイト。 オフサイトリポジトリを追記専用としてフラグ付けすると、ランサムウェアや侵害されたホストがバックアップを削除したり書き換えたりできなくなります。相手側(--append-only モードの restic/rest-server)がそれを強制します。BombVault はそれを常に検証するだけで、設定上の主張だけで緑を表示することは決してありません。
  • 改ざんテスト。 BombVault は定期的に、オフサイトリポジトリに対して実際に削除を試みる(存在しないオブジェクトを狙う)ことで、追記専用の保証を証明します: 拒否されれば保護されており、受理されれば保護されていません。判定不能の結果が、保存された判定を覆すことはありません。
  • ガイド付きオフサイトセットアップ。 ウィザードが、バックエンドの選択から、すぐ貼り付けられる rest-server のデプロイスニペット、接続テスト、イミュータブルの切り替え、保持戦略までを案内します。
  • DR ドリル(オフサイト)。 オフサイトリポジトリから実際のターゲットを使い捨てのサンドボックスへ復元し、ファイル単位・バイト単位で検証してからクリーンアップします。オフサイトと復旧を参照してください。
  • ランサムウェア対策スコアカード。 ドメインごとに緑 / 黄 / 赤の姿勢と、経過日数を刻んだチェックリストを備えたダッシュボードカード。すべての赤い行は修正箇所へディープリンクします。検証済みの事実に基づいてのみ緑になります。
  • 成長予算アラーム。 イミュータブルなオフサイト(古いスナップショットを意図的に決して整理しない)では、サイズ予算を設定し、それが暴走する前に警告を受け取れます。
  • 受信側ダッシュボード(受信する側)。 別の BombVault からイミュータブルなオフサイトコピーを受け取るマシンでは、Receiver トグル(設定)をオンにすると Receiver タブが現れます。受信したリポジトリを読み取り専用で(送信元インスタンスの鍵で開いて)登録すると、ソースごとにグループ化されたスナップショットのインベントリ、各ソースが最後に到着した時刻を確認でき、受信側のハードウェアで独立した restic check を実行できます。設定した期間内にソースが送信を止めたとき(デッドマンズスイッチ)や、整合性チェックが失敗したときに警告します。厳密に読み取り専用のため、受信したリポジトリに書き込むことは決してなく、デフォルトはオフです。オフサイトと復旧を参照してください。

プレーンエクスポート

  • コンテナのプレーンエクスポート。 コンテナごとの Export ボタンは、リポジトリの隣に、ツール不要で閲覧できるコピーを書き出します: バックアップフォルダーの <name>.tar.gz と Unraid の <name>.xml テンプレートです。restic はエンジンのままで、これは追加の便利なコピーです。
  • VM のプレーンエクスポート。 VM にも同じ Export(プレーン tar) があります: ディスクイメージの <name>.tar.gz<name>.xml で、virsh define とディスクだけで復元でき、BombVault も restic も不要です。
  • プレーンエクスポートを暗号化(age)。 エクスポートは restic の外に置かれるため、デフォルトでは平文です。設定で age 暗号化をオンにし、ひとつ以上の受信者(age 公開鍵または SSH 公開鍵)を追加します。すると各エクスポート(コンテナと VM の .tar.gz、それらの .xml サイドカー、フラッシュ ZIP)はそれらの受信者向けに封印され、後でマシン外で対応する秘密鍵を使って復号できます。安全策として、暗号化がオンで有効な受信者が設定されていない場合、エクスポートは平文を書き込む代わりに、明確なエラーで失敗します。

その他

  • 一度に多数をバックアップ。 コンテナを複数選択して 選択をバックアップ を押します。バッチはサーバー側で実行されるため、タブを閉じたり接続を失ったりしても続行します。BombVault は自分自身のコンテナをバックアップ(したがって停止)することは決してありません。
  • スナップショットブラウザ。復元ポイントの一覧、スナップショットごとの削除、そしてファイルレベルの復元のための折りたたみ可能なフォルダーツリーを備えています。
  • ドメインごとのリポジトリメンテナンス: 検証restic check)、ロック解除(古いロックの削除)、整理(設定されている場合は保持ポリシーをオンデマンドで適用、そうでなければ単なる空き領域回収)。
  • コンテナごとの pre/post バックアップフック。 シェルコマンドがコンテナ内で実行されます(たとえばバックアップ前に mysqldump を appdata へ)。pre フックが失敗するとバックアップは中止されます。
  • バックアップ中に他のコンテナを停止し、ヘルスゲート付きで再起動。 依存するコンテナ(たとえばデータベース)を、このコンテナのバックアップ中に停止するよう指定します。その後、BombVault はそれらを Compose の depends_on 順で復帰させ、デフォルトでは、それに依存するコンテナを起動する前に、各コンテナが healthy を報告する(ヘルスチェックがなければ running を報告する)まで待機します。これにより、Pi-hole、データベース、VPN ゲートウェイのような依存先が、それを必要とするサービスより先に実際に立ち上がり、それらが connection refused に戻ることがなくなります。待機はコンテナごとのタイムアウト(デフォルト 120 秒)で上限が定められているため、遅い、あるいは決して healthy にならないコンテナが実行をハングさせることはありません。待機とタイムアウトはどちらも Settings, Schedules にあります(以前の一斉再起動に戻すには待機をオフにします)。同じ順序付き・ヘルスゲート付き再起動は、バックアップ後のイメージ更新もラップします。そのため、更新が入る日には、依存先は再作成の間ずっと停止したまま保たれ、完了後にはじめてヘルスゲート付きで復帰します。
  • コンテナごとの除外パターン。 バックアップされるボリューム内でスキップするサブディレクトリを 1 行に 1 つ列挙します。コンテナ内で見えるとおりのパスを入力します。ライブプレビューが各行の解決先を示し、何も除外しない行があれば警告します。
  • バックアップ成功後に更新(詳細、デフォルトはオフ)。 これをコンテナでオンにすると、BombVault は最新のイメージを取得して再作成します。ただし、実際により新しいイメージがある場合のみで、常に先に新しい復元ポイントが確保されます。オプションの追加機能: 更新されたコンテナごとの通知と、イメージのクリーンアップ(他のコンテナと共有されるベースイメージは決して削除されません)。更新後、BombVault は Unraid にそのコンテナの更新ステータスを再チェックするよう依頼します。そのため、Docker タブの古い update available バナーが、居座る代わりに自分で消えます(Unraid の更新は Docker API を直接通るため、そのキャッシュされたステータス、そして一部のバージョンではキャッシュされたダイジェストが、そうしなければバナーを表示し続けてしまいます)。これはベストエフォートで、バックアップに影響することは決してなく、デフォルトでオンで、設定にトグルがあります。
  • 別のフォルダーへの復元。複製や検査のために使えます。
  • スナップショットの差分とタグ。 2 つのスナップショットを比較して何が変わったかを確認し、スナップショットにタグを付けて絞り込みます。
  • 更新後の新機能。 リリースノートが新バージョンごとに一度だけポップアップします。バイナリに埋め込まれたノートから配信されるため、ダイアログはオフラインでも機能します。
  • HTTPS をデフォルトで(自己署名、またはリバースプロキシの背後に独自の証明書を持ち込み)。
  • Docker ヘルスチェック。 コンテナは自身の /api/health から healthy/unhealthy を報告するため、エンジンが動かなくなった場合に auto-heal ツールがそれを再起動できます。
  • 26 言語のダーク/ライト UI と国旗ピッカー。