使用 icloudpd 备份 iCloud 相册

date
Jun 5, 2025
outer_link
slug
backup-iCloud-with-icloudpd
status
Published
tags
tech
diary
summary
简单记录一下群晖安装 icloudpd 的过程
type
Post
昨天晚上收拾自己运行的一些服务的时候,发现有一块 10TB 的硬盘使用率极低。想了一下用来作为 iCloud 的备份还不错。
一开始的想法是使用一个退役的 iPhone 12 mini 安装 OneDrive 启用相片同步功能,然后在群晖中使用 Cloud Sync 套件来将上传到 OneDrive 的相片同步到本地硬盘。但感觉这样做的弊端是要保持 iPhone 12 mini 的供电状态以及 OneDrive 后台持续运行。之前了解到一个 icloudpd 的服务,搜索了一下,发现现在都能支持使用 Telegram 进行 MFA 验证了,感觉方便了不少。
下面的操作都是在群晖里进行的。
首先,在群晖的 Container Manager 中的镜像仓库搜索“icloudpd“,然后下载 boredazfcuk/icloudpd 镜像。
下载完成后在映像中运行这个镜像,只需要做两点:
  1. 在存储空间中映射两个文件夹,一个用于保存配置,另一个用于保存媒体文件。
  1. 环境变量 TZ 要设置正确,在国内使用 Asia/Shanghai
存储空间以及环境变量配置参考
存储空间以及环境变量配置参考
虽然作者推荐新建一个网络给这个容器使用,但我自己使用默认的网络配置暂时没有出现什么问题。
运行成功后,会在 /config 文件夹下面生成一个 icloudpd.conf 文件,下面是需要编辑的地方。
以 Telegram 接收通知为例,其他通知方式可参考下面这个网址:
GitHubGitHubdocker-icloudpd/CONFIGURATION.md at master · boredazfcuk/docker-icloudpd
agentid= albums_with_dates=false align_raw=as-is apple_id=xxx@xxx.com # 填写自己的 Apple ID auth_china=false authentication_type=MFA auto_delete=false bark_device_key= bark_server= content_source_url= convert_heic_to_jpeg=false debug_logging=false delete_accompanying=false delete_after_download=false delete_empty_directories=false delete_notifications=true dingtalk_token= directory_permissions=750 discord_id= discord_token= download_delay=0 download_interval=86400 download_notifications=true download_path=/iCloud # 这里的路径要和上面映射的文件夹路径一致 fake_user_agent=false file_match_policy=name-size-dedup-with-suffix file_permissions=640 folder_structure={:%Y/%m-%d} # 可以自行更改,原始是 /2025/05/20/ 的文件夹格式,但我偏好 /2025/05-20/ force_gid=false gotify_app_token= gotify_https= gotify_server_url= group=users group_id=100 icloud_china=false iyuu_token= jpeg_path= jpeg_quality=90 keep_icloud_recent_days= keep_icloud_recent_only=false keep_unicode=false libraries_with_dates=false live_photo_mov_filename_policy=suffix live_photo_size=original media_id_delete= media_id_download= media_id_expiration= media_id_startup= media_id_warning= msmtp_args=--tls-starttls=off msmtp_from= msmtp_host= msmtp_pass= msmtp_port= msmtp_tls=on msmtp_to= msmtp_user= name= nextcloud_delete=false nextcloud_password= nextcloud_upload=false nextcloud_url= nextcloud_username= notification_days=7 notification_type=telegram # 使用 Telegram 来接收通知或进行重新认证登录 photo_album= photo_library= photo_size=original prowl_api_key= pushover_sound= pushover_token= pushover_user= recent_only= set_exif_datetime=false sideways_copy_videos=false sideways_copy_videos_mode=copy signal_host= signal_number= signal_port= signal_recipient= silent_file_notifications=false single_pass=false skip_album= skip_check=true # 如果相册文件有上千张,使用 true 来跳过检查 skip_download=false skip_library= skip_live_photos=false skip_videos=false startup_notification=true synology_ignore_path=false synology_photos_app_fix=false telegram_bot_initialised=true telegram_chat_id= # 自己的 Telegram ID(数字),可以参考 https://gist.github.com/nafiesl/4ad622f344cd1dc3bb1ecbe468ff9f8a telegram_http=false telegram_polling=true telegram_server= # 在国内可以使用代理 telegram_token= # 在 botfather 中创建后获取 touser= trigger_nextlcoudcli_download= until_found= user= # 群晖用户名 user_id=1026 # 群晖用户的 ID video_path= webhook_https=false webhook_id= webhook_insecure=false webhook_path=/api/webhook/ webhook_port=8123 webhook_server= wecom_id= wecom_proxy= wecom_secret=
然后打开这个容器的终端机,运行 /bin/sh ,在终端中运行 sync-icloud.sh --Initialise ,如果一切顺利,你就可以看到让你输入验证码,然后就可以并开始同步了。
notion image
这样每天 icloudpd 都会自动将 iCloud 内的照片下载到本地,并且在 Telegram 内发送通知。也可以在 Telegram 中发送指令,让它立即同步。
我连续使用了大概半个月,目前看来十分稳定,只等 cookie 快到期的时候看使用 Telegram 重新认证的过程如何了。
notion image

© YM.SI 2023 - 2025

Powered by Notion & Vercel