Перейти до змісту

Конфігурація

Ця сторінка охоплює змінні середовища контейнера, монтування, які надає шаблон, резервне копіювання VM через SSH і налаштування зовнішнього копіювання. Шляхи репозиторіїв резервних копій налаштовуються всередині додатка (Налаштування, Шляхи резервних копій), а не через змінні середовища.

Змінні середовища

Змінна Обов'язкова Опис
APP_KEY Так 32-байтовий шістнадцятковий секрет (64 шістнадцяткові символи), що використовується для виведення пароля репозиторію restic. Згенеруйте командою openssl rand -hex 32. Бережіть його: його втрата робить зашифровані резервні копії невідновлюваними.
LIBVIRT_HOST Для VM Хост Unraid, до якого звертаються через SSH для резервного копіювання VM (за замовчуванням host.docker.internal; шаблон попередньо заповнює заповнювач LAN-IP). Використовуйте свою LAN IP Unraid, обов'язково в кастомній мережі br0.x.
LIBVIRT_SSH_PORT Ні Порт SSH хоста для резервного копіювання VM (за замовчуванням 22).
LIBVIRT_SSH_USER Ні Користувач SSH на хості для резервного копіювання VM (за замовчуванням root).
PORT Ні Порт HTTP (за замовчуванням 3000; використовується лише з HTTP_ONLY=true).
HTTPS_PORT Ні Порт HTTPS (за замовчуванням 3443; шаблон публікує його 1:1, тож WebUI відповідає на https://<ip>:3443).
HTTP_ONLY Ні Задайте true, щоб вимкнути самопідписаний слухач HTTPS і подавати лише звичайний HTTP (для використання за зворотним проксі, що термінує TLS).
HOST_SOURCE_ROOT Ні Шлях хоста, змонтований як Host Data (за замовчуванням /mnt). BombVault перекладає джерела bind-монтувань, які повідомляє Docker, у шляхи під цим монтуванням. Змінюйте лише якщо ви змонтували інший корінь хоста.
BOMBVAULT_SELF_CONTAINER Ні Назва самого контейнера BombVault, тож він ніколи не робить резервну копію (і тому не зупиняє) сам себе (за замовчуванням BombVault; автовизначається через ім'я хоста в мережі bridge).
BACKUP_MAX_HOURS Ні Максимальна кількість реальних годин, протягом яких окремий запуск резервного копіювання може утримувати блокування свого домену, перш ніж його буде примусово скасовано (запобіжник, щоб завислий запуск не міг заблокувати домен назавжди). Порожнє (за замовчуванням) використовує 48. Підніміть його для дуже великих чи повільних хмарних резервних копій (запуск, скасований на межі, завершується помилкою context deadline exceeded). Задайте 0, щоб вимкнути обмеження повністю.
TZ Ні Часовий пояс для планувальника (наприклад Europe/Berlin).

Монтування

Змонтуйте сокет Docker, flash (/boot) і корінь Host Data (/mnt), як показано в шаблоні CA. Як джерела, так і місця призначення резервних копій живуть під Host Data, і воно монтується rslave, тож віддалений спільний ресурс, який монтується після запуску контейнера (наприклад під /mnt/remotes), стає видимим без перезапуску.

Шляхи репозиторіїв резервних копій за замовчуванням /mnt/user/bombvault/{container,vms,flash,config,files}, створюються під час першого резервного копіювання. Змініть розташування будь-коли в Налаштування, Шляхи резервних копій.

Перевірка інтеграції з хостом

Відкрийте /spike у вебінтерфейсі після запуску контейнера. Він тестує кожне монтування та CLI (сокет Docker, libvirt, restic, qemu-img, rclone) і повідомляє про будь-які відсутні частини.

Модель безпеки

Root-рівний контроль над хостом

Через сокет Docker BombVault може зупиняти, видаляти та відтворювати контейнери й читати/писати appdata, а для резервного копіювання VM він входить на хост через SSH (qemu+ssh://, root за замовчуванням), щоб виконати virsh. Кожен, хто має доступ до його вебінтерфейсу, фактично має root на хості.

  • Необов'язковий захист паролем (Налаштування, Безпека): задайте пароль, щоб вимагати вхід, очистіть його, щоб вимкнути. За замовчуванням вимкнено для використання в довіреній LAN. Сесії підписані (HMAC, виведений з APP_KEY), а зміна пароля робить їх недійсними; входи обмежені за частотою.
  • Оскільки захист за вибором, коли він не заданий, весь інтерфейс і API (включно з налаштуванням зовнішнього, маршрутами тесту на втручання та набором для відновлення) доступні кожному, хто має доступ до порту. Увімкніть захист, щойно почнете використовувати зовнішні, незмінні резервні копії чи шифрування.
  • Запускайте BombVault лише в довіреній, не виставленій назовні мережі. Для віддаленого доступу поставте його за зворотним проксі, що додає автентифікацію та TLS. Відповіді несуть базові заголовки безпеки (CSP, nosniff, X-Frame-Options, Referrer-Policy).
  • З HTTP_ONLY=true cookie сесії втрачає свій прапорець Secure (мусить, щоб працювати через звичайний HTTP), тож вмикайте пароль за проксі, що термінує TLS, лише якщо конфіденційність має значення.
  • З'єднання SSH для резервного копіювання VM довіряє ключу хоста під час першого з'єднання (TOFU) і закріплює його після цього. Перевірте ключ хоста поза каналом, якщо ваш шлях від контейнера до хоста не є довіреним.
  • Резервні копії шифруються restic, коли шифрування ввімкнене (Налаштування; увімкнене за замовчуванням), з ключем, виведеним з APP_KEY.

Резервне копіювання VM через SSH

BombVault робить резервні копії віртуальних машин KVM/libvirt без монтування будь-якого шляху libvirt. Він виконує virsh на хості через SSH (qemu+ssh://), тож він ніколи не може вплинути на ваш хостовий VM Manager.

Швидке налаштування:

  1. Налаштування, Система, Резервне копіювання VM через SSH: скопіюйте показаний публічний ключ.
  2. Додайте його до /root/.ssh/authorized_keys в Unraid (також збережений на flash, тож він переживає перезавантаження).
  3. Натисніть Перевірити з'єднання.

Шаблон додає --add-host=host.docker.internal:host-gateway, тож контейнер може дістатися до хоста. Задайте LIBVIRT_HOST на свою LAN IP Unraid, якщо ця назва не розв'язується (наприклад коли контейнер працює в кастомній мережі br0.x). Якщо ви змінили порт SSH Unraid, задайте LIBVIRT_SSH_PORT відповідно. Живі знімки додатково потребують гостьового агента qemu у VM і диска на /mnt/cache (не /mnt/user).

Повний посібник з налаштування VM і мережі

Повний покроковий посібник (увімкнення SSH, стійка авторизація ключа, маршрутизація в кастомній мережі та VLAN, метод для кожної VM і усунення несправностей на боці хоста) живе за адресою docs/vm-backup-ssh-setup.md на GitHub.

Налаштування зовнішнього копіювання

Налаштуйте зовнішню репліку на вкладці Налаштування, Зовнішнє. Повний робочий процес див. у Зовнішнє копіювання та відновлення (незмінне/append-only, тестування на втручання та тренування DR). Коротко:

  • Бекенди: SMB/CIFS та NFS (змонтуйте спільний ресурс і вкажіть на нього Шлях резервних копій), нативні бекенди restic без rclone (s3:..., rest:http://host:8000/repo, b2:..., sftp:user@host:/repo) або будь-яке віддалене сховище rclone (rclone:<remote>:<bucket>/path).
  • Хмарні облікові дані зберігаються зашифрованими в Налаштування, Зовнішнє, Хмарні облікові дані.
  • Цілі SSH не потребують нічого встановленого на дальньому боці. sftp: потребує лише SSH-сервера. Додайте публічний ключ з Налаштування, Система, Резервне копіювання VM через SSH (також за адресою /config/ssh/id_ed25519.pub) до ~/.ssh/authorized_keys цільового користувача.
  • Зовнішнє копіювання: BombVault реплікує нові знімки командою restic copy за принципом найкращих зусиль. Локальний репозиторій залишається основним. Кожен домен має власний зовнішній розклад, плюс кнопка Реплікувати зараз.
  • Кілька зовнішніх цілей для домену: кожен домен може реплікуватися на кілька зовнішніх місць призначення одночасно. Додайте додаткові цілі в Налаштування, Зовнішнє, кожна з власним репозиторієм, класом сховища S3, прапорцем append-only, зберіганням і бюджетом росту; усі вони реплікуються за зовнішнім розкладом цього домену. Наявне єдине налаштування зовнішнього переноситься як перша ціль.
  • Зберігання для кожного джерела: локальна політика живе в Налаштування, Шляхи та Сховище; зовнішня політика в Налаштування, Зовнішнє (залиште її всю нульовою, щоб ніколи не обрізати зовнішні знімки автоматично).
  • Обмеження пропускної здатності: обмежте швидкість вивантаження/завантаження restic у Налаштування, Зовнішнє.
  • Клас холодного та архівного сховища (S3): для нативного зовнішнього репозиторію S3 виберіть рівень, придатний для читання під час відновлення (Standard, Standard-IA, One Zone-IA, Intelligent-Tiering, Glacier Instant Retrieval). Віддалені сховища rclone задають свій клас у конфігурації rclone.

Портативні налаштування (експорт та імпорт)

Картка Експорт та імпорт налаштувань на сторінці Налаштування записує всю вашу конфігурацію BombVault (налаштування доменів, зовнішні цілі, розклади, зберігання, сповіщення) до портативного файлу JSON, який ви можете імпортувати на іншому екземплярі, тож перехід на нову машину чи клонування налаштувань не означає повторне введення всього вручну. Імпорт показує попередній перегляд і запитує підтвердження, і він ніколи не торкається ваших даних резервних копій чи історії.

Експорт може містити облікові дані

Ви вибираєте, чи включати зовнішні облікові дані та облікові дані сповіщень у файл. З включеними обліковими даними експорт настільки ж чутливий, як ваш набір для відновлення, тож зберігайте його в безпечному місці. Без них файл містить лише несекретні налаштування.