Install
Works with Drupal: ^10 || ^11Using Composer to manage Drupal site dependencies
Alternative installation files
Release notes
Added
- Cron notice on general settings: When sync mode is active, a notice explains that sync runs when Drupal cron runs, shows the current Drupal cron interval, and provides a ready-to-use system crontab command (`sudo -u {web_user} {drush_path} nc-sync-all`) based on the selected Cron sync interval.
- Cron sync interval minimum: Options are filtered so the minimum selectable interval matches the Drupal automated cron interval. If the Drupal cron interval (e.g. 3 hours) is not in the predefined list, it is added as "Drupal cron interval".
Security
- Credentials no longer written to disk: rclone credentials are now passed via `RCLONE_CONFIG_*` environment variables instead of a config file. This avoids plain-text credentials on disk and correctly supports multiple concurrent users (each gets their own credentials in-process). The legacy `rclone-nextcloud.conf` file is removed on upgrade (update 9002).
Changed
- Cron sync interval dropdown enforces a minimum of the Drupal cron interval when using automated cron; shorter intervals are hidden unless a custom system cron runs more frequently.
- Suggested system cron command uses `nc-sync-all` (direct sync) instead of `drush cron`; drush path and web server user are resolved automatically.
- Bisync uses a temporary config file (written and deleted per run) for stable remote identity; env vars alone caused rclone to assign different internal IDs per run, breaking bisync workdir state.
- Bisync pre-checks for empty workdir and runs with `--resync` from the start when no prior listings exist, avoiding the initial failure and retry.
- Drush check command step 6 now reports "rclone runtime directory" and "credentials passed via environment (no config file)" instead of config file path.
- Rclone cache, logs, and bisync workdir moved to `private://nextcloud_webdav_mount/rclone/` (was under mount parent, e.g. `private://users/`). Install creates this directory; update 9001 migrates existing installs; `hook_requirements()` validates writability.