Copias de seguridad que sí se restauran
Crea el archivo en la app, replícalo fuera del host y restáuralo en una pila de pruebas primero. Qué contiene, qué deja a tu NAS y cómo se recupera.
Una biblioteca autoalojada de impresión 3D se restaura solo si la copia de seguridad capturó tres cosas juntas y en un mismo instante coherente: la base de datos, los archivos de modelo y de G-code de los que la aplicación es dueña, y la configuración y el material criptográfico que hacen que esos archivos vuelvan a ser legibles. Luego guarda una copia en una máquina a la que el servidor no pueda llegar, y restáurala en algún sitio inofensivo antes de necesitarlo. Un archivo sin probar no es una copia de seguridad.
En PrintStash eso significa usar su propia copia de seguridad en lugar de copiar los archivos por debajo, porque la aplicación es lo único que puede capturar la base de datos y los blobs a los que apunta en el mismo instante.
El archivo que produce es una instantánea transaccionalmente coherente de la base de datos, incluidos los datos del WAL confirmados, más el conjunto de blobs que pertenece a esa misma instantánea. Una copia del sistema de archivos tomada con la pila en marcha no ofrece esa garantía, y la diferencia solo aparece el día que la restauras.
Dónde van las copias de seguridad
Cada copia de seguridad se escribe primero en el directorio local de copias. También puedes configurar un bucket compatible con S3, como Cloudflare R2 o MinIO, y PrintStash replica el archivo ahí.
El archivo contiene la base de datos, los archivos de modelo y de G-code almacenados, los documentos, las miniaturas y un manifiesto. La garantía de coherencia mencionada arriba llegó en la v0.11.3, junto con una restauración que valida y prepara la base de datos y los blobs antes de aplicar nada, pausa a los escritores concurrentes mientras trabaja y deshace los cambios de almacenamiento si falla a medias.
Una carpeta compartida indexada donde está es otra cosa. PrintStash no es dueño de esos bytes, así que tu política de copias o de instantáneas del NAS tiene que cubrirlos. Si quieres la capa de Docker que hay debajo de todo esto, copiar los volúmenes con nombre explica qué volumen contiene la base de datos, los archivos propios y la clave de secretos generada.
Restaurar sin SSH
Abre Ajustes -> Almacenamiento para listar, crear, descargar y restaurar copias de seguridad. Los superusuarios pueden lanzar los mismos trabajos a través de la API.
La restauración lleva una confirmación fuerte porque reemplaza la base de datos actual y los archivos de los que PrintStash es dueño. Es una vuelta atrás, no una fusión. Detén los ganchos del slicer y el resto de la automatización de subidas antes de lanzar una.
La descarga también importa. Una copia guardada solo en el mismo host no cubre un disco averiado, una máquina perdida ni un volumen roto. Guarda otra copia en un sistema o un proveedor distinto.
El truco del manifiesto
Cada archivo lleva un manifiesto pequeño que describe su ID, su marca de tiempo, su versión y su contenido. La lista de copias de seguridad lee esos metadatos.
La primera implementación de S3 ponía el manifiesto al final del archivo. Listar las copias exigía entonces descargar cada objeto completo solo para llegar a unos pocos bytes de metadatos. La versión 0.6.3 movió el manifiesto a la primera entrada del archivo. PrintStash ya puede leer la cabecera y parar, así que la lista sigue siendo rápida incluso cuando el bucket contiene copias grandes.
Una rutina razonable
- Crea una copia de seguridad antes de cada actualización o cambio de almacenamiento con riesgo.
- Replícala fuera del host de PrintStash.
- Descarga un archivo de vez en cuando y guárdalo en algún sitio independiente.
- Restaura uno en una pila de pruebas.
- Comprueba un modelo que conozcas, sus archivos, sus etiquetas y su historial.
Ese último paso es la prueba. Hasta entonces tienes un archivo, no un procedimiento de recuperación demostrado. Para la configuración del bucket y la programación, usa la guía de copias en S3, y la guía de copia de seguridad y restauración tiene el detalle a nivel de endpoint.
Preguntas que surgen
¿Cómo hago una copia de seguridad de una biblioteca autoalojada de impresión 3D?
Captura la base de datos, los archivos de los que la aplicación es dueña, y la configuración y los secretos que los descifran, todo del mismo instante. En la práctica eso significa usar la copia de seguridad de la propia aplicación en lugar de copiar sus archivos, porque solo la aplicación puede tomar una instantánea de la base de datos coherente con los blobs a los que apunta. En PrintStash es una acción de superusuario bajo Settings, Storage, o la llamada equivalente a la API, y cada archivo contiene la base de datos, los archivos propios de modelo y de G-code, los documentos, las miniaturas y un manifiesto. Luego saca una copia del host, porque una copia que vive en el mismo disco que los datos te protege de los errores y no del hardware. No hay programador integrado, así que un cron o un temporizador de systemd es lo que hace que ocurra con regularidad.
¿Cómo restauro una copia de seguridad de PrintStash?
Desde Settings, Storage: lista las copias, elige una y confirma en un paso de confirmación deliberadamente pesado, que es la única fricción aquí que se gana su sitio, o lanza el mismo trabajo por la API como superusuario. La restauración reemplaza la base de datos actual y los archivos de los que PrintStash es dueño, así que es una vuelta atrás y no una fusión, y todo lo añadido desde que se creó ese archivo desaparece. Detén primero los ganchos del slicer y el resto de la automatización de subidas. La ruta de restauración valida y prepara lo que está a punto de escribir, pausa a los escritores concurrentes y deshace los cambios de almacenamiento si falla a medias, así que una restauración fallida debería dejarte donde empezaste en lugar de a medio camino.
¿Una copia de seguridad incluye mi carpeta de modelos del NAS?
No, y es a propósito. Una carpeta añadida como volumen compartido se indexa donde está: PrintStash lee esos bytes donde viven, nunca es dueño de ellos y nunca los borra cuando quitas un modelo o el volumen. El archivo cubre los datos propios de la biblioteca, que incluyen los metadatos, las revisiones, los resultados y el historial de impresión de esos modelos, mientras que las mallas en sí siguen siendo responsabilidad del NAS. Planifica las dos mitades, y recuerda que restaurar el archivo sin el NAS te da una biblioteca que lo sabe todo sobre archivos que ya no puede leer.
¿Puedo copiar a S3, R2 o MinIO?
Sí. Cada copia de seguridad se escribe primero en el directorio local de copias, y PrintStash la replica a un bucket compatible con S3 cuando hay uno configurado, lo que cubre Cloudflare R2, MinIO y cualquier otra cosa que hable la misma API. El servicio compatible con S3 que viene en la pila por defecto es SeaweedFS. Listar las copias remotas sigue siendo rápido porque cada archivo pone su manifiesto en la primera entrada, así que la lista lee una cabecera en lugar de descargar objetos enteros. La guía de copias en S3 cubre las credenciales y la llamada de programación.
¿Cómo compruebo que mi copia de seguridad se restaura de verdad?
Restáurala en una pila de pruebas y no encima de la que está en producción: levanta un segundo PrintStash con los volúmenes vacíos, restaura el archivo ahí y luego comprueba un modelo que conozcas bien, incluidos sus archivos, sus etiquetas, sus revisiones y su historial de impresión. Esa última parte es la prueba que la gente se salta, y es la que pilla un archivo que se restaura sin problemas mientras le falta algo que te importaba. Hacerlo una vez después de la instalación y otra después de cualquier cambio de almacenamiento es suficiente para la mayoría de las instalaciones.