iCloud Drive
iCloud Drive is Apple’s cloud storage service.
The iCloud Drive integration backs up iCloud Drive folders into a Kloset store, restores snapshots to iCloud Drive, and hosts Kloset stores in iCloud Drive. It is provided by the Rclone package and reaches iCloud Drive through Rclone, a command-line program that manages files on cloud storage and supports iCloud Drive as one of its backends.
The integration includes three connectors:
| Connector type | Description |
|---|---|
| Source connector | Back up a Rclone remote into a Kloset store. |
| Destination connector | Restore data from a Kloset store into a Rclone remote. |
| Store connector | Host a Kloset store inside a Rclone remote. |
Requirements
- Rclone installed, with at least one iCloud Drive remote configured.
Typical use cases
- Cold backup of iCloud Drive folders.
- Long-term archiving and disaster recovery.
- Portable export and vendor escape to other platforms.
Installation
The iCloud Drive integration is provided by the Rclone Plakar package.
Pre-compiled packages are available for common platforms and provide the simplest installation method.
Logging In
Pre-built packages require Plakar authentication. See Logging in to Plakar for details.
Install the Rclone package:
$ plakar pkg add rcloneVerify installation:
$ plakar pkg showSource builds are useful when pre-built packages are unavailable or when customization is required.
Prerequisites:
- Go toolchain compatible with your Plakar version
Build the package:
$ plakar pkg build rcloneA package archive will be created in the current directory (e.g.,
rclone_v1.0.0_darwin_arm64.ptar).
Install the package:
$ plakar pkg add -allow-unsigned ./rclone_v1.0.0_darwin_arm64.ptarVerify installation:
$ plakar pkg showTo list, upgrade, or remove the package, see managing packages guide.
Configuring an iCloud Drive remote
Due to current limitations in Rclone, logging in to iCloud Drive is not possible at the time of writing. The steps below are provided for reference and future compatibility.
The connectors reach iCloud Drive through a Rclone remote. The remote is created with Rclone and then imported into Plakar as a source, destination or store configuration.
Install Rclone by following the instructions at https://rclone.org/install/, then start the interactive configuration:
$ rclone configThe command prompts for the settings of a new iCloud Drive remote. For Rclone v1.72.1, the configuration flow is as follows:
- Choose
nto create a new remote. - Name the remote (e.g.,
mydrive). - Enter the number corresponding to “iCloud Drive” from the list of supported storage providers.
- Enter your Apple ID.
- Enter your password.
- Validate the remote configuration.
Verify that the remote is configured:
$ rclone config show mydriveVerify access to your iCloud Drive files:
$ rclone ls mydrive:The output lists the files and folders in your iCloud Drive.
Configuration
Each connector is configured by importing the Rclone remote with
rclone config show | plakar <source|destination|store> import -rclone <remote>.
The imported configuration takes the name of the remote, so a remote named
mydrive is referenced as @mydrive. The connectors can be combined with any
other Plakar connector.
Backup flow
flowchart LR subgraph Source["Rclone Remote"] FS["Data"] end Plakar["Plakar"] Via["Retrieve data via
Rclone source connector"] Store["Kloset Store"] FS --> Via --> Plakar --> Store
Restore flow
flowchart LR Store["Kloset Store"] Plakar["Plakar"] Via["Push data via
Rclone destination connector"] subgraph Destination["Rclone Remote"] FS["Data"] end Store --> Plakar --> Via --> FS
Store flow
flowchart LR Source["Source data"] Plakar["Plakar"] Via["Store snapshot via
Rclone storage connector"] subgraph Store["Rclone Remote"] Kloset["Kloset Store"] end Source --> Plakar --> Via --> Kloset
Source configuration
The source connector has no options beyond the imported Rclone remote.
Destination configuration
The destination connector has no options beyond the imported Rclone remote.
Store configuration
The following option can be set on the store connector with plakar store add
or plakar store set.
| Option | Required | Description |
|---|---|---|
passphrase |
No | The Kloset store passphrase. |
Example
Back up the remote:
# Import the rclone configuration as a source configuration.
# Replace "mydrive" with your Rclone remote name.
$ rclone config show | plakar source import -rclone mydrive
# Back up the remote directory to the Kloset store on the filesystem
$ plakar at /var/backups backup "@mydrive"
# Or back up the remote directory to a Kloset store configured with "plakar store add"
$ plakar at "@store" backup "@mydrive"Restore a snapshot to the remote:
# Import the rclone configuration as a destination configuration.
# Replace "mydrive" with your Rclone remote name.
$ rclone config show | plakar destination import -rclone mydrive
# Restore a snapshot from a filesystem-hosted Kloset store to the Rclone remote
$ plakar at /var/backups restore -to "@mydrive" <snapshot_id>
# Or restore a snapshot from the Kloset store configured with "plakar store add store …"
$ plakar at "@store" restore -to "@mydrive" <snapshot_id>Host a Kloset store in the remote:
# Import the rclone configuration as a storage configuration.
# Replace "mydrive" with your Rclone remote name.
$ rclone config show | plakar store import -rclone mydrive
# Initialize the Kloset store
$ plakar at "@mydrive" create
# List snapshots in the Kloset store
$ plakar at "@mydrive" ls
# Verify integrity of the Kloset store
$ plakar at "@mydrive" check
# Back up a local folder to the Kloset store
$ plakar at "@mydrive" backup /etc
# Back up a source configured in Plakar to the Kloset store
$ plakar at "@mydrive" backup "@my_source"Limitations and scope
At the time of writing and according to this GitHub issue, it is currently impossible to log in to iCloud Drive using Rclone.