Skip to content

WeeJeWel/node-icloud-backup

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

iCloud Backup

NPM Version Sponsor Build & Publish NPM Package Build & Publish Docker Image

This module automatically downloads your iCloud Drive & Photos to the local filesystem.

This tool will output the following directory structure:

.
└── Drive
    └── <...>
└── Photos
    └── All Photos
        └── <.png|.jpg|.mov|...>

Why?

Apple makes great services, but there are many horror stories of people locked out of their accounts. So be safe, and keep your data backed up!

Usage

1. Run

Node.js

If you have Node.js already installed, run:

$ npx -y icloud-backup \
  --username "[email protected]" \
  --password "abcd efgh ijkl mnop" \
  --filepath "~/Backups/iCloud/" \
  --services "drive,photos"

The first time you will need to enter your 2FA code manually.

Hint: You can schedule this in a cronjob for automated backups.

Docker

If you prefer Docker, this is an example how to run:

$ docker run -it \
  --env ICLOUD_BACKUP_USERNAME="[email protected]" \
  --env ICLOUD_BACKUP_PASSWORD="abcd efgh ijkl mnop" \
  --env ICLOUD_BACKUP_FILEPATH="/backups" \
  --volume="~/Backups/iCloud/:/backups/" \
  ghcr.io/weejewel/icloud-backup

Hint: when automating this within a cronjob, remove -it after the first run.

Credits

Most hard work is done by @foxt in icloud.js. Please sponsor them!

Also see

Looking to backup Google Mail, Calendar & Contacts in a similar way? See Google Backup.