콘텐츠로 이동

기능

BombVault는 기본적으로 간단하고 필요할 때 깊이가 있습니다. 간단히 보기 / 고급 보기 스위치를 켜기 전까지는 인터페이스가 필수 항목만 표시합니다. 이 페이지는 전체 기능 세트를 정리합니다.

백업 범위

컨테이너마다 일정 토글, 백업 순서, 개별 기록을 가집니다.

컨테이너마다 일정 토글, 백업 순서, 개별 기록을 가집니다.

대상 저장되는 항목
Docker 컨테이너 Appdata 디렉터리와 컨테이너 정의(이미지, 환경 변수, 포트, 레이블, 볼륨). 기본값은 appdata 디렉터리 전체입니다. 컨테이너의 폴더 선택에서 백업할 폴더를 정확히 체크할 수 있으며, 경로 수가 실시간으로 집계되고, 제외한 항목 목록이 표시되며, 루트마다 캐시 폴더 건너뛰기(CACHEDIR.TAG) 스위치가 있습니다.
KVM / libvirt VM VM 디스크 이미지, XML 정의, UEFI NVRAM(정상 종료 또는 라이브 스냅샷, SSH를 통해). 라이브 스냅샷은 스냅샷을 만들 수 없으면 자동으로 정상 종료 백업으로 대체되므로, VM 백업이 그냥 오류로 끝나는 일은 없습니다. 변경된 블록만을 켜면 qcow2 디스크를 쓰는 실행 중인 VM을 libvirt 체크포인트로 읽습니다. 백업은 이전 백업 이후 쓰인 블록만 읽고, 각 스냅샷은 여전히 혼자서 디스크 전체를 복원합니다. ZFS zvol에 있는 디스크는 같은 SSH 연결로 zfs send를 통해 스트리밍되므로, 디스크가 zvol인 VM도 하나의 VM으로 백업됩니다. 패스스루 vTPM의 상태는 도메인 XML에 그 경로가 적혀 있으면 NVRAM 옆에 저장됩니다. TrueNAS가 Windows 11 게스트용으로 설정하는 에뮬레이션 vTPM은 그 경로를 공개하지 않으므로, 그런 게스트의 복구 키는 따로 챙겨 두세요. VM 백업 가이드를 참고하세요.
Unraid 플래시 USB 플래시 전체(/boot): OS, 라이선스, 배열 구성, 공유, 네트워크 및 플러그인 구성. 복원은 원클릭 .zip 다운로드이며 실행 중인 플래시를 절대 덮어쓰지 않습니다.
앱 구성 BombVault 자체 /config(설정 데이터베이스, 오프사이트 자격 증명, libvirt SSH 키 쌍). SQLite VACUUM INTO로 스냅샷되므로 WAL 모드 데이터베이스가 쓰기 도중에 캡처되는 일이 없습니다. 자체 재시작을 통해 복원되므로, 열려 있는 핸들 아래에서 실행 중인 데이터베이스가 덮어쓰이는 일이 없습니다.
파일 및 폴더 이름이 지정된 파일 세트: 서버의 모든 폴더(공유, 문서, 사진 라이브러리), 각각 선택적으로 세트별 제외 패턴을 가질 수 있습니다. 다른 도메인과 완전한 동등성을 갖습니다(일정, 보존, 오프사이트 복사, 무결성 검사, 복원 리허설).
ZFS 데이터세트 데이터세트와 그 아래의 모든 데이터세트를 하나의 ZFS 스냅샷에서 읽으므로 모두 같은 순간의 상태입니다. restic으로 폴더처럼 저장되어 중복이 제거되고, 내용을 살펴볼 수 있으며, 파일 하나만 복원할 수도 있습니다. 새 하위 데이터세트는 자동으로 포함되고, 하나씩 제외할 수 있으며, 읽을 수 없는 것은 건너뛰고 이름을 알려 줍니다. 원하면 스냅샷 순간에만 컨테이너를 멈추거나 명령을 실행합니다. 볼륨은 포함되지 않습니다. VM의 볼륨은 그 VM과 함께 백업되고, VM이 없는 볼륨은 아직 백업되지 않습니다. ZFS 데이터세트를 참고하세요.

복원

안내형 복구가 새로 설치한 환경을 재해 상황으로 한자리에서 이끕니다.

안내형 복구가 새로 설치한 환경을 재해 상황으로 한자리에서 이끕니다.

  • 원클릭 전체 복원. 스냅샷을 선택하고 복원을 클릭하세요. 끝.
  • 항목별 하나의 타임라인. 컨테이너, VM, 파일 세트, 플래시, 앱 구성은 존재하는 모든 위치, 기록되는 저장소, 각 오프사이트 대상을 아우르는 하나의 타임라인으로 백업을 나열합니다. 오프사이트로 복사된 백업은 한 번만 나타나며 각 위치가 표시됩니다. 오프사이트 위치는 열었을 때 읽히며, 한 위치에서 삭제하면 마지막 사본이었는지 알려줍니다.
  • 컨테이너는 자동으로 재설치됩니다. 컨테이너 정의가 Docker API에 대해 재생되므로, 컨테이너가 이전과 똑같이 Unraid Docker 탭에 다시 나타납니다.
  • GPU, 제한, 링크가 돌아옵니다. 복원된 컨테이너는 리소스 제한, 로그 드라이버, DNS 설정, 레거시 링크, GPU 또는 런타임(--gpus, --runtime=nvidia)을 되찾습니다. 해당 GPU 드라이버나 런타임이 없는 호스트에서는 복원이 이를 알리고 GPU와 런타임 없이 복원을 제안합니다. 여러 컨테이너나 stack을 복원한 뒤에도 마찬가지입니다. 없는 컨테이너나 복원된 컨테이너가 시작될 때 중지된 컨테이너로의 링크는 빠지며, 실행 기록에 그 사실이 남습니다.
  • VM은 자동으로 재생성됩니다. SSH를 통해 XML이 다시 가져와지므로, VM이 디스크와 UEFI NVRAM이 다시 연결된 상태로 VM Manager에 다시 나타나며, VM이 삭제된 후에도 마찬가지입니다. 백업 검색은 완전히 사라진 항목(예: 새로 설치한 후)을 재구성합니다.
  • 개별 복원. 다른 것을 건드리지 않고 컨테이너 하나, VM 하나, 파일 세트 하나를 복원합니다.
  • 플래시 복원은 .zip 다운로드입니다. flash-<id>.zip으로 브라우저에 스트리밍되어, Unraid USB 작성기에 바로 넣을 준비가 됩니다. 실행 중인 /boot은 절대 건드리지 않습니다.
  • 플러그인을 하나씩. 플래시 페이지는 각 플래시 백업의 플러그인을 버전과 크기와 함께 보여 주고, 하나만 실행 중인 플래시에 되돌립니다. 대상은 .plg 파일, config/plugins 아래의 폴더, 백업에 있는 패키지 파일입니다. 플래시의 다른 부분은 바뀌지 않습니다. Unraid는 다음 부팅 때, 또는 Plugins, Install Plugin에서 바로 플러그인을 설치합니다.
  • 예약된 플래시 zip 내보내기. 매 플래시 백업 후, 선택적으로 스냅샷을 선택한 폴더에 일반 .zip으로 기록합니다(매번 덮어쓰이는 단일 flash-latest.zip 또는 순환 기록). Syncthing 또는 rclone 폴더를 가리키게 하면 부팅 가능한 USB 백업이 자동으로 서버 밖으로 나갑니다.
  • 사전 점검 충돌 검사. 어떤 것이 중지되거나 제거되기 전에, 복원은 컨테이너의 고정 IP와 게시된 호스트 포트가 비어 있는지 확인하고, 중간에 끝난 복원을 남기는 대신 명확한 메시지와 함께 중단합니다.
  • 복원 전 확인. 모든 복원 창은 먼저 저장소가 응답하는지, 저장된 키로 열리는지, 복원 지점이 있는지, 복원이 쓰는 만큼의 공간이 대상에 있는지 확인합니다. 확인이 실패하는 동안 시작은 잠겨 있고, 버튼의 (i)가 어떤 확인인지 알려 줍니다.
  • 복원 계획. 확인을 누르기 전에 창은 복원이 지금 상태와 비교해 무엇을 하는지 보여 줍니다. 새 파일, 교체되는 파일, 변경 없는 파일(목록은 요청 시), 그리고 백업에 없어서 대상에 그대로 남는 파일입니다. 컨테이너와 VM의 경우 복원이 다시 만드는 설정을 실행 중인 설정과도 비교합니다. 이미지와 태그, 포트, 변수 이름, 볼륨, 또는 메모리, vCPU, 디스크, 네트워크입니다. restic은 파일을 읽지 않고 크기와 수정 시간으로 시험 실행해 이를 계산하며, 매우 큰 트리는 30초 후에 멈추고 그렇다고 알려 줍니다. 스택 복원은 구성원마다 확인과 계획을 하고, 막고 있는 구성원의 이름을 알려 줍니다.
  • 공유 폴더. 원래 위치로 복원할 때, 복원이 쓰는 폴더까지 마운트가 닿는 다른 컨테이너를 실행 여부와 관계없이 모두 이름으로 알려 줍니다. 예: "이 경로는 nextcloud-db도 사용합니다". 경고만 하고 막지는 않습니다.
  • 파일 수준 복원. 컨테이너 스냅샷의 파일을 펼치고, 필터링하고, 원하는 수만큼 파일과 폴더를 체크한 다음, 선택 항목을 제자리에 또는 선택한 폴더에 복원합니다.
  • 파일 세트 복원. 파일 세트 스냅샷을 제자리에(명시적 확인 후) 또는 선택한 폴더에 복원하며, 절대 조용히 하지 않습니다. 선택적 복원도 여기서 작동합니다.
  • ZFS 데이터세트 복원. 항목의 데이터세트 하나를 원래 자리로(삭제할 때까지 남는 ZFS 안전 스냅샷을 먼저 만든 뒤), 폴더로, 또는 고른 파일만 복원하거나, 백업의 모든 데이터세트를 폴더로 복원합니다. 데이터세트를 롤백하거나 바꿔치는 일은 없습니다.
  • 복원은 실행 상태를 유지합니다. 백업 시 실행 중이던 컨테이너나 VM은 실행 중인 상태로 돌아오고, 중지되어 있던 것은 중지된 채 유지됩니다. 복원 후 중지된 상태로 둠을 체크하면 시작하지 않고 재생성합니다.
  • 스택 전체 복원. 같은 Docker Compose 프로젝트의 컨테이너는 스택 패널로 그룹화됩니다. 스택 복원…은 각 멤버를 최신 백업에서 중지된 상태로 재구성한 다음, 선택적으로 depends_on 순서대로 시작합니다.
  • 실시간 진행 상황, 취소, 처리 중 피드백. 오래 걸리는 복원은 실시간 백분율 막대를 표시하며, 유형을 인식하는 확인과 함께 취소할 수 있습니다. 취소된 복원은 실패가 아니라 취소됨으로 기록됩니다.
  • 안내형 복구. 전용 복구 탭이 새로 설치한 상태에서 재해 상황을 안내합니다. 오프사이트 및 복구를 참고하세요.
  • 다른 BombVault 저장소에서 복원. 일회성 읽기 전용 세션이 그 인스턴스의 APP_KEY로 다른 BombVault 인스턴스의 저장소를 열어, 자체 설정을 건드리지 않고 서버 A에서 서버 B로 컨테이너를 가져올 수 있습니다. 오프사이트 및 복구를 참고하세요.
  • ZFS 속성도 돌아옵니다. 모든 ZFS 백업은 각 데이터세트에 로컬로 설정된 속성(압축, 레코드 크기, 할당량, 대소문자 구분 등)을 보관합니다. 새 데이터세트로 복원하면 그 속성으로 만들고, 기존 데이터세트로 복원하면 속성을 보여 주되 요청할 때만 설정합니다. ZFS 데이터세트를 참고하세요.
  • Appdata.Backup 플러그인에서 가져오기. 복구 페이지에서 플러그인의 백업 폴더를 BombVault에 지정합니다. 각 컨테이너 아카이브는 플러그인이 만든 날짜를 단 해당 컨테이너의 복원 지점이 됩니다. 이미 가져온 아카이브는 건너뛰고, 아카이브 자체는 읽기만 합니다. 복원에 컨테이너 정의가 필요하므로 먼저 BombVault에서 컨테이너를 한 번 백업해야 합니다. 보존 규칙은 가져온 복원 지점을 지우지 않으므로, 더 이상 필요 없는 것은 직접 삭제하세요.

저장 공간 및 예약

  • restic을 통한 증분, 중복 제거 백업이므로 큰 VM 디스크조차 저장소를 부풀리지 않습니다.
  • 대상: 로컬 경로 또는 오프사이트. 호스트 마운트 없이 설정, 클라우드 액세스, rclone 아래의 양식에서 바로 쓰는 SMB 공유와 WebDAV 서버(Nextcloud, ownCloud, SharePoint), NFS(Unraid에 익스포트를 마운트하고 백업 경로를 그곳으로 지정), rclone 없는 네이티브 restic 백엔드(s3:..., rest:http://host:8000/repo, sftp:user@host:/repo), 또는 rclone:<remote>:<bucket>/path를 통한 모든 rclone 원격. 모든 자격 증명은 암호화되어 저장됩니다.
  • SSH 대상은 상대편에 아무것도 설치할 필요가 없습니다. sftp:는 SSH 서버만 필요하므로, 아무것도 없는 Raspberry Pi(Docker 없음, restic 없음)도 오프사이트 대상으로 작동합니다. 호스트 키는 첫 접속 시 자동으로 고정됩니다.
  • 오프사이트 복사(로컬 + 원격). 빠른 로컬 백업을 유지하면서 하나 이상의 오프사이트 복제본을 추가하고, restic copy로 최선 노력 방식으로 복제합니다(오프사이트 장애가 로컬 백업을 실패시키는 일은 없습니다). 각 도메인은 자체 오프사이트 일정을 가지며, 지금 복제 버튼도 있습니다.
  • 도메인별 여러 오프사이트 대상. 각 도메인(컨테이너, VM, 플래시, 구성, 파일 세트, ZFS 데이터세트)은 하나만이 아니라 여러 오프사이트 대상에 동시에 복제할 수 있습니다. 오프사이트 페이지에서 추가 대상을 더하세요. 각각 자체 저장소, S3 스토리지 클래스, append-only 플래그, 보존, 증가 예산을 가집니다. 기존 오프사이트 복사본은 첫 번째 대상으로 이어지므로, 두 번째를 추가하기 전까지는 아무것도 바뀌지 않으며, 도메인의 모든 대상은 그 도메인의 오프사이트 일정에 따라 복제됩니다.
  • 이름 있는 저장소. 백업 위치를 설정, 저장 공간, 저장소에 한 번 적어 두세요. 로컬 경로든 자체 자격 증명 세트를 가진 아무 restic 리모트든 됩니다. 그런 다음 항목 카드에서 그중 하나를 항목의 위치로 고릅니다. 각 행에는 그 저장소를 가리키는 항목 수가 표시되며, 항목이나 배치 기본값이 사용 중인 저장소는 옮기거나 삭제할 수 없습니다. BombVault는 이미 기록된 백업을 절대 옮기지 않기 때문입니다.
  • 여러 클라우드 자격 증명. 공유 클라우드 자격 증명은 기본적으로 어디에나 적용되지만, 어떤 대상이든 대신 이름 있는 자격 증명 세트를 고를 수 있습니다(설정, 클라우드 액세스, 추가 자격 증명 세트). 그래서 Hetzner S3 버킷과 로컬 Garage 서버를 각자의 키로 나란히 쓸 수 있습니다. 오프사이트 대상과, 그 자체가 원격 저장소인 백업 경로도 여기에 포함됩니다.
  • 대상. 오프사이트 대상은 한 번만 설정합니다. 마법사가 S3 스토리지 서비스, 직접 운영하는 S3 서버, 직접 운영하는 서버와 공유, rclone이 지원하는 모든 클라우드 스토리지를 나열하고, 로그인, 연결 테스트, 폴더 선택기, 삭제 방지에 대한 솔직한 설명을 함께 제공합니다. 설정한 대상은 모든 도메인과 항목에 버튼으로 나타납니다. 대상을 참고하세요.
  • 항목별 배치. 모든 컨테이너, VM, 파일 세트 카드에는 버튼 행이 있습니다. 로컬과 오프사이트 대상마다 하나씩이며, 켜진 버튼이 백업을 받습니다. 이미 NAS에 있는 공유를 굳이 B2에도 보낼 필요가 없습니다. 위치는 첫 백업부터 고정되고, 사본은 언제든 바뀔 수 있으며, 카드는 몇 개의 사이트가 그 항목을 보유하는지와 3-2-1이 충족되는지 보여줍니다. 항목별 배치를 참고하세요.
  • 배치 기본값. 도메인마다 하나의 행이 새 항목이 어디에 기록되는지와, 자체 선택이 없는 항목이 어떤 대상으로 복사되는지를 정합니다. 바꿔도 기존 백업은 옮겨지지 않으며, 어떤 대상이 항목을 얻거나 잃는지 미리 알려줍니다.
  • 수동 백업 순서. 컨테이너 페이지의 백업 순서 패널에서 컨테이너가 백업되는 정확한 순서를 설정합니다. 예약 및 다중 선택 실행은 그 순서를 따릅니다. 순서를 지정하지 않은 컨테이너는 이전의 가장 기한이 지난 것 우선 동작을 유지하며, 단일 컨테이너 백업은 변함이 없습니다.
  • 구성 가능한 보존: keep-last / 일별 / 주별 / 월별 / 연별로, 매 백업 후 자동으로 정리되며 소스별로 설정됩니다(로컬과 오프사이트 모두 설정, 보존에서 설정하여 오프사이트 사본을 아카이브로 더 오래 보관할 수 있음). 각 소스는 로컬과 오프사이트에서 자체 규칙을 따를 수도 있습니다(소스별 보존 규칙). 예를 들어 매일 바뀌는 컨테이너는 일별 백업 7개를, 거의 바뀌지 않는 VM은 더 적게 보존합니다.
  • 저장소별 압축: 끄기, 자동(restic 기본값), 최대 중에서 각 백업 경로와 각 이름 있는 저장소는 설정, 저장 공간에서, 각 오프사이트 대상은 설정, 오프사이트에서 고릅니다. 백업, 오프사이트 사본, 정리가 이 설정으로 쓰며 복구 키트에도 적혀 있어 restic만으로도 같은 방식으로 계속 쓸 수 있습니다.
  • 도메인별 예약(일별 / 주별(여러 요일 세트 포함) / N일마다 / 원시 cron), 모두 설정, 일정 한 곳에서 편집. 컨테이너, VM, 폴더 세트, ZFS 항목은 하나씩 자체 주기를 가질 수 있으며, N일마다는 복원 훈련, 변조 테스트, 주간 요약에도 쓸 수 있습니다.
  • 앱이 유휴 상태가 될 때까지 대기. 컨테이너는 앱이 바쁜 동안 예약 백업을 설정한 시간까지 기다리게 하고, 앱이 유휴 상태가 되면 바로 시작할 수 있습니다. 미디어 서버는 스트리밍하지 않을 때, 다른 컨테이너는 CPU와 트래픽이 설정, 일정의 기준 아래에 몇 분간 머물 때 유휴 상태입니다(호스트 네트워크에서는 CPU만 봅니다). 대기 중인 백업은 이유와 기한과 함께 활동 로그와 컨테이너에 표시됩니다. 잠금을 잡지 않으므로 다른 컨테이너는 계속 진행됩니다. 수동 백업은 절대 기다리지 않습니다. 같은 실행에서 백업할 compose 스택의 구성원은 함께 기다리며, 재시작 후에도 대기는 기한을 유지한 채 이어집니다. 컨테이너를 끄면 대기 중인 백업이 모두 취소되고, 일정을 끄면 그 실행이 붙잡아 둔 백업이 취소됩니다. 시간을 줄이면 이미 시작된 대기도 짧아집니다.
  • 오프사이트 대역폭 제한. restic 업로드/다운로드 속도를 제한하여 복제가 WAN을 포화시키지 않도록 합니다.
  • 스트리밍 우선. Plex, Jellyfin, Emby 같은 미디어 서버가 스트리밍하는 동안 오프사이트 복사는 더 낮은 제한으로 업로드하고, 스트림이 끝나고 몇 분 뒤 평소 제한으로 돌아갑니다. BombVault는 Docker에서 미디어 서버의 송신 트래픽을 읽습니다. REST, S3, B2, Azure, Google Cloud, Swift와 HTTP를 쓰는 rclone은 복사 도중에 느려지고, SFTP와 로컬 또는 마운트된 폴더는 다음 복사 단계에서 낮은 제한을 받습니다. 호스트 네트워크의 미디어 서버는 측정할 수 없습니다. 설정, 오프사이트에 있습니다.
  • 콜드 및 아카이브 스토리지 클래스(S3). 네이티브 S3 오프사이트 저장소의 경우 스토리지 클래스를 선택할 수 있으며, 복원 가능한 계층(Standard, Standard-IA, One Zone-IA, Intelligent-Tiering, Glacier Instant Retrieval)으로 제한되어 아카이브 가격이 조용히 복원을 망가뜨리는 일이 없습니다. 먼저 비동기 해동이 필요한 딥 아카이브 계층(Glacier Flexible, Deep Archive)은 의도적으로 제외됩니다. 네이티브 S3 백엔드만 해당하며, rclone 원격은 rclone 구성에서 클래스를 설정합니다.
  • 백업 폴더는 장비 밖으로 복사 가능한 상태를 유지합니다. 매 백업 후 BombVault는 로컬 저장소 트리를 디렉터리 0755 / 파일 0644로 완화하므로(저장소는 암호화되어 있어 아무것도 노출되지 않음) SMB를 통한 비root 동기화 사용자가 차단되지 않습니다. 복구 정의는 각 저장소 안에 있으므로, 복사한 저장소 폴더는 완전히 자기 완결적입니다.

통찰, 검증 및 모니터링

  • 카드에서 일시 중지. 컨테이너, VM, 폴더 세트의 모든 카드에는 항목을 일정과 전체 백업에서 빼는 일정 일시 중지와 다시 넣는 일정 다시 시작가 있습니다. 일정에 포함과 같은 스위치를 조작하므로 둘은 항상 일치합니다. 일시 중지된 항목에는 회색 일정 일시 중지됨 배지가 붙으며, 지금 백업은 그대로 동작합니다.
  • 보호 상태(RPO). 대시보드는 마지막 성공한 백업을 일정과 비교하여 도메인별로 녹색 / 황색 / 적색 표시를 보여주므로, 기한이 지난 백업이 로그에 숨는 대신 적색으로 바뀝니다.
  • 백업 상태 히트맵. 도메인별 일일 백업 결과를 GitHub 기여도 스타일 달력으로 보여주며, 컨테이너 / VM / 플래시 / 셀프 백업 / 폴더 토글이 있습니다.
  • 어디서나 실행 시간. 모든 실행 기록 항목은 시작, 종료(소요 시간)를 표시하고, 각 컨테이너와 VM은 자체 페이지에 최근 실행 목록을 가집니다.
  • 재배치할 수 있는 대시보드. 사용자 지정 모드를 켜서 카드를 원하는 순서로 드래그하고 필요 없는 것을 숨기세요. 레이아웃은 브라우저별로 저장됩니다.
  • 저장소 크기 및 중복 제거 추세. 도메인별 현재 저장소 크기, 중복 제거 비율, 스냅샷 수와 함께 저장 공간 증가 스파크라인을 보여줍니다.
  • 복원 검증 리허설. BombVault는 주기적으로 백업이 복원 가능함을 입증하고(restic check --read-data-subset, 제한됨) 도메인별로 복원 가능 확인됨 배지를 표시합니다.
  • 첫 백업 후 복원 확인. 항목의 첫 백업이 끝나면 BombVault는 그 일부(최대 파일 100개, 256 MiB)를 복원 폴더 안의 임시 폴더에 복원하고, restic이 각 파일을 해시와 대조해 다시 읽게 한 뒤 크기를 백업과 비교합니다. VM 디스크처럼 샘플에 넣기에 너무 큰 파일은 대신 처음 64 MiB를 다시 읽습니다. 항목 카드에 결과가 표시되고, 실패하면 알림이 전송되며, 복원 확인을 누르면 언제든 최신 백업에 같은 검사를 실행합니다. 이후 백업에서는 반복하지 않습니다.
  • 시작 테스트. 바이트가 맞다고 해서 앱이 다시 올라온다는 보장은 없습니다. 컨테이너 카드의 시작 테스트는 최신 백업을 격리된 사본으로 복원하고 시작합니다. 이름은 bombvault-test-로 시작하고, 게시된 포트도 LAN으로 가는 경로도 없는 자체 내부 Docker 네트워크, CPU 1개와 메모리 2 GiB, 복원 폴더 안의 임시 폴더에 둔 데이터를 씁니다. 컨테이너의 헬스체크가 정상으로 보고하면 통과하고, 헬스체크가 없으면 첫 번째 노출 포트가 그 네트워크 안에서 응답할 때, 둘 다 없으면 계속 실행될 때 통과합니다. 원래 컨테이너는 절대 중지되거나 변경되지 않으며, 사본과 그 네트워크, 데이터는 테스트 후 제거됩니다. 테스트 도중 BombVault가 다시 시작되어도 마찬가지입니다. 호스트 네트워크를 쓰는 컨테이너, 특권 컨테이너, 장치를 쓰는 컨테이너, 다른 컨테이너가 필요한 컨테이너는 테스트할 수 없다고 표시됩니다. 예약된 복원 검사에서 시작 테스트를 켜면 실행마다 가장 오래전에 테스트한 컨테이너부터 하나씩 테스트합니다. 결과는 카드와 대시보드에 표시됩니다. 복사본은 원본의 레이블을 하나도 갖지 않고, 원본이 추가한 capabilities, 보안 옵션, sysctl, cgroup parent 없이 실행됩니다. 이것이 필요한 컨테이너는 테스트에 실패하고, 결과에 복사본이 무엇 없이 실행됐는지 표시됩니다.
  • 자가 치유 작업. 확실히 고아가 된 restic 잠금(작업 도중 재시작으로 남겨진 것)은 자동으로 강제 해제되고 한 번 재시도됩니다. 보존은 정체성이 안정적이며(항목별로 정리, 경로나 호스트 변경에 영향받지 않음), 보존 실패는 알림을 보냅니다.
  • 폴더 스캔이 볼 수 없는 경고. 제외 도우미는 크기에 관한 질문에 답합니다. 그런데 가장 값비싼 백업 실수 중 일부는 크기 문제가 아니므로, 애플리케이션이 데이터를 저장하는 방식에 관한 앱별 주의 사항도 함께 담고 있습니다. 이 기능이 존재하는 이유가 된 사례는 Immich입니다. Immich는 모든 사진의 앨범, 얼굴, 날짜를 별도의 컨테이너에서 실행되는 PostgreSQL 데이터베이스에 보관하므로, Immich 컨테이너를 파일 수준으로 백업하면 그 정보 없이 사진만 복원되고, 복원은 성공한 것처럼 보입니다. 이 경고는 제외 항목이 제안되는지와 관계없이 표시되며, 스캔할 항목이 하나도 선택되지 않은 컨테이너에서도 표시됩니다. 주의 사항은 어느 쪽이든 사실이기 때문입니다.
  • 백업 안 됨(커버리지). 자동 백업이 다루지 않는 서버의 모든 것을 각각의 이유와 함께 보여 주는 대시보드 카드입니다. 이유는 BombVault에 한 번도 추가되지 않음, 있지만 일정에 포함되지 않음, 자체 일정이 꺼져 있음, 어디에서도 일정이 켜져 있지 않음 중 하나입니다. 그 위의 보호 표시는 다른 질문, 즉 예약된 백업이 제시간에 실행되었는지에 답하며, 아무도 설정하지 않은 컨테이너는 볼 수 없습니다. 그런 컨테이너는 어떤 목록에도, 어떤 오류에도 나타나지 않으므로 무엇도 황색으로 바뀌지 않습니다. 컨테이너는 BombVault 자체의 행이 아니라 실시간 Docker 목록에서 읽습니다. 행이 없는 항목이야말로 이름을 알려야 하는 항목이기 때문입니다. 끈 백업 유형은 사용자가 선택한 것이므로 집계에서 완전히 빠집니다.
  • 보존 미리 보기. 보존 설정 옆의 패널은 다음 실행에서 삭제될 것을 실제로 삭제되기 전에 보여 줍니다. 저장소별, 항목별로, 복원 지점의 이름과 함께 표시합니다. 저장소 잠금을 걸지 않고 아무것도 바꾸지 않으므로, 백업이 실행 중일 때에도 답합니다. 보존이 꺼져 있으면 빈 목록을 보여 주는 대신 그렇다고 알리고, 추가 전용 저장소는 그렇다고 표시하며(그곳에서는 보존이 전혀 실행되지 않음), 연결할 수 없었던 저장소는 조용히 빠지는 대신 이름으로 표시됩니다. 로컬과 오프사이트 정책 모두 설정, 보존 아래에 있으며, 각자 자기 것을 미리 보여 줍니다.
  • 이상 징후. 컨테이너, VM, 폴더 세트, 데이터베이스 덤프, 플래시 드라이브, 셀프 백업의 모든 백업을 그 대상 자신의 기록과 비교합니다. 검사 대상은 다음과 같습니다. 실행에서 저장된 새 데이터를 최근 백업의 평소 가장 큰 양 및 평소 시간당 속도와 비교한 값, 데이터 대부분을 다시 저장한 백업(이름을 바꾸고 다시 쓴 파일 포함), restic이 대상마다 그리고 덤프마다 보고하는 소스 크기와 파일 수, restic 자체의 백업 시간, 연속 실패와 간헐적 실패, 더 이상 통과하지 않는 복원 검사, 그리고 저장소 증가량으로 예측한 로컬, SFTP 및 rclone 저장소의 여유 공간입니다. 대상은 처음 10번의 백업으로 학습하지만, 거의 빈 소스, 데이터 대부분의 재작성, 실패는 처음부터 검사합니다. 업데이트할 때 restic 0.17이 저장해 두는 스냅샷 요약에서 기록을 한 번 읽어 오므로 기존 설치가 처음부터 다시 시작하지 않습니다. 민감도(엄격, 균형, 느슨)와 알림을 보내는 가장 낮은 심각도는 설정, 무결성에서 전체적으로 설정하고 대상마다 바꿀 수 있습니다. 경고는 원인이 사라지면 스스로 닫힙니다. 잃어버린 데이터와 차오르는 디스크에 대한 심각한 발견은 확인할 때까지 남아 있고, 확인한 발견은 그 원인이 한 번 사라지기 전에는 다시 보고되지 않습니다. 예상된 것으로 표시는 10번의 백업 뒤에 새 수준을 정상으로 만들지만 거의 빈 소스 검사는 절대 끄지 않으며, 선택을 바꾸면 대상의 기록이 저절로 새로 시작됩니다. 소스가 거의 비었거나, 크게 줄었거나, 한 백업이 데이터 대부분을 다시 저장한 동안에는 발견을 확인하거나 예상된 것으로 표시할 때까지 보존 정책이 그 대상의 오래된 백업을 남겨 두고, 발견은 마지막 정상 백업으로 연결됩니다. 알림은 한 사건마다 한 번 보내며, 이미 알림을 보내는 실패와 복원 검사는 두 번 보고하지 않습니다. 하지 않는 일: S3, B2, REST 저장소에는 여유 공간 값이 없고, Unraid 사용자 공유에서는 여유 공간이 어레이 전체의 것이며, restic 0.17 이전의 백업에는 크기 기록이 없습니다. ZFS 대상도 데이터세트별로 검사합니다. 트리의 각 데이터세트는 자기만의 기록을 가지며, 비워졌거나 더 이상 읽을 수 없게 된 데이터세트는 데이터 손실로 취급되고, 그 데이터세트의 오래된 백업만 보존됩니다. ZFS 항목을 데이터세트별로 살피는 방식은 ZFS 데이터세트에 설명되어 있으며, 어시스턴트는 MCP 서버를 통해 열린 이상 징후를 읽을 수 있습니다. 소스의 크기나 파일 수에 관한 탐지는 처음 나타난 백업의 시점으로 표시되며, 이전 백업과 비교 는 파일이 사라지거나 새로 들어오거나 바뀐 폴더를 나열하고, 거의 전부가 앱이 스스로 다시 만드는 검색 인덱스, 캐시 또는 미리보기 이미지에 있으면 그 점을 알려 줍니다.
  • 앱별 권장 제외 항목. 잘 알려진 이미지(Plex, Jellyfin, Emby, Sonarr, Radarr, Lidarr, Readarr, Prowlarr, Immich, Nextcloud, PhotoPrism, Tautulli의 linuxserver, hotio, binhex 또는 공식 배포판)에서는 제외 도우미가 앱이 스스로 다시 채우는 폴더(캐시, 로그, 미리보기 이미지, 포스터)를 제안합니다. 각 항목은 무엇이 들어 있는지 알려 주고, 어느 것이든 끌 수 있으며, 선택 항목 제외을 누르기 전에는 아무것도 제외되지 않습니다.
  • 지원 번들. 버그 보고용으로 한 번의 클릭으로 만드는, 민감 정보를 가린 ZIP입니다. 호스트 통합 확인, 모든 비밀 값을 뺀 구성, 최근 실행, 다음에 예약된 것, 최근 로그가 들어 있습니다. 또한 각 데이터베이스의 마지막 덤프 결과, 컨테이너가 보는 마운트와 함께 ZFS 항목, 열린 이상 징후, MCP 키의 개수(이름은 절대 포함하지 않음)도 담깁니다. 비밀번호, 토큰, rclone 구성, 알림 자격 증명, 저장소 위치에 들어 있는 비밀번호는 모두 제거되며, 번들은 자체 매니페스트에서 그렇다고 밝힙니다. 지원용 파일을 구성 백업으로 착각해서는 안 되기 때문입니다. 복구 키트와 같은 이유로 로그인 비밀번호가 필요합니다. 담기는 로그는 이 컨테이너가 마지막으로 시작된 이후의 출력입니다. 컨테이너를 재시작시킨 크래시라면 여전히 docker logs를 확인해야 합니다.
  • 암호화 키 복구 키트. 마스터 키, 파생된 restic 비밀번호, 정확한 저장소 위치와 명령을 원클릭으로 다운로드하므로, 실행 중인 BombVault 없이도 복원할 수 있습니다. 오프사이트 및 복구를 참고하세요.
  • 설정 내보내기 및 가져오기. 설정, 시스템 페이지의 설정 내보내기 / 가져오기 카드는 전체 구성(도메인 설정, 오프사이트 대상, 일정, 보존, 알림)을 이식 가능한 JSON 파일로 기록하므로, 새 장비로 옮기거나 설정을 복제할 때 모든 것을 손으로 다시 입력할 필요가 없습니다. 오프사이트 및 알림 자격 증명을 포함할지 선택할 수 있으며, 포함하면 파일이 복구 키트만큼 민감해집니다. 가져오기는 미리 보기를 표시하고 확인을 요청하며, 백업 데이터나 기록을 절대 건드리지 않습니다.
  • 알림. Webhook(Discord / Slack / Gotify / ntfy), Matrix, Healthchecks.io, 이메일(SMTP), 셀프 호스팅 Apprise API 서버, 그리고 Unraid의 네이티브 알림 시스템. 백업별 정책: 안 함 / 실패 시 / 항상. 여러 항목의 예약 실행은 하나의 N/M 성공 요약을 보낼 수 있습니다. URL이 설정되면 Healthchecks는 전체 수명 주기(/start, 그다음 성공 또는 /fail)를 받습니다.
  • 주간 요약. 같은 채널로 일주일에 한 번 메시지를 보냅니다. 실행 횟수, 새로 들어온 백업 데이터의 양, 오프사이트가 최신인지 여부, 주요 실패가 담깁니다. 기본값은 꺼짐이고 설정, 알림에 자체 주기가 있으므로, 조용한 주도 그렇다고 한 번 보고됩니다.
  • Prometheus /metrics. Grafana 또는 Uptime Kuma용 선택 기능(기본 꺼짐, 선택적 bearer 토큰). 레이블에 비밀이나 경로 없이 백업 상태, 크기, 타임스탬프를 노출합니다.
  • HTTP API, Home Assistant, mDNS. 스크립트와 대시보드는 이름 있는 토큰으로 /api/v1 아래의 API를 쓸 수 있으며, 토큰은 읽기 전용이거나 백업 시작까지 허용할 수 있습니다. Home Assistant는 MQTT 디스커버리로 BombVault를 찾아, 센서가 달린 장치로 등록하고 허용하면 도메인별 백업 버튼도 추가합니다. 또한 BombVault는 네트워크에 bombvault.local로 자신을 알립니다. API와 연동을 참고하세요.
  • 여유 공간과 가득 찰 때까지 남은 주. 로컬 저장소, SFTP 저장소, 그리고 여유 공간을 알려 주는 SMB 또는 WebDAV 대상은 여유 공간과 현재 증가 속도로 몇 주가 남았는지 보여 줍니다. S3, B2, REST 저장소에는 "여유 공간 알 수 없음"이 표시되는데, 이런 백엔드는 여유 공간을 알려 주지 않기 때문입니다.
  • 폴더별 크기. 컨테이너, VM, 폴더 세트의 백업 영역에 있는 폴더별 크기는 최신 백업에서 공간을 차지하는 폴더와 파일, 그리고 그중 마지막 백업이 새로 가져오거나 바뀐 양을 한 단계씩 보여 줍니다. BombVault는 파일을 읽지 않고 저장소 인덱스에서 읽으며, 한 번 열어 두면 백업할 때마다 갱신합니다.
  • 백업이 느렸던 이유. 백업이 도는 동안 BombVault는 CPU, 디스크, 네트워크가 얼마나 바쁜지 봅니다. 백업이 평소보다 훨씬 오래 걸리고 한 가지가 분명히 한계에 있었다면 실행 기록에 그 내용이 나옵니다. 예를 들어 "대상 디스크 disk1의 사용률이 98%였습니다" 또는 "BombVault가 컨테이너 CPU 한도의 100%를 사용했습니다"입니다. 그렇지 않으면 아무것도 표시하지 않습니다.
  • 마지막 백업 이후 변경됨. 마지막 백업 이후 다른 이미지, 포트, 변수, 볼륨으로 다시 만들어진 컨테이너는 이름 옆에 표시가 붙습니다. 그 (i)는 바뀐 내용을 보여 주며 변수는 이름만 표시합니다. 알림일 뿐이며 다음 백업 후에 사라집니다.

랜섬웨어 보호

  • 불변(append-only) 오프사이트. 오프사이트 저장소를 append-only로 표시하여 랜섬웨어나 손상된 호스트가 백업을 삭제하거나 다시 쓸 수 없게 합니다. 상대편(--append-only 모드의 restic/rest-server)이 이를 강제하며, BombVault는 오직 검증만 하고 구성 주장만으로는 절대 녹색을 표시하지 않습니다.
  • 변조 테스트. BombVault는 주기적으로 오프사이트 저장소에 대해 실제로 삭제를 시도하여(존재하지 않는 객체를 대상으로) append-only 보증을 입증합니다: 거부되면 보호됨, 허용되면 보호되지 않음. 결론이 나지 않는 결과는 저장된 판정을 절대 뒤집지 않습니다.
  • 안내형 오프사이트 설정. 마법사가 백엔드 선택부터 바로 붙여넣을 수 있는 rest-server 배포 스니펫, 연결 테스트, 불변 토글, 보존 전략까지 안내합니다.
  • DR 리허설(오프사이트). 오프사이트 저장소에서 실제 대상을 일회용 샌드박스로 복원하고, 파일 단위와 바이트 단위로 검증한 다음 정리합니다. 오프사이트 및 복구를 참고하세요.
  • 랜섬웨어 보호 스코어카드. 도메인별 녹색 / 황색 / 적색 자세와 시점이 표시된 체크리스트를 가진 대시보드 카드입니다. 모든 적색 행은 수정 방법으로 딥 링크됩니다. 검증된 사실에서만 녹색이 됩니다.
  • 증가 예산 경보. 불변 오프사이트(오래된 스냅샷을 의도적으로 절대 정리하지 않는 곳)의 경우 크기 예산을 설정하고 폭주하기 전에 경고를 받으세요.
  • 문구로 페어링. 인스턴스는 열두 단어로 하나의 그룹에 합류합니다. 한 대에서 문구를 만들고, 다음 대에서 그것을 입력하세요. 같은 네트워크에 있는 구성원은 직접 통신하고, 그 밖의 구성원은 릴레이(프로젝트 릴레이, 자체 릴레이, 또는 릴레이 없음)를 거칩니다. 구성원 사이의 모든 통신은 종단 간 암호화됩니다. 그룹은 인스턴스 페이지의 스코어카드, Mesh 오프사이트 제안, 그리고 수신자나 가져오기 소스가 필요로 하는 것을 전달하지만, 백업 데이터와 APP_KEY는 절대 전달하지 않습니다. 오프사이트 및 복구를 참고하세요.
  • 인스턴스 페이지. 설정에서 인스턴스를 켜면, 이 인스턴스를 포함해 그룹의 모든 인스턴스마다 카드가 있는 페이지가 생깁니다. 카드에는 주소, 연결 여부, 그리고 도메인별 보호 상태와 마지막 백업이 로컬 대시보드와 같은 적색, 황색, 녹색으로 표시됩니다. 지금 확인을 누르면 구성원에게 도메인 하나의 저장소를 검증해 달라고 요청합니다. 이 페이지에서는 다른 장비의 백업, 복원, 삭제를 시작할 수 없습니다.
  • Mesh 오프사이트. 구성원은 그룹을 통해 자기 오프사이트 저장소를 다른 구성원에게 제공할 수 있습니다. 상대 관리자는 인스턴스 페이지에서 제안을 보고 수락하거나 거절하며, 수락하면 일반 자격 증명 세트와 오프사이트 대상이 만들어집니다. 이 경로로는 연결 정보만 오가고, 백업 데이터는 절대 오가지 않습니다.
  • 수신자 대시보드(수신 측). 다른 BombVault로부터 불변 오프사이트 사본을 받는 장비에서 수신자 토글(설정)을 켜서 수신자 탭을 표시하세요. 받은 저장소를 읽기 전용으로(보내는 인스턴스의 restic 비밀번호로 열리며, 이는 페어링 그룹을 통해 도착합니다) 등록하면, 소스별로 그룹화된 스냅샷 인벤토리, 각 소스가 마지막으로 도착한 시점을 볼 수 있고, 수신 하드웨어에서 독립적인 restic check를 실행할 수 있습니다. 설정한 기간 내에 소스가 전송을 멈추거나(데드맨 스위치) 무결성 검사가 실패하면 경고합니다. 엄격히 읽기 전용이므로 받은 저장소에 절대 쓰지 않으며, 기본적으로 꺼져 있습니다. 오프사이트 및 복구를 참고하세요.
  • 다른 인스턴스에서 가져오기(가져오기 쪽). 오프사이트 복제의 거울상입니다. 이 장비가 스냅샷을 밖으로 내보내는 대신, 다른 누군가의 것을 안으로 가져옵니다. 가져오기 토글(설정)을 켜서 인스턴스 페이지의 가져오기 탭을 표시하고, 페어링 그룹에서 다른 인스턴스와 그 저장소 위치를 선택한 다음, 어떤 종류의 백업을 가지고 있는지와 얼마나 자주 가져올지를 선택하세요. 그 restic 비밀번호는 그룹을 통해 도착하며, APP_KEY는 절대 아닙니다. 반대편은 더 이상 설정할 것이 없으며 실행 중일 필요도 없습니다. 소스 저장소는 오직 읽히기만 합니다. 비밀번호를 확인하고 목록으로 표시하고 사본의 소스로 지정하기 위해 열릴 뿐, 초기화하거나 잠금을 풀거나 정리하거나 기록하는 일은 절대 없습니다. 양쪽은 각자 자격 증명을 유지하며, rclone: 소스는 rclone이 이 인스턴스의 리모트로 그곳에 접근하게 되므로 거부됩니다. 오프사이트 및 복구를 참고하세요.

일반 내보내기

  • 컨테이너 일반 내보내기. 컨테이너별 내보내기 (일반 tar) 버튼은 저장소 옆에 탐색 가능하고 도구가 필요 없는 사본을 기록합니다: 백업 폴더의 <name>.tar.gz와 Unraid <name>.xml 템플릿. restic은 여전히 엔진이며, 이것은 추가적인 편의 사본입니다.
  • VM 일반 내보내기. VM도 동일한 내보내기(일반 tar)를 가집니다: 디스크 이미지의 <name>.tar.gz와 <name>.xml. BombVault나 restic 없이 virsh define과 디스크로 복원할 수 있습니다.
  • 일반 내보내기 암호화(age). 내보내기는 restic 밖에 위치하므로 기본적으로 평문입니다. 설정에서 age 암호화를 켜고 하나 이상의 수신자(age 공개 키 또는 SSH 공개 키)를 추가하세요. 그러면 각 내보내기(컨테이너 및 VM .tar.gz, 그 .xml 사이드카, 플래시 ZIP)가 그 수신자를 위해 봉인되며, 나중에 장비 밖에서 해당 개인 키로 복호화합니다. 안전 규칙으로, 암호화가 켜져 있고 유효한 수신자가 설정되지 않으면, 내보내기는 평문을 쓰는 대신 명확한 오류와 함께 실패합니다.
  • 복구 키트도 봉인됩니다. 같은 설정이 켜져 있으면 키트는 bombvault-recovery-kit.md.age로 다운로드됩니다. 바이너리가 아니라 ASCII 아머 형식이므로 그대로 읽을 수 있는 일반 텍스트입니다. 비밀번호 관리자에 붙여 넣거나 인쇄할 수 있으며, 키트는 바로 그런 용도입니다. 같은 안전 규칙이 적용되므로, 암호화가 켜져 있는데 쓸 수 있는 수신자가 없으면 마스터 키를 평문으로 내주는 쪽으로 돌아가지 않고 다운로드를 거부합니다. 이것을 켤 때 제대로 챙겨야 할 점이 하나 있습니다. 키트를 열려면 age 개인 키가 필요하므로, 그 키는 키트 자체에 의존하지 않는 곳에 보관하세요.

AI 어시스턴트 (MCP)

BombVault에는 MCP 서버가 내장되어 있어 Claude Code나 Claude Desktop 같은 어시스턴트가 백업 상태, 적용 범위, 실행 기록, 복원 지점, 진행 중인 활동을 읽을 수 있습니다. 허용된 키가 있으면 어시스턴트는 한 항목, 한 도메인 또는 전체의 백업을 시작하고 자신이 시작한 백업을 취소할 수도 있습니다. 복원, 삭제, prune, 설정은 웹 인터페이스에 남습니다. 클라이언트마다 설정, 연동, MCP 서버에서 자신의 키를 받습니다. 키는 한 번만 표시되고 지문으로만 저장되며, 언제든 이름을 바꾸거나 교체하거나 폐기할 수 있습니다. 시작은 시간당과 항목당으로 제한되고, 보존 가드가 어시스턴트의 백업이 "최근 N개 보존" 정책에서 여러분의 복원 지점을 밀어내지 못하게 합니다. 어시스턴트가 시작한 실행에는 키 이름과 함께 "MCP 경유"가 표시됩니다. MCP 서버를 참고하세요. 데이터베이스 덤프와 ZFS 데이터세트도 어시스턴트가 읽는 항목과 복원 지점에 포함되며, BombVault가 발견한 이상 징후도 나열할 수 있습니다.

앱과 동반 도구

  • Android 앱. 그룹의 모든 서버를 휴대폰에서 보고, 모든 서버의 활동 로그를 한 화면에서 확인합니다. QR 코드로 그룹과 페어링하며, 각 서버를 이미 로그인된 상태로 엽니다. Android 앱을 참고하세요.
  • 수신 서버. 오프사이트 사본을 받는 컴퓨터는 클릭 한 번으로 append-only rest-server를 시작해 그룹의 다른 인스턴스에 제공할 수 있으며, 로그인은 인스턴스마다 따로 주어집니다. 수신 서버를 참고하세요.
  • 설정, 앱. 맨 위에 Android 앱 카드가 있어 서버가 실행 중인 릴리스의 APK와 그 QR 코드를 제공하고, 이어서 동반 도구마다 카드가 있는 페이지입니다. ParleyPort 카드는 Unraid 템플릿을 제공하고, ParleyPort를 시작하는 Docker 명령을 복사해 주며, 그 저장소와 페어링 아래의 릴레이 설정으로 안내합니다. BombVault Widget 카드는 템플릿과 저장소를 제공하고, 호스트 SSH 연결을 통해 플러그인을 설치하거나 제거합니다.
  • BombVault Widget. Unraid 대시보드의 타일로, BombVault의 활동 로그와 다음 예약 실행을 보여 줍니다. 호스트 SSH 연결이 없으면 카드는 Plugins, Install Plugin에서 설치할 .plg 주소를 알려 주며, 플러그인은 다른 플러그인처럼 그곳에서 제거할 수 있습니다.
  • 삽입 가능한 활동 로그. 설정, 연동에서 읽기 전용 토큰을 생성하면 Homepage, Organizr, Heimdall처럼 iframe을 표시하는 대시보드에 넣을 주소를 얻습니다. 실시간 활동 로그만 있는 작은 페이지입니다. 토큰은 그 로그만 볼 수 있게 하며, 비활성화를 누르면 즉시 폐기됩니다. 삽입되는 페이지는 영어로만 제공됩니다.

기타

  • 실행 중인 백업 중지. 백업을 시작할 수 있는 모든 카드에는 실행 중에 진행 막대 옆에 백업 취소 버튼이 있습니다. 그 실행은 실패가 아니라 취소됨으로 기록됩니다. restic은 스냅샷을 마지막에 쓰므로 중단된 실행은 참조되지 않는 데이터만 남기고 스냅샷은 남기지 않아, 중지해도 안전합니다.
  • 한 번에 여러 개 백업. 컨테이너를 다중 선택하고 선택 항목 백업을 누르세요. 배치는 서버 측에서 실행되므로 탭을 닫거나 연결이 끊겨도 계속됩니다. BombVault는 자체 컨테이너를 절대 백업하지 않으며(따라서 절대 중지하지 않음).
  • 스냅샷 브라우저: 복원 지점 목록, 스냅샷별 삭제, 파일 수준 복원을 위한 접을 수 있는 폴더 트리를 제공합니다.
  • 도메인별 저장소 유지 관리: 검증(restic check), 잠금 해제(멈춘 잠금 제거), 정리(정책이 설정되어 있으면 요청 시 보존 정책 적용, 그렇지 않으면 일반 공간 회수).
  • 검증, 복원 검사, 정리의 진행 상황. 이 중 하나가 실행되는 동안 활동 기록과 무결성 카드에 restic이 센 진행 정도(예: 팩 47개 중 12개)가 표시되고, 추정할 만큼 데이터가 쌓이면 그 단계의 남은 시간도 표시됩니다. 여기서 restic은 바이트가 아니라 팩, 스냅숏, 인덱스 파일을 세므로 막대도 그것을 보여 줍니다. 첫 번째 수치가 나오기 전에는 숫자 없이 움직입니다.
  • 데이터베이스 자동 덤프. 인식된 PostgreSQL, MySQL, MariaDB 컨테이너(공식 이미지, PostGIS, TimescaleDB, pgvector, pgautoupgrade, Immich의 데이터베이스 이미지, linuxserver, yobasystems, jc21의 MariaDB, Oracle의 mysql-server)는 백업 전마다 실행 중인 서버에서 덤프됩니다. 데이터베이스처럼 보이기만 하는 컨테이너도 카드에 같은 선택지를 받지만, 직접 켤 때까지는 꺼져 있습니다. 덤프는 저장소로 곧장 흘러들어 파일 백업 옆에 자체 복원 지점이 되며, 디스크에는 결코 기록되지 않습니다. 자격 증명은 컨테이너 자신의 변수에서 오고(*_FILE 비밀 포함), 컨테이너를 떠나지 않습니다. 각 카드는 데이터베이스의 데이터 폴더가 컨테이너를 멈춘 상태로 저장되는지, 실행 중에 복사되는지, 아예 저장되지 않는지 보여 줍니다. 덤프가 실패해도 백업은 실패하지 않습니다. 이유와 해결 힌트가 붙은 실패한 실행으로 나타나고 알림을 보냅니다. 덤프가 저절로 되돌려지는 일은 없습니다. 덤프를 내려받고(원본 또는 압축), 폴더에 저장하고, 갓 시작한 데이터베이스로 한 번의 클릭으로 가져오거나, restic CLI로 꺼낼 수 있습니다. 컨테이너별로, 라벨 bombvault.dbdump=false로, 또는 설정에서 모든 컨테이너에 대해 끌 수 있습니다. 이상 징후 감지는 각 덤프의 크기도 살피며, 어시스턴트는 MCP 서버를 통해 컨테이너의 덤프를 나열할 수 있습니다.
  • 컨테이너별 사전/사후 백업 훅. 셸 명령이 컨테이너 내부에서 실행됩니다(예: 캐시를 디스크로 내보내기). 사전 훅이 실패하면 백업이 중단됩니다. 인식된 데이터베이스는 자동으로 덤프되므로 훅이 필요 없습니다.
  • 백업 중 다른 컨테이너 중지, 상태 게이트 재시작 포함. 이 컨테이너가 백업되는 동안 중지할 종속 컨테이너(예: 데이터베이스)를 지정하세요. 이후 BombVault는 Compose의 depends_on 순서대로 다시 가져오고, 기본적으로 각 컨테이너가 정상 상태(또는 헬스체크가 없으면 실행 중)를 보고할 때까지 기다린 후에 그에 의존하는 컨테이너를 시작합니다. 따라서 Pi-hole, 데이터베이스, VPN 게이트웨이 같은 종속 항목이 그것을 필요로 하는 서비스보다 실제로 먼저 가동되어, 그 서비스가 connection refused로 되돌아가는 일이 없습니다. 대기는 컨테이너별 타임아웃(기본 120초)으로 제한되므로 느리거나 절대 정상이 되지 않는 컨테이너가 실행을 멈추게 할 수 없습니다. 대기와 타임아웃은 모두 설정, 컨테이너에 있습니다(이전의 한꺼번에 재시작하려면 대기를 끄세요). 동일한 순서화된 상태 게이트 재시작은 사후 백업 이미지 업데이트도 감싸므로, 업데이트가 도착하는 날에는 종속 항목이 재생성 동안 내려간 상태로 유지되고 완료된 후에만 상태 게이트를 거쳐 다시 가동됩니다.
  • 컨테이너별 제외 패턴. 백업되는 볼륨 내부에서 건너뛸 하위 디렉터리를 한 줄에 하나씩 나열하세요. 컨테이너 내부에서 보이는 대로 경로를 입력하세요. 실시간 미리 보기가 각 줄이 무엇으로 해석되는지 보여주고, 어떤 줄이 아무것도 제외하지 않으면 경고합니다.
  • 백업 성공 후 업데이트(고급, 기본 꺼짐). 컨테이너에서 이를 켜면 BombVault가 최신 이미지를 가져와 재생성하지만, 실제로 더 새로운 이미지가 있을 때만 그렇게 하므로 항상 새 복원 지점이 먼저 존재합니다. 선택적 추가 기능: 업데이트된 컨테이너별 알림과 이미지 정리(다른 컨테이너가 공유하는 기본 이미지는 절대 삭제되지 않음). 업데이트 후 BombVault는 Unraid에 그 컨테이너의 업데이트 상태를 다시 확인하도록 요청하므로, Docker 탭의 오래된 update available 배너가 남아 있는 대신 스스로 지워집니다(Unraid 업데이트는 Docker API를 바로 거치므로, 그 캐시된 상태와 일부 버전에서는 캐시된 다이제스트가 그렇지 않으면 계속 배너를 표시함). 최선 노력 방식이며 백업에 절대 영향을 주지 않고, 기본적으로 켜져 있으며 설정에 토글이 있습니다.
  • 다른 폴더로 복원하여 복제 또는 검사에 사용합니다.
  • 스냅샷 비교 및 태그. 두 스냅샷을 비교하여 무엇이 바뀌었는지 확인하고, 스냅샷에 태그를 지정하여 필터링합니다.
  • 업데이트 후 새로운 기능. 릴리스 노트가 새 버전마다 한 번 팝업되며, 바이너리에 내장된 노트에서 제공되므로 대화 상자가 오프라인에서도 작동합니다.
  • 기본으로 HTTPS(자체 서명, 또는 리버스 프록시 뒤에 자체 인증서 사용).
  • Docker 헬스체크. 컨테이너는 자체 /api/health에서 정상/비정상을 보고하므로, 엔진이 멈추면 자가 치유 도구가 재시작할 수 있습니다.
  • 42개 언어의 다크/라이트 UI와 국기 선택기.
  • 설정은 저절로 저장됩니다. 스위치를 바꾸거나 입력란을 벗어나면 변경이 바로 기록되고, 컨트롤이 잠깐 반짝이며, 서버가 거부하면 흔들립니다. 반쯤 저장하면 위험한 세 곳에는 저장 버튼이 남아 있습니다. rclone 구성 상자, 자격 증명 세트 편집기, 로그인 비밀번호입니다.
  • 팝업 메시지 최소화. 설정, 일반에서 일상적인 확인 메시지를 끌 수 있어, 실패만 계속 알려 줍니다. 브라우저별 설정이며 알림에는 영향을 주지 않습니다.
  • 원하는 모양으로. 설정, 모양에서 색(강조 색 하나, 또는 여덟 색 팔레트를 쓰는 무지개 모드), 모서리(둥글게, 살짝 둥글게, 각지게), 애니메이션(끄기, 은은하게, 격렬하게, 폭풍)을 정할 수 있고, 브라우저마다 기억됩니다. 시스템이 동작 줄이기를 요청하면 항상 그쪽이 우선합니다.