iCloud-drive-docker is a simple iCloud drive client in Docker environment. It uses pyiCloud python library to interact with iCloud drive server.
Primary use case of iCloud-drive-docker is to periodically sync wanted or all of your iCloud drive contents, using your iCloud username and password.
docker run --name icloud-drive -v ${PWD}/drive:/app/drive mandarons/icloud-drive
version: "3.4"
services:
icloud-drive:
image: mandarons/icloud-drive
environment:
- PUID=<insert the output of `id -u $user`>
- GUID=<insert the output of `id -g $user`>
container_name: icloud-drive
restart: unless-stopped
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- ${PWD}/icloud-drive/config.yaml:/app/config.yaml
- ${PWD}/icloud-drive/drive:/app/drive
docker exec -it icloud-drive /bin/sh -c "icloud --username=<icloud-username>"
Follow the steps to authenticate.
credentials:
# iCloud drive username: required
username: [email protected]
# iCloud drive password: optional
password:
settings:
# Auto-sync interval in seconds: optional, default: 1800
sync_interval: 1800
# Destination to sync: required
destination: './drive'
# Flag if remove files/folders that are present locally but not on iCloud server: optional, default: false
remove_obsolete: false
# Verbosity of messages: optional, default: false
verbose: false
filters:
# Paths to be 'included' in syncing iCloud drive content
folders:
- Documents
file_extensions: #Optional, leave empty for syncing all the content recursively
# File extensions to be included in syncing iCloud drive content
- pdf
- png
- jpg
- jpeg
Note: On every sync, this client iterates all the files and folders. Depending on number of files in your iCloud drive, syncing can take longer.