Cómo automatizar las copias de seguridad de PrintStash en S3
Crea copias de seguridad completas de PrintStash, replícalas en un bucket compatible con S3 y programa la llamada a la API con credenciales que puedas revocar.
PrintStash puede replicar cada copia de seguridad completa en AWS S3, Cloudflare R2, Backblaze B2, MinIO u otro servicio compatible con S3. Siempre escribe el archivo primero en local y luego sube ese mismo archivo al bucket configurado.
La aplicación crea copias de seguridad cuando se le pide. Si quieres una tarea nocturna, programa la llamada a la API desde cron, desde el planificador de tareas del NAS o desde la herramienta de automatización que ya uses.
Qué contiene una copia de seguridad
Un archivo completo contiene:
- una instantánea transaccionalmente consistente de la base de datos SQLite;
- los archivos de modelo y de G-code que pertenecen a PrintStash;
- las miniaturas generadas;
- un manifiesto con el ID de la copia, la versión y la marca de tiempo.
El flujo integrado de copia y restauración no soporta PostgreSQL. Usa pg_dump y tu procedimiento habitual de restauración de PostgreSQL, y luego protege por separado los objetos gestionados, locales o en S3.
Los archivos indexados en su sitio desde un NAS u otro volumen compartido no se copian dentro del archivo. Sigue respaldando esa carpeta con restic, Borg, instantáneas o la herramienta del NAS en la que ya confíes.
Configura el bucket de copias
Pon las variables específicas de copia de seguridad en .env:
VAULT_BACKUP_S3_BUCKET=printstash-backupsVAULT_BACKUP_S3_ENDPOINT_URL=https://<account-id>.r2.cloudflarestorage.comVAULT_BACKUP_S3_REGION=autoVAULT_BACKUP_S3_ACCESS_KEY=<access-key>VAULT_BACKUP_S3_SECRET_KEY=<secret-key>VAULT_BACKUP_RETENTION_DAYS=30AWS S3 normalmente usa en su lugar su endpoint y su región regionales. MinIO y B2 necesitan su propio endpoint. Crea el bucket primero y da a las credenciales permiso para leer, escribir, listar y borrar objetos en ese bucket.
Reinicia la pila después de cambiar valores del entorno:
docker compose up -dCrea una copia de seguridad a mano desde Ajustes -> Almacenamiento y confirma que aparece tanto en el directorio local de copias como en el bucket. Arregla esto antes de añadir una programación.
Programa la llamada de copia
La API de copias de seguridad requiere un superusuario. Crea una clave de API con nombre en la cuenta de superusuario que use la tarea, o crea un superusuario dedicado si quieres separar sus credenciales y su rastro de auditoría. Trata esa clave como muy privilegiada. En tiempo de ejecución, intercambia el usuario y la clave por un token de acceso y luego llama a POST /api/v1/backups. La guía de automatización con la API explica ese flujo de acceso.
Una entrada diaria de cron puede llamar a tu script envoltorio a las 03:20, por ejemplo:
20 3 * * * /opt/printstash/bin/run-backupHaz que el envoltorio falle ante errores HTTP y que mande su salida a algún sitio donde te vayas a dar cuenta. Un comando programado que falla en silencio no es una copia de seguridad automática.
Prueba la ruta de restauración
Descarga un archivo desde la interfaz, restáuralo en una pila de PrintStash de pruebas y comprueba un modelo que conozcas, sus archivos, sus etiquetas y su historial de impresión. Restaurar reemplaza la base de datos actual y los archivos propios; no fusiona dos bibliotecas.
S3 te protege de perder el host de PrintStash. No demuestra que el archivo sea utilizable. Una restauración de prueba periódica es la parte que convierte un objeto subido en un plan de recuperación.