Початок роботи¶
Ця сторінка проведе вас від свіжої машини Unraid до вашої першої резервної копії.
Вимоги¶
| Вимога | Примітки |
|---|---|
| Unraid 6.12+ | Раніші версії не тестувалися. Основна ціль, це Unraid, але BombVault працює також на звичайному хості Docker і на TrueNAS Scale (див. Звичайний хост Docker). |
| Розташування репозиторію restic | Локальний шлях (рекомендовано: ваш масив або кеш), SMB, NFS або будь-який бекенд rclone. |
| Сокет Docker | Монтується шаблоном автоматично (/var/run/docker.sock). |
Unraid flash (/boot) |
Монтується цілком шаблоном автоматично (/boot до /host/boot). Забезпечує резервне копіювання flash і дає змогу відновленому контейнеру знову з'явитися як звичайний, редагований додаток Unraid. |
| Віртуальні машини KVM (за вибором) | Резервне копіювання VM спілкується з libvirt через SSH, без монтування libvirt. Налаштуйте це в Налаштуваннях (див. Конфігурація). |
| Набори даних ZFS (за вибором) | Те саме SSH-з'єднання, що й для резервного копіювання VM, zfs на хості та Host Data, підключений як /mnt з режимом доступу Read/Write - Slave (типове значення шаблону). Див. Набори даних ZFS. |
| Застосунок для Android (необов'язково) | Android 10 або новіший, спарювання із серверами версії 9.7.0 або новішої. Див. Застосунок для Android. |
Встановлення на Unraid¶
Найпростіший шлях, це Community Applications.
- Відкрийте вкладку Apps в Unraid.
- Знайдіть BombVault.
- Натисніть Install, задайте обов'язкові змінні (нижче) і застосуйте.
Ручне встановлення шаблону
Якщо ви віддаєте перевагу додати шаблон вручну:
- Перейдіть до Docker, Add Container, Template repositories і додайте:
- Знайдіть BombVault у Templates.
- Задайте обов'язкові змінні та натисніть Apply.
Звичайний хост Docker¶
Не Unraid? BombVault працює і як звичайний контейнер на будь-якому хості Docker (на цьому ж тримається підтримка контейнерів на TrueNAS Scale, ще до появи там власного запису в каталозі застосунків).
- Візьміть із репозиторію готовий до редагування файл
deploy/docker-compose.generic.yml. - Задайте
APP_KEY(див. нижче) і спрямуйте том Host Data на ваш справжній корінь даних: коментарі у файлі проводять через обидва кроки. docker compose up -d, потім відкрийтеhttps://<ip-хоста>:3443/.
Чим це відрізняється від Unraid:
- Немає домену flash/USB. Завантажувальної флешки, яку треба зберігати чи відновлювати, тут немає, тож домену Flash у налаштуваннях нічого робити. Натомість домен Папки пропонує підказку в один клац Додати набір: конфігурація системи хоста (початковий набір файлів
/etc, який ви переглядаєте та правите перед збереженням) як практичний загальний відповідник. - Немає власних сповіщень Unraid. Власні канали сповіщень BombVault (webhook, попередження про невдалу зовнішню копію тощо) працюють як звичайно; пропускається лише надсилання до системи сповіщень Unraid, бо такої системи тут немає.
- Резервне копіювання віртуальних машин необов'язкове і потребує окремого хоста libvirtd, доступного через SSH. Див. закоментований блок у файлі compose. У звичайного хоста Docker власного керівника віртуальних машин немає.
- Немає віджета для Dashboard. BombVault Widget, це плагін Unraid, тож і цей крок пропускається.
- Як знаходяться дані контейнера. Без угоди Unraid про
appdataпапку даних контейнера знаходять за сегментами зDATA_ROOT_SEGMENTS, іменованими томами Docker, робочим каталогом проєкту Compose і міткоюbombvault.data(див. Визначення джерел резервної копії). Іменовані томи та набір/etcдосягають лише шляхів усередині монтування Host Data, тож спрямуйте Host Data на спільного предка, який охоплює й корінь даних Docker. PLATFORM. Задайтеgenericабоtruenas. Якщо змінну не задано, BombVault розпізнає Unraid за його власним маркером на монтуванні flash і вважає все інше звичайним хостом, а кроки лише для Unraid пропускаються, замість того щоб запускатися й завершуватися помилкою.
TrueNAS Scale іде тим самим шляхом через compose; запис для каталогу підготовлено в репозиторії, але ще не подано. Резервному копіюванню VM там потрібен LIBVIRT_URI, бо libvirtd у TrueNAS слухає власний сокет (/run/truenas_libvirt/libvirt-sock), який три змінні LIBVIRT_* виразити не можуть (див. Конфігурація). Наскільки це перевірено: резервне копіювання zvol запускали на справжній машині з TrueNAS Scale, на zvol, приєднаному до запущеної VM, і zfs snapshot, zfs send, restic і zfs receive провели його туди й назад байт у байт. Повне відновлення силами самого BombVault на обладнанні TrueNAS ще не запускали, а той zvol був розрідженим, тож пропускна здатність на багатьох гігабайтах не перевірена. Перевірте там відновлення, перш ніж на нього покладатися.
Єдине обов'язкове налаштування¶
Єдина змінна, яку ви повинні задати, це APP_KEY, 32-байтовий шістнадцятковий секрет (64 шістнадцяткові символи), що використовується для виведення пароля репозиторію restic.
Згенеруйте його на будь-якій машині:
Вставте результат у поле APP_KEY шаблону (Unraid) або у змінну середовища APP_KEY у docker-compose.yml (звичайний Docker-хост).
Не втрачайте свій APP_KEY
Втрата APP_KEY робить ваші зашифровані резервні копії невідновлюваними. Зберігайте його в безпечному місці окремо від сервера. Щойно BombVault запрацює, скористайтеся його набором для відновлення ключа шифрування в один клік (див. Зовнішнє копіювання та відновлення), щоб зберегти повний пакет для відновлення.
Шаблон також монтує за вас сокет Docker, flash (/boot) і корінь Host Data (/mnt). Як джерела, так і місця призначення резервних копій живуть під Host Data. Повний довідник змінних і налаштування зовнішнього копіювання див. у Конфігурація.
Перший запуск¶

Панель після першої копії: що захищено, що запуститься далі, і живий журнал.
- Відкрийте вебінтерфейс за адресою
https://<your-unraid-ip>:3443(самопідписаний сертифікат з коробки). - У Налаштуваннях увімкніть потрібні домени резервного копіювання (Контейнери, Віртуальні машини, Flash, Автобекап, Папки, Набори даних ZFS) і виберіть акцентний колір.
- На вкладці Контейнери виберіть контейнер і натисніть Створити резервну копію, щоб зробити свою першу точку відновлення. Шляхи репозиторіїв за замовчуванням
/mnt/user/bombvault/{container,vms,flash,config,files,zfs}і створюються під час першого резервного копіювання. - Налаштуйте планування в Налаштування, Розклади. Є один клік Включити всі до розкладу для контейнерів і VM.
Необов'язково: виберіть порядок резервного копіювання
Якщо деякі контейнери завжди мають резервуватися перед іншими (наприклад база даних перед додатком, що її використовує), відкрийте панель Порядок резервного копіювання на сторінці Контейнери й перетягніть їх у потрібну послідовність. Заплановані запуски та запуски з множинним вибором потім її дотримуються; усе, що ви залишите невпорядкованим, резервується спочатку найбільш прострочене, як і раніше.
Перевірка інтеграції з хостом
Відкрийте /spike у вебінтерфейсі після запуску контейнера. Він тестує кожне монтування та CLI (сокет Docker, libvirt, restic, qemu-img, rclone) і повідомляє про будь-які відсутні частини, тож ви можете переконатися, що контейнер підключено правильно, перш ніж покладатися на нього.
Простий проти Розширеного¶

У налаштувань немає кнопки «Зберегти»: кожна зміна записується одразу.
За замовчуванням інтерфейс показує лише найнеобхідніше (резервне копіювання, відновлення, розклад). Використовуйте перемикач Простий вигляд / Розширений вигляд на бічній панелі, щоб відкрити експертні елементи керування: зберігання, зовнішнє копіювання, хуки до/після, відновлення на рівні файлів, сповіщення, метрики Prometheus та інструменти цілісності/обслуговування. Це налаштування для кожного браузера, вимкнене за замовчуванням, тож новачки отримують чистий інтерфейс, а досвідчені користувачі, усе.
Збирання з вихідного коду¶
BombVault, це один статичний бінарний файл Go, який обслуговує JSON API і вбудований інтерфейс на React. Спершу зберіть інтерфейс, потім запустіть бінарний файл:
npm --prefix web ci
npm --prefix web run build # пише web/dist, який вбудовується в бінарний файл
export APP_KEY=$(openssl rand -hex 32)
go test ./... # модульні та інтеграційні тести зі справжнім проходом restic туди й назад
golangci-lint run ./...
go run ./cmd/bombvault # обслуговує https://localhost:3443 із самопідписаним сертифікатом
Збирання інтерфейсу потрібне і для go run. Репозиторій відстежує в web/dist лише порожній маркер, тож без npm --prefix web run build бінарний файл нічого не вбудовує і відповідає 500 SPA index not found, і це очікувано. Docker, libvirt і Unraid не можна протестувати в CI, тож перш ніж відкрити pull request, перевірте монтування, restic і SSH-з'єднання для VM на справжньому хості за допомогою перевірки інтеграції з хостом (/spike).
Наступні кроки¶
- Перегляньте всі Можливості.
- Зберіть усі сервери вашої групи на телефоні за допомогою Застосунку для Android.
- Додайте одну або кілька реплік Зовнішнє копіювання та відновлення (кожен домен може відправляти на кілька цілей одночасно) і збережіть свій набір для відновлення.
- Клонуєте налаштування або переходите на нову машину? Перенесіть усю свою конфігурацію за допомогою картки Експорт / імпорт налаштувань. Див. Конфігурація.
- Виникла проблема? Див. Усунення несправностей.