BombVault¶
Unraid のデータを、金庫に封印。バックアップを投げ込み、復元を起爆する。
BombVault は、Docker コンテナと KVM/libvirt VM のバックアップと完全な災害復旧のための、セルフホスト型で Unraid ネイティブな Web アプリです。単一のマルチアーキテクチャ Docker コンテナとして動作し、モダンなダークテーマの Web UI を備え、バックアップ、スケジュール設定、検証、復元というライフサイクル全体を扱います。
復元は自動です。コンテナは Unraid の Docker タブに以前とまったく同じ状態で再び現れ、VM はディスクと UEFI NVRAM を再アタッチした状態で VM Manager に再定義されます。手動での再インストールも、再設定も、面倒もありません。
restic を基盤としているため、すべてのバックアップは重複排除され、増分方式で、常に暗号化されています。
Keep your APP_KEY safe
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 鍵ペア。 |
| ファイルとフォルダー | 名前付きのファイルセット。サーバー上の任意のフォルダーで、それぞれにセットごとの除外パターンを任意で設定できます。 |
復元こそが主役¶
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 はオーケストレーションと UI のレイヤーであり、ストレージエンジンではありません。実際のデータ移動はすべて restic を通じて行われます。
クイックスタート¶
はじめてですか? はじめに に進んで、Community Applications 経由で Unraid に BombVault をインストールし、最初のバックアップを実行しましょう。その後、機能の全体を探索し、設定を調整し、オフサイトと復旧をセットアップしてください。
オフサイトはドメインごとに複数のターゲットへ同時にファンアウトでき、読み取り専用の受信側ダッシュボードがコピーを受け取る側のマシンでそれらのコピーを監視します。また、設定のエクスポートとインポートカードを使えば、設定一式を新しいマシンに持ち運べます。オフサイトと復旧および設定を参照してください。
リンク¶
- ソースコード: github.com/junkerderprovinz/bombvault
- Unraid サポートスレッド: forums.unraid.net
- Issue: github.com/junkerderprovinz/bombvault/issues
Root-equivalent control of the host
Docker ソケットを通じて、BombVault はコンテナの停止、削除、再作成を行い、appdata の読み書きができます。また VM バックアップのためにホストに SSH でログインして virsh を実行します。その Web UI に到達できる者は、実質的にホストの root 権限を持つことになります。BombVault は信頼できる、外部に公開されていないネットワークでのみ実行し、オフサイトまたはイミュータブルなバックアップを使い始めたら、任意のパスワードゲート(設定、セキュリティ)を有効にしてください。完全なセキュリティモデルについては設定を参照してください。