icloudpd

icloudpd

Application Docker from Womabre's Repository

Vue d'ensemble

An Alpine Linux Docker container for ndbroadbent's iCloud Photos Downloader. I use it for syncing the photo streams of all the iDevices in my house back to my server because it's the only way of backing up multiple devices to a single location. It uses the system keyring to securely store credentials, has HEIC to JPG conversion capability, and can send Telegram, Prowl, Pushover, WebHook, DingTalk, Discord, openhab, IYUU and WeCom notifications. It is recommended to use the keyring to securely store credentials. Please connect to the container and run `sync-icloud.sh --Initialise` command manually to start the process of saving your password to the keyring and Apple sends a confirmation code via text or 2FA code to your device which needs to be entered into the console. You can also run this command from the Unraid console to start the authentication process. `docker exec -it icloudpd sync-icloud.sh --Initialise` Create a `.mounted` file inside `iCloud` folder in the photos directory for the container to start syncing photos. This file MUST be created manually and sync will not start without it.

Arguments d'exécution

Réseau
bridge
Coquille
sh
Privilégié
false

Configuration du modèle

Apple IDVariable

Apple ID used to access iCloud.

Cible
apple_id
Défaut
your@appleid.com
Time ZoneVariable

Sets container timezone. Example: Europe/Amsterdam

Cible
TZ
Défaut
UTC
Config PathPathrw

Stores configuration, cookies, and keyring.

Cible
/config
Défaut
/mnt/user/appdata/icloudpd
Download PathPathrw,slave

Where downloaded photos and videos will be stored. A .mounted file must exist inside this folder before syncing will start.

Cible
/home/user/iCloud
Défaut
/mnt/user/iCloud
Download IntervalVariable

Seconds between downloads. Valid values: 21600 (6h), 43200 (12h), 86400 (24h), 129600 (36h), 172800 (48h), 604800 (7d). Defaults to 86400 if an invalid value is set.

Cible
download_interval
Défaut
86400
Download DelayVariable

Delay first download in minutes (0-60). Use to stagger multiple containers.

Cible
download_delay
Défaut
0
Folder StructureVariable

Folder structure for downloaded files. Use 'none' for a flat structure. Default: {:%Y/%m/%d}

Cible
folder_structure
Défaut
{:%Y/%m/%d}
Albums With DatesVariable

Organize albums into subfolders by date (uses folder_structure). Default: false

Cible
albums_with_dates
Défaut
false
Libraries With DatesVariable

Organize libraries into subfolders by date (uses folder_structure). Default: false

Cible
libraries_with_dates
Défaut
false
Authentication TypeVariable

Type of authentication on your iCloud account. Use 'MFA' or 'Web' (if no MFA). Default: MFA

Cible
authentication_type
Défaut
MFA
Notification DaysVariable

Notify n days before MFA cookie expires. A single notification is sent per day. Default: 7

Cible
notification_days
Défaut
7
Single PassVariable

Set to true to exit after a single sync instead of looping. If used, set container restart policy to 'no'.

Cible
single_pass
Défaut
false
Skip CheckVariable

Skip the check for new files. Recommended for libraries with more than a few thousand photos. Default: false

Cible
skip_check
Défaut
false
Photo SizeVariable

Size to download: original, medium, thumb, adjusted, alternative. Can be comma-separated for multiple sizes. Default: original

Cible
photo_size
Défaut
original
Skip Live PhotosVariable

Skip downloading Live Photos. Default: false

Cible
skip_live_photos
Défaut
false
Live Photo SizeVariable

Live photo size: original, medium, or thumb. Ignored if skip_live_photos is true. Default: original

Cible
live_photo_size
Défaut
original
Skip VideosVariable

Skip downloading videos. Default: false

Cible
skip_videos
Défaut
false
Recent OnlyVariable

Only download this number of recently added photos. Leave empty to download all.

Cible
recent_only
Until FoundVariable

Download recent photos until n previously downloaded consecutive photos are found. Leave empty to download all.

Cible
until_found
Photo AlbumVariable

Download only from specific album(s). Comma-separated. Use 'all albums' to download all albums.

Cible
photo_album
Skip AlbumVariable

Skip specific albums when using photo_album. Example: All Photos,Videos,Screenshots

Cible
skip_album
Photo LibraryVariable

Download only from specific shared library/libraries. Comma-separated. Use 'all libraries' to download all.

Cible
photo_library
Skip LibraryVariable

Skip specific libraries when using photo_library. Example: PrimarySync

Cible
skip_library
Align RAWVariable

For assets with RAW and JPEG, treat RAW in specified size: original, alternative, or as-is. Default: as-is

Cible
align_raw
Défaut
as-is
File Match PolicyVariable

Policy to identify and de-duplicate files. Options: name-size-dedup-with-suffix, name-id7. Default: name-size-dedup-with-suffix

Cible
file_match_policy
Défaut
name-size-dedup-with-suffix
Convert HEIC to JPEGVariable

Convert downloaded HEIC files to JPEG, retaining the original. Default: false

Cible
convert_heic_to_jpeg
Défaut
false
JPEG QualityVariable

JPEG conversion quality (0-100). Default: 90

Cible
jpeg_quality
Défaut
90
JPEG PathVariable

Custom path for converted JPEGs. Defaults to download path if not set.

Cible
jpeg_path
Auto DeleteVariable

Scan 'Recently Deleted' folder and delete those files locally. Default: false

Cible
auto_delete
Défaut
false
Delete After DownloadVariable

Move file to Recently Deleted after download. Cannot be combined with auto_delete. Default: false

Cible
delete_after_download
Défaut
false
Delete Accompanying FilesVariable

Delete generated JPG and MOV files that accompany HEICs (live photo MOVs, converted JPEGs). Default: false

Cible
delete_accompanying
Défaut
false
Delete Empty DirectoriesVariable

Delete empty directories after sync. Only runs if folder_structure is not 'none'. Default: false

Cible
delete_empty_directories
Défaut
false
Set Exif DateTimeVariable

Write DateTimeOriginal EXIF tag from file creation date. Warning: alters local file and causes re-download with dedup suffix. Default: false

Cible
set_exif_datetime
Défaut
false
Keep UnicodeVariable

Keep unicode characters in file names. Set to false to strip non-ASCII chars. Default: false

Cible
keep_unicode
Défaut
false
Live Photo MOV Filename PolicyVariable

Filename policy for Live Photo MOV files: suffix (adds _HEVC) or original (same name as photo). Default: suffix

Cible
live_photo_mov_filename_policy
Défaut
suffix
Sideways Copy VideosVariable

Copy or move downloaded videos to a separate directory (video_path). Default: false

Cible
sideways_copy_videos
Défaut
false
Sideways Copy Videos ModeVariable

How to handle sideways video copy: 'copy' (leave original) or 'move' (requires delete_after_download=true). Default: copy

Cible
sideways_copy_videos_mode
Défaut
copy
Video PathVariable

Destination directory for sideways video copy/move. Required when sideways_copy_videos is true.

Cible
video_path
Nextcloud UploadVariable

Enable upload to Nextcloud after download. Default: false

Cible
nextcloud_upload
Défaut
false
Nextcloud URLVariable

Nextcloud server URL. Example: https://my.server.local/nextcloud/

Cible
nextcloud_url
Nextcloud UsernameVariable

Username of the Nextcloud account to upload to.

Cible
nextcloud_username
Nextcloud PasswordVariable

Password for the Nextcloud account.

Cible
nextcloud_password
Nextcloud Target DirVariable

Root folder in Nextcloud to place files in. Cannot be the root of the server.

Cible
nextcloud_target_dir
Nextcloud DeleteVariable

Delete file from Nextcloud when removed locally. Requires auto_delete=true. Default: false

Cible
nextcloud_delete
Défaut
false
Notification TypeVariable

Notification provider to use. Options: Prowl, Pushover, Telegram, Webhook, openhab, Dingtalk, Discord, IYUU, WeCom, Gotify, Bark, msmtp, signal. Leave empty to disable.

Cible
notification_type
Notification TitleVariable

Title used in notifications. Default: boredazfcuk/iCloudPD

Cible
notification_title
Défaut
boredazfcuk/iCloudPD
Download NotificationsVariable

Send notifications with a summary after file downloads. Default: true

Cible
download_notifications
Défaut
true
Delete NotificationsVariable

Send notifications with a summary after file deletions. Default: true

Cible
delete_notifications
Défaut
true
Startup NotificationVariable

Send a notification when the container starts. Default: true

Cible
startup_notification
Défaut
true
Silent File NotificationsVariable

Send low-priority (silent) notifications for file downloads and deletions. Default: false

Cible
silent_file_notifications
Défaut
false
msmtp HostVariable

[msmtp] SMTP server hostname.

Cible
msmtp_host
msmtp PortVariable

[msmtp] SMTP server port. Normally 465 or 587. Default: 587

Cible
msmtp_port
Défaut
587
msmtp UsernameVariable

[msmtp] SMTP login username.

Cible
msmtp_user
msmtp PasswordVariable

[msmtp] SMTP login password.

Cible
msmtp_pass
msmtp From AddressVariable

[msmtp] Sender email address.

Cible
msmtp_from
msmtp TLSVariable

[msmtp] Enable TLS encryption: on or off. Default: on

Cible
msmtp_tls
Défaut
on
msmtp AuthVariable

[msmtp] Enable SMTP authentication: on or off. Default: on

Cible
msmtp_auth
Défaut
on
msmtp Extra ArgsVariable

[msmtp] Optional extra arguments for msmtp. Example: --tls-starttls=off

Cible
msmtp_args
Gotify Server URLVariable

[Gotify] Server hostname. Example: server.domain.tld (no port, no protocol). Use gotify_https to toggle HTTPS.

Cible
gotify_server_url
Gotify App TokenVariable

[Gotify] Application token for Gotify.

Cible
gotify_app_token
Gotify HTTPSVariable

[Gotify] Use HTTPS for Gotify server URL. Default: false (HTTP)

Cible
gotify_https
Défaut
false
Gotify PriorityVariable

[Gotify] Message priority (0-10). Default: 0

Cible
gotify_priority
Défaut
0
Signal HostVariable

[Signal] Hostname of the bbernhard/signal-cli-rest-api container.

Cible
signal_host
Signal PortVariable

[Signal] Port the signal-cli-rest-api container listens on.

Cible
signal_port
Signal NumberVariable

[Signal] Phone number of the Signal device to send from.

Cible
signal_number
Signal RecipientVariable

[Signal] Recipient phone number for Signal messages.

Cible
signal_recipient
Bark URLVariable

[Bark] Full Bark push URL. For the official server use: api.day.app

Cible
bark_url
Pushover TokenVariable

[Pushover] Application API token.

Cible
pushover_token
Pushover User KeyVariable

[Pushover] Pushover user key.

Cible
pushover_user
Pushover PriorityVariable

[Pushover] Priority: -1, 0, 1, or 2. Default: 0

Cible
pushover_priority
Défaut
0
Pushover RetryVariable

[Pushover] Retry interval in seconds (priority 2 only). Default: 60

Cible
pushover_retry
Défaut
60
Pushover ExpireVariable

[Pushover] Notification expiration in seconds (priority 2 only). Default: 3600

Cible
pushover_expire
Défaut
3600
Pushover SoundVariable

[Pushover] Custom notification sound. See https://pushover.net/api#sounds for values.

Cible
pushover_sound
Healthchecks URLVariable

[Healthchecks] Full ping URL for Healthchecks.io.

Cible
healthchecks_url
Webhook ServerVariable

[Webhook/openhab] Hostname of the webhook server.

Cible
webhook_server
Webhook PortVariable

[Webhook/openhab] Port for the webhook server. Default: 8123

Cible
webhook_port
Défaut
8123
Webhook PathVariable

[Webhook/openhab] Path on the webhook server. Must start and end with /. Default: /api/webhook/

Cible
webhook_path
Défaut
/api/webhook/
Webhook IDVariable

[Webhook/openhab] Webhook ID. For openhab use 'state'.

Cible
webhook_id
Webhook HTTPSVariable

[Webhook/openhab] Use HTTPS. Default: false (HTTP)

Cible
webhook_https
Défaut
false
Webhook BodyVariable

[Webhook] Body key for the webhook request. HA=data, Discord=content, IFTTT=value1. Default: data

Cible
webhook_body
Défaut
data
Webhook InsecureVariable

[Webhook] Allow insecure HTTPS certificates (e.g. self-signed). Default: false

Cible
webhook_insecure
Défaut
false
Telegram TokenVariable

[Telegram] Bot token from BotFather.

Cible
telegram_token
Telegram Chat IDVariable

[Telegram] Chat ID for the bot. Prefix with - for group chats.

Cible
telegram_chat_id
Telegram PollingVariable

[Telegram] Enable polling to allow remote sync/auth via chat messages. Default: false

Cible
telegram_polling
Défaut
false
Telegram Silent NotificationsVariable

[Telegram] Send file download notifications silently. Default: false

Cible
telegram_silent_file_notifications
Défaut
false
Telegram ServerVariable

[Telegram] Proxy server FQDN if Telegram is blocked in your country.

Cible
telegram_server
Telegram HTTPVariable

[Telegram] Use HTTP instead of HTTPS if Telegram is restricted to HTTP only. Default: false

Cible
telegram_http
Défaut
false
Prowl API KeyVariable

[Prowl] API key from the Prowl website.

Cible
prowl_api_key
DingTalk TokenVariable

[DingTalk] Access token from DingTalk app Security Settings.

Cible
dingtalk_token
Discord IDVariable

[Discord] First part of the Discord webhook URL (numbers only).

Cible
discord_id
Discord TokenVariable

[Discord] Second part of the Discord webhook URL.

Cible
discord_token
IYUU TokenVariable

[IYUU] Access token for IYUU notifications.

Cible
iyuu_token
Initialise KeyringVariable

Run password/keyring setup and create MFA cookie on next start.

Cible
initialise
Défaut
false
Convert All HEICsVariable

Convert HEICs that do not have a corresponding JPEG.

Cible
convert_all_heics
Défaut
false
Force Convert All HEICsVariable

Convert all HEICs regardless of existing JPEG presence. 2-minute delay before running.

Cible
force_convert_all_heics
Défaut
false
Force Convert All HEICs in /mntVariable

Convert all HEICs in /mnt path. 2-minute delay before running.

Cible
force_convert_all_mnt_heics
Défaut
false
Remove All JPGsVariable

Remove all JPEGs that have a matching HEIC source file.

Cible
remove_all_jpgs
Défaut
false
Correct JPEG Time StampsVariable

Correct JPEG timestamps to match their accompanying HEIC files.

Cible
correct_jpeg_time_stamps
Défaut
false
Remove KeyringVariable

Delete stored password and keyring data. Use when changing Apple ID password.

Cible
remove_keyring
Défaut
false
Enable DebuggingVariable

Enable verbose debug output.

Cible
enable_debugging
Défaut
false
Disable DebuggingVariable

Disable debug logging.

Cible
disable_debugging
Défaut
false
Upload Library to NextcloudVariable

Force upload entire local library to Nextcloud.

Cible
upload_library_to_nextcloud
Défaut
false
Sideways Copy All VideosVariable

Copy or move all videos in download path to video_path.

Cible
sideways_copy_all_videos
Défaut
false
List AlbumsVariable

List all albums available in the iCloud account.

Cible
list_albums
Défaut
false
List LibrariesVariable

List all shared libraries available in the iCloud account.

Cible
list_libraries
Défaut
false
UserVariable

Container user name (e.g. 'nobody'). Also used as the Telegram remote-sync trigger word.

Cible
user
Défaut
user
User ID (PUID)Variable

User ID to match permissions on host.

Cible
user_id
Défaut
1000
GroupVariable

Group name for file permissions.

Cible
group
Défaut
group
Group ID (PGID)Variable

Group ID to match host group.

Cible
group_id
Défaut
1000
Force GIDVariable

Allow creation of a group with a pre-existing group ID. Use with caution.

Cible
force_gid
Directory PermissionsVariable

Permissions to set on directories in the download destination. Default: 750

Cible
directory_permissions
Défaut
750
File PermissionsVariable

Permissions to set on downloaded files. Default: 640

Cible
file_permissions
Défaut
640

Télécharger les statistiques

3,364,960
Total des téléchargements
111,932
Ce mois-ci
78,829
Moyenne / Mois

Total des téléchargements au fil du temps

Chargement du graphique...

Détails

Référentiel
boredazfcuk/icloudpd
Dernière mise à jour2026-05-04
Première vue2020-05-14

Exécutez Icloudpd sur Unraid.

Icloudpd est listé dans Community Apps pour Unraid OS. Explorez Unraid pour créer un serveur domestique flexible, un NAS ou un laboratoire domestique.