Перейти к содержанию

BombVault

Ваши данные Unraid, запечатанные в сейфе. Заложите резервную копию. Взорвите восстановление.

BombVault, это self-hosted веб-приложение, нативное для Unraid, для резервного копирования и полного аварийного восстановления ваших контейнеров Docker и виртуальных машин KVM/libvirt. Оно работает как единый мультиархитектурный контейнер Docker, даёт вам современный веб-интерфейс, который подстраивается под светлую/тёмную тему вашей системы, и охватывает весь жизненный цикл: резервное копирование, планирование, проверку и восстановление.

Восстановление выполняется автоматически. Контейнеры снова появляются во вкладке Docker в Unraid ровно такими, какими были, а виртуальные машины заново определяются в VM Manager с повторно подключёнными дисками и UEFI NVRAM. Никакой ручной переустановки, никакой перенастройки, никакой драмы.

Работает на основе restic, поэтому каждая резервная копия дедуплицирована, инкрементальна и всегда зашифрована.

Берегите свой APP_KEY

BombVault выводит пароль репозитория restic из 32-байтового секрета с именем APP_KEY. Его потеря делает зашифрованные резервные копии невосстановимыми. Сгенерируйте его командой openssl rand -hex 32 и храните в надёжном месте. См. Конфигурация.

Что защищает BombVault

Домен Что сохраняется
Контейнеры Docker Каталог appdata плюс определение контейнера (образ, переменные окружения, порты, метки, тома).
Виртуальные машины KVM / libvirt Образ(ы) диска VM, определение XML и UEFI NVRAM, резервируемые через SSH (без монтирования libvirt).
Unraid flash Вся USB-флешка (/boot): ОС, лицензия, конфигурация массива, общие ресурсы, сеть и конфигурация плагинов.
Конфигурация приложения Собственный /config BombVault: его база данных настроек, учётные данные внешней копии и SSH-пара ключей libvirt.
Файлы и папки Именованные наборы файлов, любая папка на сервере, каждая с необязательными шаблонами исключений для набора.
Наборы данных ZFS Набор данных со всеми наборами под ним, прочитанный из одного снимка ZFS и сохранённый как папка. См. Наборы данных ZFS.

Восстановление, вот главная звезда

После копирования данных обратно из снимка restic BombVault воспроизводит сохранённое определение контейнера через Docker API, поэтому контейнер снова появляется во вкладке Docker в Unraid, как будто он всегда там был (тот же образ, те же настройки, те же сопоставления портов). Виртуальные машины получают заново определённый XML через SSH, а их диски и UEFI NVRAM повторно подключаются, даже после того как VM была удалена.

Когда резервное копирование останавливает зависимые контейнеры, они возвращаются в правильном порядке: BombVault перезапускает их в порядке depends_on из Compose и ждёт, пока каждый сообщит о работоспособности, прежде чем запустить те, что зависят от него, поэтому ничто не вырывается вперёд базы данных или шлюза, который ещё не поднят. См. Возможности.

Как это работает

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, чтобы останавливать контейнеры перед резервным копированием и пересоздавать их после восстановления. Для виртуальных машин он выполняет virsh на хосте через SSH (qemu+ssh://), чтобы корректно выключить машину или сделать живой снимок. Он никогда не монтирует путь libvirt, поэтому не может помешать VM Manager на хосте.

BombVault, это слой оркестрации и интерфейса, а не движок хранения. Всё фактическое перемещение данных проходит через restic.

Быстрый старт

Впервые здесь? Перейдите к Начало работы, чтобы установить BombVault на Unraid через Community Applications и запустить первую резервную копию. Затем изучите полный набор Возможностей, настройте вашу Конфигурацию и настройте Внешнюю копию и восстановление.

Внешняя копия может разветвляться на несколько целей для каждого домена одновременно, доступная только для чтения панель получателя отслеживает эти копии на машине, которая их принимает, и вы можете перенести всю конфигурацию на новую машину с помощью карточки Экспорт / импорт настроек. См. Внешняя копия и восстановление и Конфигурация.

Приложение для Android собирает все серверы вашей группы на телефоне, а журнал активности их всех показывает на одном экране.

Благодарности

  • VolumeVault от @Darkdragon14 (Apache-2.0) дал BombVault исходную идею: резервное копирование в один клик и автоматическую переустановку контейнеров Docker. BombVault, это отдельная реализация на Go и restic, которая переносит эту идею на виртуальные машины, flash и многое другое.
  • restic, это быстрый, безопасный движок резервного копирования с дедупликацией, которым управляет BombVault.
  • rclone даёт облачные бэкенды.
  • Большинство значков на кнопках взяты из бесплатного набора Core Solid от Streamline (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.

Ссылки

Управление хостом с правами root

Через сокет Docker BombVault может останавливать, удалять и пересоздавать контейнеры, а также читать и записывать appdata, а для резервного копирования VM он входит на хост через SSH для выполнения virsh. Любой, кто может достучаться до его веб-интерфейса, фактически получает root на хосте. Запускайте BombVault только в доверенной, не открытой наружу сети, и включайте необязательную парольную защиту (Настройки, Безопасность), как только используются внешние или неизменяемые резервные копии. Полную модель безопасности см. в Конфигурации.