Funciones¶
BombVault es simple por defecto y profundo cuando lo necesitas. La interfaz muestra solo lo esencial hasta que accionas el conmutador Simple / Avanzado. Esta página agrupa el conjunto completo de funciones.
Alcance de la copia¶
| Qué | Qué se guarda |
|---|---|
| Contenedores Docker | El directorio appdata más la definición del contenedor (imagen, variables de entorno, puertos, etiquetas, volúmenes). |
| 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. |
| 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). |
Restauración¶
- Restauración completa de un clic. Elige una instantánea, haz clic en Restaurar. Listo.
- Restaurar desde local o externo. Cada navegador de copias tiene un conmutador Local / Externo, de modo que si un repo local se pierde o se corrompe puedes listar y restaurar directamente desde la réplica externa. Eliminar es por fuente: quitar una copia solo afecta a la copia que estás viendo.
- 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.
- 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. - 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.
- 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í.
- 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.
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. SMB/CIFS y NFS (monta el recurso compartido en Unraid y apunta una Ruta de copia a él), backends nativos de restic sin rclone (
s3:...,rest:http://host:8000/repo,b2:...,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 y conjuntos de archivos) puede replicarse a varios destinos externos a la vez, no solo a uno. Añade destinos adicionales en la pestaña 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.
- 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, podadas automáticamente tras cada copia, definida por fuente (local junto a las rutas de copia, externa en la pestaña Externo para que puedas conservar las copias externas más tiempo como archivo).
- 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, Calendarios.
- Límites de ancho de banda externo. Limita la velocidad de subida/bajada de restic para que la replicación no sature tu WAN.
- 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¶
- 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 / Config / Archivos.
- 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 restaurable verificado por última vez por dominio. - 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.
- 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 e importar ajustes en la página de Ajustes 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. /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.
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.
- 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 clave de la instancia emisora) 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.
Exportaciones sencillas¶
- Exportación sencilla de contenedor. Un botón Exportar 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.
Otros¶
- 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). - Hooks pre/post-copia por contenedor. Comandos de shell que se ejecutan dentro del contenedor (por ejemplo
mysqldumpen appdata antes de la copia); un pre-hook fallido aborta la copia. - 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, Calendarios (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 26 idiomas con un selector de banderas.