BombVault¶
Unraid のデータを、金庫に封印。バックアップを投げ込み、復元を起爆する。
BombVault は、Docker コンテナと KVM/libvirt VM のバックアップと完全な災害復旧のための、セルフホスト型で Unraid ネイティブな Web アプリです。単一のマルチアーキテクチャ Docker コンテナとして動作し、システムのライト/ダークの設定に自動で追従するモダンな Web UI を備え、バックアップ、スケジュール設定、検証、復元というライフサイクル全体を扱います。
復元は自動です。コンテナは Unraid の Docker タブに以前とまったく同じ状態で再び現れ、VM はディスクと UEFI NVRAM を再アタッチした状態で VM Manager に再定義されます。手動での再インストールも、再設定も、面倒もありません。
restic を基盤としているため、すべてのバックアップは重複排除され、増分方式で、常に暗号化されています。
APP_KEY は安全に保管してください
BombVault は、APP_KEY という名前の 32 バイトのシークレットから restic リポジトリのパスワードを導出します。これを失うと、暗号化されたバックアップは復元不能になります。openssl rand -hex 32 で生成し、安全な場所に保管してください。設定を参照してください。
BombVault が保護するもの¶
| ドメイン | 保存される内容 |
|---|---|
| Docker コンテナ | Appdata ディレクトリに加え、コンテナ定義(イメージ、環境変数、ポート、ラベル、ボリューム)。 |
| KVM / libvirt VM | VM ディスクイメージ、XML 定義、UEFI NVRAM を、SSH 経由でバックアップ(libvirt のマウントなし)。 |
| Unraid フラッシュ | USB フラッシュ全体(/boot):OS、ライセンス、アレイ設定、共有、ネットワークおよびプラグイン設定。 |
| アプリ設定 | BombVault 自身の /config:設定データベース、オフサイトの認証情報、libvirt の SSH 鍵ペア。 |
| ファイルとフォルダー | 名前付きのファイルセット。サーバー上の任意のフォルダーで、それぞれにセットごとの除外パターンを任意で設定できます。 |
| ZFS データセット | データセットとその下のすべてのデータセットを 1 つの ZFS スナップショットから読み取り、フォルダーと同じように保存します。ZFS データセットを参照してください。 |
復元こそが主役¶
restic スナップショットからデータを書き戻したあと、BombVault は保存されたコンテナ定義を Docker API に対して再生します。そのため、コンテナは最初からそこにあったかのように Unraid の Docker タブに再び現れます(同じイメージ、同じ設定、同じポートマッピング)。VM は XML が SSH 経由で再定義され、ディスクと UEFI NVRAM が再アタッチされます。VM が削除された後でも同様です。
バックアップが依存するコンテナを停止した場合でも、正しい順序で復帰します。BombVault はそれらを Compose の depends_on 順で再起動し、それに依存するコンテナを起動する前に、各コンテナが healthy を報告するまで待機します。そのため、まだ立ち上がっていないデータベースやゲートウェイを追い越して起動してしまうことはありません。機能を参照してください。
仕組み¶
Browser --HTTPS--> BombVault container
|- Go binary: JSON API + embedded React UI
|- Background worker (per-domain scheduler + job executor)
|
|- /var/run/docker.sock -> Docker API (container stop/inspect/recreate)
|- qemu+ssh://host -> libvirt / KVM on the HOST over SSH (no mount)
|- /mnt/ -> /host/user -> appdata, VM disks + restic repos (read/write)
|- /boot/ -> /host/boot -> Unraid flash backup (whole USB)
|- /config -> BombVault's own settings + credentials (self-backup)
'- <repo path> -> restic repository (local or remote: rclone/s3/rest/sftp)
BombVault は Docker ソケットを使って、バックアップ前にコンテナを停止し、復元後にコンテナを再作成します。VM については、SSH(qemu+ssh://)経由でホスト上の virsh を実行し、ドメインを正常にシャットダウンするか、ライブスナップショットを取ります。libvirt のパスをバインドマウントすることは一切ないため、ホストの VM Manager の邪魔になることはありません。
BombVault はオーケストレーションと UI のレイヤーであり、ストレージエンジンではありません。実際のデータ移動はすべて restic を通じて行われます。
クイックスタート¶
はじめてですか? はじめに に進んで、Community Applications 経由で Unraid に BombVault をインストールし、最初のバックアップを実行しましょう。その後、機能の全体を探索し、設定を調整し、オフサイトと復旧をセットアップしてください。
オフサイトはドメインごとに複数のターゲットへ同時にファンアウトでき、読み取り専用の受信側ダッシュボードがコピーを受け取る側のマシンでそれらのコピーを監視します。また、設定のエクスポート / インポートカードを使えば、設定一式を新しいマシンに持ち運べます。オフサイトと復旧および設定を参照してください。
Android アプリ を使えば、グループ内のすべてのサーバーをスマートフォンで扱え、全サーバーのアクティビティログを 1 つの画面で見られます。
クレジット¶
- @Darkdragon14 による VolumeVault(Apache-2.0)が、BombVault の出発点となるアイデアをくれました。Docker コンテナのワンクリックバックアップと自動再インストールです。BombVault は Go と restic による別個の実装で、そのアイデアを VM やフラッシュなどへ広げています。
- restic は、BombVault が動かす、高速で安全な重複排除バックアップエンジンです。
- rclone はクラウドバックエンドを提供します。
- ボタンのグリフの大半は、Streamline の無料の Core Solid セット(CC BY 4.0、ソース)のものです。残りは Font Awesome Free、Material Design Icons、Simple Icons、Tabler Icons のもの、またはこのプロジェクトのために描いたものです。
ライセンス¶
Copyright (C) 2026 Junker der Provinz. BombVault は GNU Affero General Public License v3.0(LICENSE)のもとで提供されるフリーソフトウェアです。実行、研究、共有、改変を行うことができます。配布する場合、または改変したバージョンをネットワークサービスとして運用する場合は、同じライセンスのもとでソースコードを公開し、既存の著作権表示と帰属表示を保持しなければなりません。
名前とブランドはライセンスの対象外です。AGPL が対象とするのはソースコードだけです。「BombVault」、そのロゴ、そのブランドは権利が留保されたままであり、フォークは独自の名前とブランドを使わなければならず、BombVault を名乗ってはなりません。
リンク¶
- ソースコード: github.com/junkerderprovinz/bombvault
- Unraid サポートスレッド: forums.unraid.net
- Issue: github.com/junkerderprovinz/bombvault/issues
ホストに対する root 相当の制御
Docker ソケットを通じて、BombVault はコンテナの停止、削除、再作成を行い、appdata の読み書きができます。また VM バックアップのためにホストに SSH でログインして virsh を実行します。その Web UI に到達できる者は、実質的にホストの root 権限を持つことになります。BombVault は信頼できる、外部に公開されていないネットワークでのみ実行し、オフサイトまたはイミュータブルなバックアップを使い始めたら、任意のパスワードゲート(設定、セキュリティ)を有効にしてください。完全なセキュリティモデルについては設定を参照してください。