Copias programadas y remotas para Nibbly
Las copias de seguridad son una de esas funciones en las que solo se piensa cuando algo ya salió mal. Nibbly las trata ahora como parte del flujo normal de publicación: snapshots locales para recuperación rápida, archivos ZIP programados para recuperación ante desastres y copias opcionales fuera del servidor para mayor tranquilidad.
Del historial de páginas a snapshots completos del sitio
Nibbly ya guardaba historial JSON por página cada vez que se guardaba contenido. Eso sigue siendo la forma más rápida de deshacer una edición accidental concreta. La nueva capa de backup va más lejos: el dashboard puede crear un ZIP completo del sitio con contenido, plantillas, assets, configuración y archivos core.
Las copias ZIP manuales se marcan como snapshots protegidos. Permanecen en el pool de backups hasta que un administrador las elimina, lo que las hace útiles antes de cambios arriesgados, migraciones o entregas a clientes.
Backups programados con cron
Para protección rutinaria, Nibbly incluye ahora un runner compatible con cron:
php cli/backup.php --action=run
El dashboard muestra la línea cron exacta para la ruta de instalación actual. Una configuración típica se ejecuta una vez por noche y escribe el progreso en backups/backup.log.
La retención sigue un modelo práctico abuelo-padre-hijo: copias diarias, semanales, mensuales y anuales. También puede definirse un límite de almacenamiento, para que las copias no manuales más antiguas se eliminen antes de llenar el servidor.
Destinos remotos
Una copia que solo existe en el mismo servidor es útil, pero no suficiente. Los ZIP programados pueden subirse ahora a almacenamiento externo después de crearse localmente. Los primeros destinos compatibles son:
- Dropbox
- Google Drive
- Microsoft OneDrive
- SFTP / SCP
- Almacenamiento compatible con S3
- WebDAV
Dropbox, Google Drive y OneDrive incluyen flujos de conexión desde el navegador en el dashboard. Cuando el administrador conecta una cuenta, Nibbly guarda un refresh token y los cronjobs pueden seguir subiendo futuras copias automáticamente.
Diseñado para sitios flat-file
La implementación se mantiene fiel al modelo flat-file de Nibbly. Las copias son archivos ZIP, los ajustes viven en JSON y el runner CLI funciona sin base de datos ni worker de colas. Los fallos de subida remota se notifican, pero la copia local se conserva. Los secretos se enmascaran en el dashboard y se eliminan de la copia archivada de content/settings.json.
El resultado es un flujo de backups familiar si has usado plugins de backup de WordPress o paneles de hosting, pero lo bastante pequeño para hosting PHP sencillo.