diff --git a/CHANGELOG.md b/CHANGELOG.md index 4d3997c..e4db1a7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,11 +7,15 @@ the app store accepts a `-beta` suffix, but Nextcloud servers then only offer th beta/daily update channel, which would hide the app from most admins. The stability stage is instead carried by the app description, the git tag, the release, and this file. -## [1.0.0-rc.5] - 2026-10-21 +## [1.0.0-rc.5] - 2026-10-22 Fifth release candidate for 1.0.0; the app version is 0.9.11. A full restore of 1 TB over SFTP stopped after 13 hours with "Blob not in index"; the backup itself was fine. +### Changed +- README and app store description: NG Backup needs background jobs on system cron, with how to + set that up (issues #13, #17). + ### Fixed - A full restore no longer stops with "Blob not in index" after a pack could not be read for a moment. Reading the index again then got an empty listing (from a connection the location had diff --git a/README.md b/README.md index db2595c..47ef3c1 100644 --- a/README.md +++ b/README.md @@ -33,6 +33,26 @@ Need help restoring a backup after a crash? Ensembia offers paid restore assista - Restores go through Nextcloud, so overwritten files keep their old content as a version and removed files go to the trash. +## Requirements + +- **Background jobs on system cron.** NG Backup runs backups in steps from Nextcloud's + background job, so a backup only moves forward when that job runs. Choosing "Cron" under + **Administration settings → Basic settings → Background jobs** is not enough on its own: it + tells Nextcloud that the system will call it, so you also need a cron line that does. Without + it a backup stays at "running (db)", and so does one started with "Back up now". + `occ backup:run` in a terminal works without cron (it runs in the foreground). + - Regular server: `crontab -u www-data -e` and add + `*/5 * * * * php -f /var/www/nextcloud/cron.php` (your Nextcloud path). + - Docker (the official `nextcloud` image): on the host, `crontab -e` as root and add + `*/5 * * * * docker exec -u www-data php -f /var/www/html/cron.php`, or add a + service with the same image and `entrypoint: /cron.sh` to your `docker-compose.yml`. + - Nextcloud All-in-One already runs cron. + + After a few minutes, the Background jobs section shows that the last job ran just now. See the + [Nextcloud documentation on background jobs](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/background_jobs_configuration.html). +- A storage location: S3 or compatible, SFTP, WebDAV, SMB (needs the PHP `smbclient` extension, + see below), FTP or a local path. + ## Quick start ``` diff --git a/appinfo/info.xml b/appinfo/info.xml index 536aa46..ba68b03 100644 --- a/appinfo/info.xml +++ b/appinfo/info.xml @@ -36,6 +36,7 @@ All-in-One and hosted Nextcloud. - One user (account, files, calendars, contacts) via user_migration. - The whole server onto a fresh installation (disaster recovery). +NG Backup needs Nextcloud's background jobs on system cron (a real cron line, not only the setting). Read "Known limitations" in the README before you rely on it, and test a restore. Feedback is very welcome: use the "Share your experience" link on the admin page.