Funciones¶
BombVault es simple por defecto y profundo cuando lo necesitas. La interfaz muestra solo lo esencial hasta que accionas el conmutador Vista simple / Vista avanzada. Esta página agrupa el conjunto completo de funciones.
Alcance de la copia¶

Los contenedores, cada uno con su interruptor de programación, su orden de copia y su historial.
| Qué | Qué se guarda |
|---|---|
| Contenedores Docker | El directorio appdata más la definición del contenedor (imagen, variables de entorno, puertos, etiquetas, volúmenes). Por defecto, todo el directorio appdata; Elegir carpetas en el contenedor marca exactamente qué carpetas cubre la copia, con un recuento en directo de las rutas, una lista de lo que has dejado fuera y un interruptor Omitir carpetas de caché por raíz (CACHEDIR.TAG). |
| VMs KVM / libvirt | La(s) imagen(es) de disco de la VM, la definición XML y la NVRAM UEFI (apagado ordenado o instantánea en vivo, por SSH). Las instantáneas en vivo recurren automáticamente a una copia ordenada si no se puede crear la instantánea, de modo que una copia de VM nunca falla sin más. Con Solo bloques modificados activado, una VM en marcha con discos qcow2 se lee mediante puntos de control de libvirt, así que una copia solo lee los bloques escritos desde la anterior, y cada instantánea sigue restaurando el disco entero por sí sola. Los discos en zvols de ZFS se transmiten con zfs send por el mismo enlace SSH, de modo que una VM cuyos discos son zvols se copia como una sola VM. El estado de un vTPM en passthrough se guarda junto a la NVRAM cuando el XML del dominio indica su ruta. Un vTPM emulado, que TrueNAS configura para los invitados Windows 11, no publica esa ruta, así que ten a mano la clave de recuperación de ese invitado. Consulta la guía de copia de VMs. |
| Flash de Unraid | Todo el USB flash (/boot): SO, licencia, configuración del array, recursos compartidos, red y configuración de plugins. La restauración es una descarga .zip de un clic y nunca sobrescribe el flash en ejecución. |
| Configuración de la app | El propio /config de BombVault (base de datos de ajustes, credenciales externas, par de claves SSH de libvirt), capturado con VACUUM INTO de SQLite para que nunca se capture una base de datos en modo WAL en mitad de una escritura. Restaurado mediante un autoreinicio, de modo que la base de datos en ejecución nunca se sobrescribe bajo un descriptor abierto. |
| Archivos y carpetas | Conjuntos de archivos con nombre: cualquier carpeta del servidor (un recurso compartido, tus documentos, una biblioteca de fotos), cada uno con patrones de exclusión opcionales por conjunto. Paridad completa con los demás dominios (calendarios, retención, copia externa, comprobaciones de integridad y ensayos de restauración). |
| Conjuntos de datos ZFS | Un conjunto de datos junto con todos los que tiene debajo, leído de una sola instantánea ZFS para que todos vengan del mismo instante, y guardado con restic como una carpeta: deduplicado, navegable, con restauración de archivos sueltos. Los conjuntos hijos nuevos se añaden solos, se puede dejar fuera cualquiera de ellos, y uno que no se puede leer se omite y se nombra. Opcionalmente se detienen contenedores o se ejecuta un comando solo durante el instante de la instantánea. Los volúmenes no se incluyen: el volumen de una VM se respalda con su VM, un volumen sin VM todavía no se respalda. Consulta Conjuntos de datos ZFS. |
Restauración¶

La recuperación guiada lleva una instalación nueva por el caso de desastre, todo en un sitio.
- Restauración completa de un clic. Elige una instantánea, haz clic en Restaurar. Listo.
- Línea de tiempo única por elemento. Los contenedores, las VMs, los conjuntos de archivos, el flash y la configuración de la app listan sus copias de seguridad como una única línea de tiempo por cada lugar donde residen, el repositorio en el que se escriben y cada destino externo. Una copia enviada a un destino externo aparece una sola vez, marcada con cada lugar. Los lugares externos se leen cuando los abres, y borrar en un lugar dice si era la última copia.
- Los contenedores se reinstalan automáticamente. La definición del contenedor se reproduce contra la API de Docker, de modo que el contenedor reaparece en la pestaña Docker de Unraid exactamente como estaba.
- La GPU, los límites y los enlaces vuelven. Un contenedor restaurado recupera sus límites de recursos, su controlador de registros, sus ajustes de DNS, sus enlaces heredados y su GPU o entorno de ejecución (
--gpus,--runtime=nvidia). En un host sin ese controlador de GPU o entorno de ejecución, la restauración lo dice y ofrece Restaurar sin GPU ni entorno de ejecución, también después de restaurar varios contenedores o un stack. Un enlace a un contenedor que falta, o que está detenido cuando arranca el restaurado, se omite, y el historial de ejecuciones lo indica. - Las VMs se recrean automáticamente. El XML se vuelve a importar por SSH para que la VM reaparezca en el VM Manager con su disco y su NVRAM UEFI reconectados, incluso después de que la VM haya sido eliminada. Descubrir copias reconstruye una entrada que ha desaparecido por completo (por ejemplo, tras una instalación nueva).
- Restauración individual. Restaura un contenedor, una VM o un conjunto de archivos sin tocar los demás.
- La restauración del flash es una descarga
.zip. Se transmite a tu navegador comoflash-<id>.zip, listo para colocarse en el creador de USB de Unraid. El/booten ejecución nunca se toca. - Un plugin cada vez. La página Flash lista los plugins de cada copia del flash con su versión y tamaño, y devuelve uno solo al flash en uso: su archivo
.plg, su carpeta enconfig/pluginsy los archivos de paquete que contiene la copia. Nada más cambia en el flash. Unraid instala el plugin en el siguiente arranque, o al momento en Plugins, Install Plugin. - Exportación programada del flash a zip. Después de cada copia del flash, escribe opcionalmente la instantánea como un
.zipsencillo en una carpeta que elijas (un únicoflash-latest.zipsobrescrito o un historial rotativo). Apúntala a una carpeta de Syncthing o rclone para que tu copia de USB arrancable salga del servidor automáticamente. - Comprobación de conflictos previa al arranque. Antes de detener o eliminar nada, la restauración verifica que la IP estática del contenedor y los puertos publicados del host estén libres, y aborta con un mensaje claro en lugar de dejar una restauración a medias.
- Comprobaciones antes de restaurar. Cada diálogo de restauración comprueba primero que el repositorio responde, que la clave guardada lo abre, que el punto de restauración existe y que el destino tiene espacio para lo que escribe la restauración. Iniciar sigue bloqueado mientras falle una comprobación, y la (i) del botón dice cuál.
- Plan de restauración. Antes de confirmar, el diálogo muestra qué hace la restauración frente a lo que hay ahora: archivos nuevos, reemplazados y sin cambios, con la lista a petición, y los archivos del destino que no están en la copia y se quedan donde están. En contenedores y VM también compara los ajustes que se recrean con los que están en marcha: imagen y etiqueta, puertos, nombres de variables y volúmenes, o memoria, vCPU, discos y red. restic lo calcula como una simulación por tamaño y fecha de modificación, sin leer los archivos; un árbol muy grande se detiene a los 30 segundos y lo indica. Una restauración de stack comprueba y planifica cada miembro y nombra el que la bloquea.
- Carpetas compartidas. Una restauración en su sitio nombra a cualquier otro contenedor, en marcha o no, cuyo montaje llega a una carpeta en la que escribe, por ejemplo «esta ruta también la usa nextcloud-db». Avisa y no bloquea.
- Restauración a nivel de archivo. Expande los Archivos de la instantánea de un contenedor, filtra, marca cualquier número de archivos y carpetas, y luego restaura la selección en su sitio o en una carpeta que elijas.
- Restauración de conjuntos de archivos. Restaura la instantánea de un conjunto de archivos en su sitio (tras una confirmación explícita) o en una carpeta que elijas, nunca en silencio. La restauración selectiva también funciona aquí.
- Restauración de conjuntos de datos ZFS. Restaura un conjunto de datos de un elemento en su sitio (tras una instantánea ZFS de seguridad que se queda hasta que la borres), en una carpeta o solo los archivos que elijas, o todos los conjuntos de una copia en una carpeta. Un conjunto de datos nunca se revierte ni se reemplaza.
- La restauración conserva el estado de ejecución. Un contenedor o VM que estaba en marcha cuando se copió vuelve en marcha; uno que estaba detenido sigue detenido. Marca Dejar detenido tras la restauración para recrear sin iniciar.
- Restaura una pila entera. Los contenedores del mismo proyecto de Docker Compose se agrupan en un panel de Stacks. Restaurar stack… reconstruye cada miembro desde su última copia dejándolo detenido, y luego opcionalmente los inicia en el orden de
depends_on. - Progreso en vivo, cancelación y aviso de ocupado. Una restauración larga muestra una barra de porcentaje en vivo y se puede cancelar con una confirmación consciente del tipo. Una restauración cancelada se registra como cancelada, no como fallida.
- Recuperación guiada. Una pestaña Recuperación dedicada guía una instalación nueva a través del caso de desastre. Consulta Copia externa y recuperación.
- Restaurar desde otro repo de BombVault. Una sesión única y de solo lectura abre el repo de otra instancia de BombVault con la
APP_KEYde esa instancia, para que puedas traer un contenedor del servidor A al servidor B sin tocar tus propios ajustes. Consulta Copia externa y recuperación. - Las propiedades ZFS vuelven. Cada copia ZFS guarda las propiedades definidas localmente de cada conjunto de datos, como la compresión, el tamaño de registro, la cuota y la distinción de mayúsculas. Una restauración en un conjunto de datos nuevo lo crea con ellas, y una restauración en uno existente las muestra y solo las aplica si lo pides. Consulta Conjuntos de datos ZFS.
- Importar desde el plugin Appdata.Backup. En la página Recuperación, indica a BombVault la carpeta de copias del plugin. Cada archivo de contenedor se convierte en un punto de restauración de su contenedor, con la fecha en que el plugin lo creó. Los archivos ya importados se omiten, y los archivos en sí solo se leen. El contenedor necesita antes una copia en BombVault, para que la restauración tenga su definición. La retención no toca los puntos de restauración importados, así que borra tú mismo el que ya no necesites.
Almacenamiento y programación¶
- Copias incrementales y deduplicadas mediante restic, de modo que ni siquiera los discos de VM grandes hinchan el repo.
- Destinos: una ruta local, o externa. Recursos compartidos SMB y servidores WebDAV (Nextcloud, ownCloud, SharePoint) directamente desde un formulario en Ajustes, Acceso a la nube, rclone, sin montaje en el host; NFS (monta la exportación en Unraid y apunta una Ruta de copia a ella); backends nativos de restic sin rclone (
s3:...,rest:http://host:8000/repo,sftp:user@host:/repo), o cualquier remoto de rclone medianterclone:<remote>:<bucket>/path. Todas las credenciales se almacenan cifradas. - Los destinos SSH no requieren nada instalado en el otro extremo.
sftp:solo requiere un servidor SSH, de modo que una simple Raspberry Pi (sin Docker, sin restic) funciona como destino externo. Las claves de host se fijan automáticamente en el primer contacto. - Copia externa (local + remota). Conserva la copia local rápida y añade una o varias réplicas externas, replicadas con
restic copyen modo de mejor esfuerzo (un contratiempo externo nunca hace fallar la copia local). Cada dominio tiene su propio calendario externo, más un botón Replicar ahora. - Varios destinos externos por dominio. Cada dominio (contenedores, VMs, flash, config, conjuntos de archivos y conjuntos de datos ZFS) puede replicarse a varios destinos externos a la vez, no solo a uno. Añade destinos adicionales en la página Externo, cada uno con su propio repositorio, clase de almacenamiento S3, marca append-only, retención y presupuesto de crecimiento. Tu copia externa existente se traslada como el primer destino, de modo que nada cambia hasta que añades un segundo, y cada destino de un dominio se replica según el calendario externo de ese dominio.
- Repositorios con nombre. Anota tus ubicaciones de copia una sola vez en Ajustes, Almacenamiento, Repositorios, una ruta local o cualquier remoto de restic con su propio conjunto de credenciales, y luego elige uno como ubicación de un elemento en su tarjeta. Cada fila muestra cuántos elementos apuntan a él, y un repositorio que usa un elemento o un valor predeterminado de ubicación no se puede mover ni eliminar, porque BombVault nunca mueve una copia que ya se ha escrito.
- Varios conjuntos de credenciales de la nube. Las credenciales de la nube compartidas se aplican en todas partes por defecto, pero cualquier destino puede elegir en su lugar un conjunto de credenciales con nombre (Ajustes, Acceso a la nube, Conjuntos de credenciales adicionales), así que un bucket S3 de Hetzner y un servidor Garage local pueden funcionar en paralelo, cada uno con su propia clave. Eso incluye los destinos externos y una ruta de copia que sea a su vez un repositorio remoto.
- Destinos. Un destino externo se configura una sola vez, con un asistente que enumera los servicios de almacenamiento S3, tu propio servidor S3, tu propio servidor y recursos compartidos, y todo el almacenamiento en la nube que admite rclone, con el inicio de sesión, una prueba de conexión, un selector de carpetas y una palabra sincera sobre la protección contra borrado. Después aparece como un botón en cada dominio y elemento. Consulta Destinos.
- Ubicación por elemento. Cada tarjeta de contenedor, VM y conjunto de archivos tiene una fila de botones, Local y uno por cada destino externo, y los encendidos reciben sus copias de seguridad. Un recurso compartido que ya está en un NAS ya no tiene que ir también a B2. La ubicación queda fija desde la primera copia de seguridad, las copias pueden cambiar en cualquier momento, y la tarjeta dice cuántas sedes tienen el elemento y si se cumple 3-2-1. Consulta Ubicación por elemento.
- Valores predeterminados de ubicación. Una fila por dominio define dónde se escriben los elementos nuevos y a qué destinos se copian los elementos sin elección propia. Cambiarla no mueve ninguna copia y dice de antemano qué destinos ganan o pierden elementos.
- Orden de copia manual. Establece el orden exacto en que se copian tus contenedores desde el panel de orden de copia en la página de Contenedores. Las ejecuciones programadas y de selección múltiple lo siguen; cualquier contenedor que dejes sin ordenar conserva el comportamiento anterior de empezar por lo más atrasado, y una copia de un solo contenedor no cambia.
- Retención configurable: conservar últimas / diarias / semanales / mensuales / anuales, podadas automáticamente tras cada copia, definida por fuente (tanto la local como la externa en Ajustes, Retención, para que puedas conservar las copias externas más tiempo como archivo). Cada origen también puede tener sus propias reglas, en local y en externo (Reglas de retención por origen), por ejemplo 7 copias diarias de contenedores que cambian a diario y menos de VM que apenas cambian.
- Compresión por repositorio: Desactivado, Automático (el valor por defecto de restic) o Máximo, ajustable en Ajustes, Almacenamiento para cada ruta de copia y cada repositorio con nombre, y en Ajustes, Externo para cada destino externo. Las copias, las copias externas y la poda escriben con ella, y el kit de recuperación la indica para que restic a secas pueda seguir escribiendo igual.
- Programación por dominio (diaria / semanal, incluidos conjuntos de varios días / cada N días / cron sin procesar), todo editado en un solo lugar en Ajustes, Programaciones. Un solo contenedor, VM, conjunto de archivos o elemento ZFS puede tener una cadencia propia, y Cada N días también sirve para el ensayo de restauración, la prueba de manipulación y el resumen semanal.
- Esperar a que la app esté inactiva. Un contenedor puede hacer que su copia programada espere mientras su app está ocupada, como mucho las horas que indiques, y empiece en cuanto la app esté inactiva. Un servidor multimedia está inactivo cuando no hace streaming; cualquier otro contenedor, cuando su CPU y tráfico se quedan unos minutos por debajo de los límites de Ajustes, Programaciones (en la red del host solo cuenta la CPU). La copia en espera aparece en el registro de actividad y en el contenedor con su motivo y su plazo. No retiene ningún bloqueo, así que los demás contenedores siguen. Las copias manuales nunca esperan. Los miembros de un stack de compose que tocan en la misma ejecución esperan juntos, y una espera sigue con su plazo tras un reinicio. Desactivar los contenedores descarta todas las copias en espera, y desactivar su programación descarta las que retuvieron sus ejecuciones. Bajar las horas también acorta una espera que ya empezó.
- Límites de ancho de banda externo. Limita la velocidad de subida/bajada de restic para que la replicación no sature tu WAN.
- Primero el streaming. Mientras un servidor multimedia como Plex, Jellyfin o Emby hace streaming, las copias externas suben con un límite más bajo y vuelven al normal unos minutos después de que acabe. BombVault lee de Docker el tráfico saliente de los servidores multimedia. REST, S3, B2, Azure, Google Cloud, Swift y rclone por HTTP se ralentizan en mitad de la copia; SFTP y las carpetas locales o montadas toman el límite bajo en su siguiente paso de copia. Un servidor multimedia en la red del host no se puede medir. En Ajustes, Externo.
- Clase de almacenamiento en frío y de archivo (S3). Para un repo externo S3 nativo puedes elegir la clase de almacenamiento, restringida a niveles legibles para restauración (Standard, Standard-IA, One Zone-IA, Intelligent-Tiering, Glacier Instant Retrieval) para que los precios de archivo nunca rompan una restauración en silencio. Los niveles de archivo profundo que primero necesitan un deshielo asíncrono (Glacier Flexible, Deep Archive) se dejan fuera a propósito. Solo backends S3 nativos; los remotos de rclone establecen su clase en la configuración de rclone.
- Las carpetas de copia siguen siendo copiables fuera de la máquina. Después de cada copia, BombVault relaja el árbol del repo local a directorios
0755/ archivos0644(los repos están cifrados, así que no se expone nada) para que un usuario de sincronización no root por SMB no quede bloqueado. Las definiciones de recuperación viven dentro de cada repo, de modo que una carpeta de repo copiada es totalmente autocontenida.
Análisis, verificación y monitorización¶
- Pausa desde la tarjeta. Cada tarjeta de contenedor, VM y conjunto de carpetas tiene Pausar programación, que saca el elemento del calendario y de la Copia total, y Reanudar programación para devolverlo. Cambia el mismo conmutador que Incluir en el calendario, así que los dos siempre coinciden. Un elemento en pausa lleva una insignia gris Programación en pausa, y Copiar ahora sigue funcionando.
- Estado de protección (RPO). El Panel muestra un indicador verde / ámbar / rojo por dominio, comparando la última copia correcta con su calendario, de modo que una copia atrasada se pone en rojo en lugar de esconderse en un registro.
- Mapa de calor de salud de las copias. Un calendario al estilo de las contribuciones de GitHub con los resultados de copia por día y por dominio, con un conmutador Contenedores / VMs / Flash / Autocopia / Carpetas.
- Cronometraje de ejecuciones en todas partes. Cada entrada del historial de ejecuciones muestra
inicio, fin (duración), y cada contenedor y VM lleva su propia lista de Ejecuciones recientes en su página. - Un panel que puedes reorganizar. Activa el modo personalizar para arrastrar las tarjetas al orden que quieras y ocultar las que no necesites. La disposición se guarda por navegador.
- Tendencia de tamaño y deduplicación del repositorio. Tamaño actual del repo, ratio de deduplicación y recuento de instantáneas por dominio, con un minigráfico del crecimiento del almacenamiento.
- Ensayos de verificación de restauración. BombVault demuestra periódicamente que tus copias son restaurables (
restic check --read-data-subset, acotado) y muestra una insignia de Restaurabilidad verificada por dominio. - Comprobación de restauración tras la primera copia. Cuando termina la primera copia de un elemento, BombVault restaura una muestra (hasta 100 archivos y 256 MiB) en una carpeta temporal dentro de la carpeta de restauración, hace que restic relea cada archivo contra sus hashes y compara los tamaños con la copia. A un archivo demasiado grande para la muestra, como un disco de VM, se le releen en su lugar los primeros 64 MiB. La tarjeta del elemento muestra el resultado, un fallo llega como notificación y Comprobar restauración ejecuta la misma comprobación sobre la copia más reciente cuando quieras. Las copias posteriores no la repiten.
- Prueba de arranque. Comprobar los bytes no demuestra que la aplicación vuelva. Prueba de arranque en la tarjeta de un contenedor restaura su copia más reciente en una copia aislada y la arranca: un nombre que empieza por
bombvault-test-, una red interna de Docker propia sin puertos publicados ni salida a la LAN, 1 CPU y 2 GiB de memoria, y los datos en una carpeta temporal dentro de la carpeta de restauración. La prueba se supera cuando el healthcheck del contenedor informa que está sano, sin él cuando su primer puerto expuesto responde desde dentro de esa red, y sin ninguno de los dos cuando sigue en marcha. El contenedor original nunca se detiene ni se modifica, y la copia, su red y sus datos se eliminan después, también si BombVault se reinicia a mitad de una prueba. Los contenedores en la red del anfitrión, los privilegiados, los que usan dispositivos y los que necesitan otro contenedor aparecen como no comprobables. Activa Prueba de arranque en las comprobaciones de restauración programadas para probar un contenedor por ejecución, empezando por el que lleva más tiempo sin probarse. El resultado aparece en la tarjeta y en el panel. La copia no lleva ninguna etiqueta del original y se ejecuta sin las capabilities, opciones de seguridad, sysctls y cgroup parent que añade el original. Un contenedor que las necesita no pasa la prueba, y el resultado dice sin qué se ejecutó la copia. - Operaciones autorreparadoras. Un bloqueo de restic huérfano de forma demostrable (dejado por un reinicio a mitad de operación) se fuerza a limpiar y se reintenta una vez, automáticamente. La retención es estable por identidad (podada por elemento, inmune a cambios de ruta o de host) y un fallo de retención envía una notificación.
- Avisos que el análisis de carpetas no puede ver. El asistente de exclusiones responde a una pregunta de tamaño. Algunos de los errores de copia más caros no son preguntas de tamaño, así que también lleva advertencias específicas de cada aplicación sobre cómo guarda sus datos. La razón por la que existe: Immich guarda los álbumes, las caras y las fechas de cada foto en una base de datos PostgreSQL que se ejecuta en un contenedor aparte, de modo que una copia a nivel de archivo del contenedor de Immich restaura las imágenes sin nada de eso, y la restauración parece haber funcionado. El aviso aparece tanto si se ofrece alguna exclusión como si no, también en un contenedor sin nada seleccionado para analizar, porque la advertencia es cierta en cualquier caso.
- Sin copia de seguridad (cobertura). Una tarjeta del Panel que nombra todo lo que hay en el servidor sin cubrir por ninguna copia automática, con el motivo de cada caso: nunca añadido a BombVault, presente pero no incluido en la programación, con su propia programación desactivada, o sin ninguna programación activada en ningún sitio. El indicador de protección que tiene encima responde a otra pregunta, a saber, si las copias que sí están programadas se ejecutaron a tiempo, y no puede ver el contenedor que nadie configuró nunca: ese falta en todas las listas y en todos los errores, así que nada se pone en ámbar por él. Los contenedores se leen de la lista de Docker en vivo y no de las filas propias de BombVault, porque un elemento sin fila es justo el que hay que nombrar. Un tipo de copia que desactivaste queda fuera del recuento por completo, ya que fue decisión tuya.
- Vista previa de la retención. El panel junto a los ajustes de retención muestra lo que la próxima ejecución va a eliminar, antes de que ocurra: por repositorio y por elemento, con los puntos de restauración nombrados. No toma ningún bloqueo del repositorio y no cambia nada, así que responde incluso mientras se ejecuta una copia. Una retención desactivada lo dice en lugar de mostrar una lista vacía, un repositorio append-only se marca como tal (allí la retención no se ejecuta nunca), y un repositorio al que no se pudo llegar aparece nombrado en lugar de faltar en silencio. En Ajustes, Retención para la política local y la externa, cada una con su propia vista previa.
- Anomalías. Cada copia de un contenedor, una VM, un conjunto de carpetas, un volcado de base de datos, la unidad flash y la autocopia se compara con el historial propio de ese elemento. Las comprobaciones miran los datos nuevos de una ejecución, frente a las mayores cantidades habituales de las copias recientes y frente al ritmo habitual por hora; una copia que volvió a guardar la mayoría de los datos, incluidos archivos renombrados y reescritos; el tamaño de origen y el número de archivos que restic indica para cada elemento y cada volcado; el tiempo de copia del propio restic; rachas de fallos y fallos intermitentes; comprobaciones de restauración que dejaron de pasar; y el espacio libre de los repositorios locales, SFTP y de rclone, proyectado a partir del crecimiento del repositorio. Un elemento aprende de sus primeras 10 copias, mientras que una fuente casi vacía, la reescritura de la mayoría de los datos y los fallos se comprueban desde el principio. Al actualizar, el historial se lee una vez de los resúmenes de instantáneas que guarda restic 0.17, así que una instalación existente no empieza de cero. La sensibilidad (Estricta, Equilibrada, Permisiva) y la gravedad mínima que envía una notificación se ajustan de forma global en Ajustes, Integridad y se pueden cambiar por elemento. Los avisos se cierran solos cuando desaparece la causa; los hallazgos críticos de pérdida de datos y de disco que se llena permanecen hasta que los confirmas, y un hallazgo confirmado no vuelve a notificarse hasta que su causa haya desaparecido una vez. Marcar como esperada convierte un nuevo nivel en lo normal tras 10 copias, pero nunca desactiva la comprobación de fuente casi vacía, y una selección cambiada hace que el historial del elemento empiece de nuevo por sí solo. Mientras una fuente esté casi vacía, haya encogido mucho o una copia haya vuelto a guardar la mayoría de sus datos, la retención conserva las copias antiguas de ese elemento hasta que confirmes el hallazgo o lo marques como esperado, y el hallazgo enlaza con la última copia buena. Se envía una notificación por episodio, y los fallos y comprobaciones de restauración que ya notifican no se avisan dos veces. Lo que no hace: los repositorios S3, B2 y REST no tienen dato de espacio libre, en el recurso compartido de usuario de Unraid el espacio libre es el de todo el array, y las copias anteriores a restic 0.17 no tienen historial de tamaño. Los elementos ZFS también se comprueban, conjunto de datos por conjunto de datos: cada conjunto de datos de un árbol tiene su propio historial, uno que se vació o que ya no se pudo leer cuenta como pérdida de datos, y solo se conservan las copias antiguas de ese conjunto. Cómo se vigila un elemento ZFS conjunto por conjunto se explica en Conjuntos de datos ZFS, y un asistente puede leer las anomalías abiertas a través del servidor MCP. Un hallazgo sobre el tamaño o el número de archivos de un origen se fecha en la primera copia en la que apareció, y Comparar con la copia anterior muestra las carpetas donde desaparecieron, llegaron o cambiaron archivos, con una nota cuando casi todo está en un índice de búsqueda, una caché o miniaturas que la aplicación reconstruye sola.
- Exclusiones recomendadas por aplicación. Para imágenes conocidas (Plex, Jellyfin, Emby, Sonarr, Radarr, Lidarr, Readarr, Prowlarr, Immich, Nextcloud, PhotoPrism y Tautulli, de linuxserver, hotio, binhex o del editor oficial), el Asistente de exclusión ofrece las carpetas que la aplicación vuelve a llenar por sí sola: cachés, registros, imágenes de vista previa y pósters. Cada entrada dice lo que contiene, cualquiera se puede desactivar y no se excluye nada hasta que pulsas Excluir selección.
- Paquete de soporte. Un ZIP depurado, de un clic, para un informe de error: la comprobación de integración con el host, tu configuración sin ningún secreto, las ejecuciones recientes, lo próximo que está programado y el registro reciente. También incluye cómo fue el último volcado de cada base de datos, los elementos ZFS con los montajes que ve el contenedor, las anomalías abiertas y cuántas claves MCP existen (nunca sus nombres). Las contraseñas, los tokens, la configuración de rclone, las credenciales de notificación y cualquier contraseña incrustada en la ubicación de un repositorio se eliminan, y el paquete lo dice en su propio manifiesto, porque un archivo de soporte nunca debe confundirse con una copia de la configuración. Requiere una contraseña de inicio de sesión por el mismo motivo que el kit de recuperación. El registro que lleva es la salida de este contenedor desde su último arranque; para un fallo que reinició el contenedor,
docker logssigue siendo el sitio donde mirar. - Kit de recuperación de la clave de cifrado. Descarga de un clic de la clave maestra, la contraseña restic derivada y las ubicaciones y comandos exactos del repo, para que puedas restaurar sin un BombVault en ejecución. Consulta Copia externa y recuperación.
- Exporta e importa tus ajustes. Una tarjeta Exportar / importar ajustes en la página de Ajustes, Sistema escribe toda tu configuración (ajustes de dominio, destinos externos, calendarios, retención, notificaciones) en un archivo JSON portátil, para que cambiar de máquina o clonar una instalación no signifique volver a introducirlo todo a mano. Tú eliges si incluir las credenciales externas y de notificación; con ellas, el archivo es tan sensible como tu kit de recuperación. La importación muestra una vista previa y pide confirmación, y nunca toca tus datos de copia ni tu historial.
- Notificaciones. Webhook (Discord / Slack / Gotify / ntfy), Matrix, Healthchecks.io, correo (SMTP), un servidor autoalojado de API de Apprise y el sistema de notificaciones nativo de Unraid. Política por copia: nunca / en caso de fallo / siempre. Una ejecución programada de muchos elementos puede enviar un único resumen N de M correctas. Healthchecks recibe el ciclo de vida completo (
/start, luego éxito o/fail) siempre que haya una URL configurada. - Resumen semanal. Un mensaje a la semana por los mismos canales: número de ejecuciones, cuántos datos de copia nuevos han llegado, si la copia externa está al día y los fallos principales. Desactivado por defecto, con su propia cadencia en Ajustes, Notificaciones, de modo que una semana tranquila también se notifica.
/metricsde Prometheus. Opcional (desactivado por defecto, token bearer opcional) para Grafana o Uptime Kuma. Expone el estado, los tamaños y las marcas de tiempo de las copias, sin secretos ni rutas en las etiquetas.- API HTTP, Home Assistant y mDNS. Los scripts y los paneles disponen de una API en
/api/v1con tokens con nombre, de solo lectura o con permiso para iniciar copias. Home Assistant encuentra BombVault mediante el descubrimiento MQTT, como un dispositivo con sensores y, si lo permites, un botón de copia por dominio. Además, BombVault se anuncia en la red comobombvault.local. Consulta API e integraciones. - Espacio libre y semanas hasta llenarse. Los repositorios locales, los repositorios SFTP y los destinos SMB o WebDAV que lo informan muestran su espacio libre y cuántas semanas quedan al ritmo de crecimiento actual. Los repositorios S3, B2 y REST indican "Espacio libre desconocido", ya que esos backends no lo informan.
- Tamaño por carpeta. En la sección Copias de seguridad de un contenedor, una VM o un conjunto de carpetas, Tamaño por carpeta muestra qué carpetas y archivos ocupan espacio en la copia más reciente y cuánto trajo de nuevo o cambiado la última copia, un nivel cada vez. BombVault lo lee del índice del repositorio sin leer los archivos y, en cuanto lo abres una vez, lo actualiza tras cada copia.
- Por qué una copia fue lenta. Mientras corre una copia, BombVault vigila lo ocupados que están la CPU, los discos y la red. Si una copia tarda mucho más de lo habitual y una sola cosa estuvo claramente al límite, la ejecución lo dice, por ejemplo "El disco de destino disk1 estuvo ocupado al 98 %" o "BombVault usó el 100 % del límite de CPU de su contenedor". Si no, no dice nada.
- Cambiado desde la última copia. Un contenedor que se volvió a crear con otra imagen, otros puertos, variables o volúmenes desde su última copia recibe una marca junto a su nombre. Su (i) enumera lo que cambió, las variables solo por nombre. Es solo un aviso y desaparece con la siguiente copia.
Protección contra ransomware¶
- Externo inmutable (append-only). Marca un repo externo como append-only para que el ransomware o un host comprometido no puedan eliminar ni reescribir tus copias. El otro extremo (un
restic/rest-serveren modo--append-only) lo impone; BombVault solo lo verifica y nunca muestra verde basándose únicamente en una afirmación de configuración. - Prueba de manipulación. BombVault demuestra periódicamente la garantía append-only intentando realmente un borrado contra el repo externo (dirigido a un objeto inexistente): rechazado significa protegido, aceptado significa no protegido. Un resultado no concluyente nunca cambia el veredicto almacenado.
- Configuración externa guiada. Un asistente te lleva desde la elección del backend, pasando por un fragmento de despliegue de rest-server listo para pegar, una prueba de conexión, el conmutador inmutable y una estrategia de retención.
- Ensayos de DR (externo). Restaura un objetivo real desde el repo externo en un entorno de pruebas desechable, lo verifica archivo por archivo y byte por byte, y luego limpia. Consulta Copia externa y recuperación.
- Cuadro de mando de protección contra ransomware. Una tarjeta del Panel con una postura verde / ámbar / rojo por dominio y una lista de comprobación con marca de antigüedad; cada fila roja enlaza directamente con la solución. Solo se pone verde con hechos verificados.
- Alarma de presupuesto de crecimiento. Para un externo inmutable (donde las instantáneas antiguas nunca se podan deliberadamente), establece un presupuesto de tamaño y recibe un aviso antes de que se descontrole.
- Emparejamiento por frase. Las instancias se unen a un grupo con doce palabras: crea la frase en una, escríbela en la siguiente. Los miembros de la misma red hablan directamente, los demás a través de un relay (el del proyecto, uno propio o ninguno), y cada llamada entre ellos va cifrada de extremo a extremo. Por el grupo circulan los cuadros de mando de la página de Instancias, las ofertas Mesh externo y lo que necesita un receptor o una fuente de recogida, nunca los datos de copia ni la APP_KEY. Consulta Copia externa y recuperación.
- Página de Instancias. Activa Instancias en Ajustes para tener una página con una tarjeta por cada instancia de tu grupo, incluida esta: su dirección, si está conectada y el estado de protección de cada dominio con su última copia, con el mismo rojo, ámbar y verde que muestra el Panel local. Comprobar ahora pide a un miembro que verifique el repositorio de un dominio. Nada en esa página puede iniciar una copia, restaurar ni borrar nada en otra máquina.
- Mesh externo. Un miembro puede ofrecer su propio almacenamiento externo a otro miembro a través del grupo. El administrador del otro lado ve la oferta en la página de Instancias y la acepta o la rechaza; aceptarla crea un conjunto de credenciales y un destino externo normales. Por esta vía solo viajan los datos de conexión, nunca los datos de copia.
- Panel receptor (lado receptor). En la máquina que recibe copias externas inmutables de otro BombVault, activa el conmutador Receptor (Ajustes) para revelar una pestaña Receptor. Registra un repositorio recibido en solo lectura (abierto con la contraseña restic de la instancia emisora, que llega a través del grupo de emparejamiento) para ver su inventario de instantáneas agrupado por fuente, cuándo llegó por última vez cada fuente, y ejecuta un
restic checkindependiente en el hardware receptor. Te avisa cuando una fuente deja de enviar dentro de una ventana que tú defines (un interruptor de hombre muerto) o cuando una comprobación de integridad falla. Estrictamente de solo lectura, de modo que nunca escribe en el repositorio recibido, y desactivado por defecto. Consulta Copia externa y recuperación. - Recogida desde otra instancia (lado que recoge). La imagen especular de la replicación externa: en lugar de que esta máquina envíe sus instantáneas hacia fuera, trae las de otra. Activa el conmutador Recogida (Ajustes) para revelar la pestaña Recogida de la página Instancias, elige la otra instancia de tu grupo de emparejamiento y la ubicación de su repositorio, y luego qué tipo de copia contiene y con qué frecuencia recogerla. Su contraseña restic llega a través del grupo, nunca su APP_KEY. El otro extremo no configura nada más y no necesita estar en marcha. El repositorio de origen solo se lee: se abre para comprobar la contraseña, se lista y se nombra como origen de la copia, y nunca se inicializa, se desbloquea, se poda ni se escribe en él. Cada lado conserva sus propias credenciales, y una fuente
rclone:se rechaza porque rclone llegaría a ella con los remotos de esta instancia. Consulta Copia externa y recuperación.
Exportaciones sencillas¶
- Exportación sencilla de contenedor. Un botón Exportar (tar simple) por contenedor escribe una copia navegable y sin herramientas junto al repo:
<name>.tar.gzde las carpetas de copia más la plantilla<name>.xmlde Unraid. Restic sigue siendo el motor; esto es una copia de conveniencia adicional. - Exportación sencilla de VM. Las VMs tienen el mismo Exportar (tar simple):
<name>.tar.gzde la(s) imagen(es) de disco más<name>.xml, restaurable convirsh definemás el disco, sin necesidad de BombVault ni de restic. - Cifra las exportaciones sencillas (age). Las exportaciones quedan fuera de restic, así que por defecto están en texto plano. Activa el cifrado age en Ajustes y añade uno o varios destinatarios (una clave pública age o una clave pública SSH). Cada exportación (los
.tar.gzde contenedor y VM, sus archivos.xmlcomplementarios y el ZIP del flash) se sella entonces para esos destinatarios, y la descifras más tarde fuera de la máquina con la clave privada correspondiente. Como regla de seguridad, con el cifrado activado y sin ningún destinatario válido, una exportación falla con un error claro en lugar de escribir texto plano. - El kit de recuperación también se sella. Con el mismo ajuste activado, el kit se descarga como
bombvault-recovery-kit.md.age. Está en formato ASCII armor y no en binario, así que sigue siendo texto legible: puedes pegarlo en un gestor de contraseñas o imprimirlo, que es para lo que sirve el kit. Se aplica la misma regla de seguridad: con el cifrado activado y sin ningún destinatario utilizable, la descarga se rechaza en lugar de entregar la clave maestra en claro. Una cosa que hay que hacer bien al activarlo: necesitas tu clave privada age para abrir el kit, así que guarda esa clave en un sitio que no dependa del propio kit.
Asistentes de IA (MCP)¶
BombVault incluye un servidor MCP con el que un asistente como Claude Code o Claude Desktop puede leer el estado de las copias, la cobertura, el historial de ejecuciones, los puntos de restauración y la actividad en curso. Con una clave que lo permita, el asistente también puede iniciar la copia de un elemento, de un dominio o de todo, y cancelar las copias que haya iniciado. Las restauraciones, los borrados, prune y los ajustes se quedan en la interfaz web. Cada cliente recibe su propia clave en Ajustes, Integraciones, Servidor MCP; una clave se muestra una sola vez, solo se guarda como huella y se puede renombrar, sustituir o revocar en cualquier momento. Los inicios están limitados por hora y por elemento, y una protección de retención impide que las copias de un asistente saquen tus propios puntos de restauración de una política de "conservar los últimos N". Cada ejecución que inicia un asistente queda marcada "vía MCP" con el nombre de la clave. Ver Servidor MCP. Los volcados de bases de datos y los conjuntos de datos ZFS están entre los elementos y puntos de restauración que lee, y puede listar las anomalías que BombVault detectó.
Apps y complementos¶
- App de Android. Todos los servidores de tu grupo en el móvil, con el registro de actividad de todos ellos en una sola pantalla. Se empareja con tu grupo mediante un código QR y abre cada servidor con la sesión ya iniciada. Consulta App de Android.
- Servidor receptor. La máquina que recibe las copias externas puede iniciar con un clic un rest-server en modo append-only y ofrecerlo a las demás instancias de tu grupo, cada una con un inicio de sesión propio. Consulta Servidor receptor.
- Ajustes, Apps. Una página que empieza por la app de Android, su APK para la versión que ejecuta el servidor y un código QR para ella, seguida de una tarjeta para cada complemento. La tarjeta de ParleyPort ofrece su plantilla de Unraid, copia el comando de Docker que lo inicia y lleva a su repositorio y a los ajustes del relay en Emparejamiento. La tarjeta de BombVault Widget ofrece su plantilla y su repositorio, e instala o quita el plugin a través de la conexión SSH del host.
- BombVault Widget. Un mosaico en el Dashboard de Unraid con el registro de actividad de BombVault y la próxima ejecución programada. Sin conexión SSH con el host, la tarjeta te da la dirección
.plgpara instalarlo en Plugins, Install Plugin, y el plugin se puede quitar allí como cualquier otro. - Registro de actividad integrable. Genera un token de solo lectura en Ajustes, Integraciones y obtendrás una dirección para cualquier panel que muestre un iframe, como Homepage, Organizr o Heimdall: una pequeña página con solo el registro de actividad en directo. El token da acceso a ese registro y a nada más, y Desactivar lo revoca al instante. La página integrada solo está en inglés.
Otros¶
- Detener una copia en curso. Cada tarjeta que puede iniciar una copia tiene un botón Cancelar copia junto a su barra de progreso mientras la ejecución está activa. La ejecución se registra como cancelada, no como fallida. Detenerla es seguro, porque restic escribe su instantánea al final, así que una ejecución interrumpida deja datos sin referenciar y ninguna instantánea.
- Copia muchos a la vez. Selecciona varios contenedores y pulsa Copiar selección. El lote se ejecuta en el servidor, así que sigue adelante aunque cierres la pestaña o pierdas la conexión. BombVault nunca copia (y por tanto nunca detiene) su propio contenedor.
- Navegador de instantáneas con una lista de puntos de restauración, borrado por instantánea y un árbol de carpetas plegable para la restauración a nivel de archivo.
- Mantenimiento del repositorio por dominio: Verificar (
restic check), Desbloquear (limpiar un bloqueo obsoleto) y Podar (aplica la política de retención bajo demanda cuando hay una definida, de lo contrario una simple recuperación de espacio). - Progreso al verificar, en las comprobaciones de restauración y al depurar. Mientras se ejecuta una de ellas, el registro de actividad y la tarjeta de integridad muestran hasta dónde ha contado restic, por ejemplo 12 de 47 paquetes, y el tiempo restante del paso en cuanto hay datos suficientes para estimarlo. Aquí restic cuenta paquetes, instantáneas y archivos de índice, no bytes, y eso es lo que muestra la barra; antes del primer recuento avanza sin número.
- Volcados automáticos de bases de datos. Los contenedores PostgreSQL, MySQL y MariaDB reconocidos (las imágenes oficiales, PostGIS, TimescaleDB, pgvector, pgautoupgrade, las imágenes de base de datos de Immich, linuxserver, yobasystems y jc21 MariaDB, y el mysql-server de Oracle) se vuelcan antes de cada copia, desde el servidor en marcha. Los contenedores que solo parecen una base de datos reciben la misma opción en su tarjeta, desactivada hasta que tú la elijas. El volcado va directo al repositorio y se convierte allí en un punto de restauración propio, junto a la copia de archivos; nunca se escribe en un disco. Las credenciales salen de las variables del propio contenedor, incluidos los secretos
*_FILE, y no lo abandonan. Cada tarjeta muestra si la carpeta de datos de la base se guarda con el contenedor parado, se copia en marcha, o no se guarda en absoluto. Un volcado fallido no hace fallar la copia: aparece como una ejecución fallida con su motivo y una pista para arreglarlo, y envía una notificación. Los volcados nunca se recargan solos. Descarga uno (plano o comprimido), guárdalo en una carpeta, impórtalo con un clic en una base recién arrancada, o recupéralo con la CLI de restic. Desactívalo por contenedor, con la etiquetabombvault.dbdump=false, o para todos los contenedores en Ajustes. La detección de anomalías también vigila el tamaño de cada volcado, y un asistente puede listar los volcados de un contenedor a través del servidor MCP. - Hooks pre/post-copia por contenedor. Comandos de shell que se ejecutan dentro del contenedor (por ejemplo, volcar una caché a disco); un pre-hook fallido aborta la copia. Las bases de datos reconocidas se vuelcan automáticamente y no necesitan ningún hook.
- Detener otros contenedores durante la copia, con un reinicio controlado por salud. Nombra los contenedores dependientes (por ejemplo una base de datos) para detenerlos mientras se copia este. Después, BombVault los devuelve en el orden de
depends_onde su Compose y, por defecto, espera a que cada uno informe de que está saludable (o en ejecución, si no tiene comprobación de salud) antes de iniciar los contenedores que dependen de él, de modo que una dependencia como Pi-hole, una base de datos o una pasarela VPN esté realmente activa antes que los servicios que la necesitan, en lugar de que estos vuelvan con un connection refused. La espera está acotada por un tiempo límite por contenedor (120 segundos por defecto) para que un contenedor lento o que nunca se pone saludable no pueda colgar la ejecución; tanto la espera como el tiempo límite viven en Ajustes, Contenedores (desactiva la espera para el reinicio anterior todos-a-la-vez). El mismo reinicio ordenado y controlado por salud también envuelve la actualización de imagen posterior a la copia, de modo que el día en que llega una actualización, los dependientes se mantienen detenidos durante la recreación y solo se devuelven, controlados por salud, una vez terminada. - Patrones de exclusión por contenedor. Lista los subdirectorios que omitir dentro de un volumen copiado, uno por línea. Escribe las rutas tal como las ves dentro del contenedor; una vista previa en vivo muestra a qué se resuelve cada línea y avisa cuando una línea no excluiría nada.
- Actualizar tras una copia correcta (avanzado, desactivado por defecto). Activa esto en un contenedor y BombVault descarga la imagen más reciente y lo recrea, pero solo cuando realmente hay una imagen más nueva, de modo que siempre existe primero un punto de restauración reciente. Extras opcionales: una notificación por contenedor actualizado y limpieza de imágenes (una imagen base compartida por otros contenedores nunca se elimina). Tras la actualización, BombVault también pide a Unraid que vuelva a comprobar el estado de actualización de ese único contenedor, de modo que el banner obsoleto de update available de la pestaña Docker se borra solo en lugar de quedarse (las actualizaciones de Unraid van directamente a través de la API de Docker, así que su estado en caché, y en algunas versiones un digest en caché, seguiría mostrando el banner). Es de mejor esfuerzo, nunca afecta a la copia, está activado por defecto y tiene un conmutador en Ajustes.
- Restaurar a una carpeta alternativa para clonar o inspeccionar.
- Diff de instantáneas y etiquetas. Compara dos instantáneas para ver qué cambió, y etiqueta instantáneas para filtrarlas.
- Novedades tras una actualización. Las notas de la versión aparecen una vez por versión nueva, servidas desde notas embebidas en el binario, de modo que el diálogo funciona sin conexión.
- HTTPS de fábrica (autofirmado, o trae tu propio certificado detrás de un proxy inverso).
- Comprobación de salud de Docker. El contenedor informa de saludable/no saludable desde su propio
/api/health, de modo que una herramienta de autorreparación puede reiniciarlo si el motor se atasca alguna vez. - Interfaz oscura/clara en 42 idiomas con un selector de banderas.
- Los ajustes se guardan solos. Cambia un interruptor o sal de un campo y el cambio se escribe al momento, con un breve destello en el control y una sacudida si el servidor lo rechaza. Tres sitios conservan un botón Guardar porque guardarlos a medias sería inseguro: el cuadro de configuración de rclone, el editor de conjuntos de credenciales y la contraseña de inicio de sesión.
- Avisos emergentes discretos. En Ajustes, General puedes silenciar las confirmaciones rutinarias, de modo que solo los fallos te sigan interrumpiendo. Es una opción por navegador y no afecta a las notificaciones que envía BombVault.
- A tu gusto. Ajustes, Aspecto define los colores (un único acento o el Modo arcoíris con una paleta de ocho), las esquinas (redondas, suaves o cuadradas) y la animación (desactivado, sutil, salvaje o desatado), guardados por navegador. Cuando tu sistema pide menos movimiento, eso siempre prevalece.