备份icloud到NAS,支持同步删除,绿联私有云部署icloud照片自动同步工具
大家好,这里是Cherry,喜爱折腾、捡垃圾、玩数码,热衷于分享NAS、docker玩耍经验~
前言
说到手机照片存储,google相册和icloud必然是商业代表的两个顶流!无论是无感备份、操作易用、使用体验与效果上,都是一顶一的没话说。
相比较于NAS照片管理来说,虽然各大品牌方都推出了自己的官方相册管理套件,也涌现了如mtphotos、immich、photoprism、ente、荔枝等等强大三方相册管理软件,但是在无感备份方面始终和苹果、安卓两大原生工具相差甚远。
不过好早,有一款专门针对苹果用户的icloud同步软件,支持将icloud的照片实时同步到我们的NAS端,还支持自动同步删除、消息通知,兼容nextcloud插件等等,便捷好用。
下面,Cherry就带大家来体验一下这款系统吧,相关镜像包可以从离线镜像库。
项目地址:https://github.com/boredazfcuk/docker-icloudpd
只需配置Nextcloud设置,下载的每个文件都将上传到nextcloud服务器。
支持将HEIC文件转换为创建的JPG。
支持同步删除。
只需向TG聊天发送消息,容器就会接收并立即同步。
可以通过向TG bot发送消息来重新验证您的 cookie!
系统部署
本次部署使用的机器是绿联DXP4800 Plus,Cherry前面分别用DXP4800 Plus折腾了群晖、爱快、openwrt、win11等等AIO玩法。这里说一句,虽然UGOS pro出师不利,出现了很多的BUG、问题,但从目前绿联目前的更新修复频率来看,还是看得出绿联是在极力的挽回系统的首发不利局面的。
相比于UGOS的底层架构,UGOS pro采用debian12内核,不论是自由度和可玩性上的确有了极大的提升。而且,像我们这样选择购买绿联DXP系列的小伙伴,应该对硬件做工也很种草,毕竟10G+2.5G网卡配置,5核6线程又兼顾功耗的强大CPU,双通道最大64G内存,都可以作为一台养老NAS硬件了。
🔴本项目建议使用docker-compose部署,因此建议使用SSH登录绿联私有云后台
一、创建文件夹与compose文件
首先在绿联私有云【文件管理器】——【共享文件夹】,创建一个docker的子文件夹,然后在docker文件夹下创建一个icloud的子文件夹,最终格式如下
image.png接着,打开绿联私有云【应用中心】,安装【文本编辑器】套件。该套件支持我们直接在NAS端打开各类文本文件进行编辑,十分方便,对于不会操作vi、vim、nano等linux新手玩家来说十分友好。
image.png打开【文件管理器】,选择【新增】——【docker】——【icloud】,将下面的代码修改后复制到文本内。
services:
icloudpd:
container_name: icloudpd
image: boredazfcuk/icloudpd
environment:
- TZ=Asia/Shanghai
- icloud_china=true
- auth_china=true
- apple_id="这里填写你的appleid" # 记得修改
- authentication_type=MFA # 如果没有开多重认证的,这里改成web
# 扫描icloud“最近删除”,如果NAS里存在icloud删除,NAS未删除的照片则删除。注意这不是删除icloud的照片,而是删除NAS中的照片
# - auto_delete=true
# 下载成功后,将照片移动到icloud“最新删除”。注意,该参数不会和auto_delete联动,放心打开。
- delete_after_download=true
healthcheck:
test: /usr/local/bin/healthcheck.sh
start_period: 30s
restart: always
volumes:
- icloudpd_config:/config
# 从icloud下载后保存路径,这里的XXX是你的绿联用户名,注意必须先开启个人空间。当然你可以选择下载到/volume1/public目录下成为共享文件夹
- /volume1/@home/XXX/Photos/icloud/:/home/user1/iCloud/
volumes:
icloudpd_config:
name: icloudpd_config
然后点【文件】——【保存】,【文件名】为docker-compose,【文件类型】为yaml。
image.png二、登录SSH并启动容器
🔴因为目前UGOS pro的docker还不支持compose的可视化部署,所以我们需要使用ssh工具登陆绿联私有云后台进行部署,这里推荐ssh工具为finalshell。
打开绿联【控制面板】——【终端机】,在SSH处打勾,下面的端口更改后应用即可。
image.png打开finalshell,点击左上角的文件夹图标,选择白色文件夹,然后输入IP、账号、密码、端口登录。
image.png🔻从Cherry的离线库里下载【boredazfcuk.icloudpd.exe】镜像包,双击解压为【icloudpd.tar】,然后上传到绿联私有云的【/volume1/docker/icloud目录下】。
离线库云盘:https://www.alipan.com/s/kK4M9gHgFz7
提取码: tr40
image.png🔻接着我们登录ssh,依次输入以下指令
# 登录root
sodu -i
>再次输入默认账号的登录密码
# 导入离线库下载的docker镜像
docker load -i /volume1/docker/icloud/icloudpd.tar
# 切换到icloud路径
cd /volume1/docker/icloud
# 创建.mounted文件解锁故障保护功能,必须在iCloud的下载目录下新建一个.mounted文件,注意是文件!!!! 不是文件夹
touch /volume1/@home/XXX/Photos/icloud/.mounted
🔻关于上面.mounted比较简单的做法,除了在ssh操作外,还可以在windows下新建一个txt文档,改名为.mounted,然后上传到photos目录下,就像下图所示。
image.png🔻完成上面的步骤后,我们继续启动docker容器并初始化
# 启动容器
docker compose up -d
# 初始化容器,icloudpd为你的容器名字
docker exec -it icloudpd /usr/local/bin/sync-icloud.sh --Initialise
🔻ssh上的操作步骤分为4步,分别是输入appid密码,输入y(确认登录),输入设备验证,输入二次验证。
image.png🔻成功下载icloud上备份的照片
image.pngQ&A,以及nextcloud、通知配置
一、和nextcloud结合使用
所有的配置都可以容器的环境变量里去配置
# 将此项设置为 true 以将文件上传到 Nextcloud 服务器
nextcloud_upload:true
# Nextcloud服务器地址
nextcloud_url:
# Nextcloud账号
nextcloud_username:
# Nextcloud密码
nextcloud_password:
# 要放置文件夹目录,请注意,目前无法将文件上传到Nextcloud服务器的根目录。
nextcloud_target_dir:
# 此设置要求 auto_delete 也设置为 true。当在“最近删除”中找到文件时,auto_delete功能将删除本地文件。如果 nextcloud_delete 也设置为 true,则它将从 Nextcloud 服务器中删除该文件。
nextcloud_delete:true
二、和TG bot结合使用
# 必填,指定用于发送通知的方法: Prowl、Pushover、Telegram、Webhook、openhab、Dingtalk、Discord、IYUU、WeCom、Gotify、Bark、msmtp
notification_type:IYUU
# 如果notification_type设置为“IYUU”,这是发送消息所需的访问令牌。
iyuu_token:
# 如果notification_type设置为“WeCom”,这是企微ID。
wecom_id:
# 必填,企微秘钥
wecom_secret:
# 必填,企业ID
agentid:
# 必填,通知人,填写管理员id
touser:
# 必填,阅读原文跳转链接 / 点击“阅读原文”后的页面链接
content_source_url:
# 必填,当前应用ID的所有人
name:
# 非必填,用来绕过企业微信的IP白名单,参照nastools教学即可
wecom_proxy:
三、Q&A
(1)报错提示登录官方认证。
有的时候,如果日志里提示需要登录苹果icloud官网的认证的,要记得后缀是.cn,登录到国内的icloud官网授权即可。
(2)能否自动删除icloud照片
目前功能是不支持自动删除照片的,不过可以通过参数实现下载后自动将照片移动到最近删除里,我们可以调整时间,或者手动清空最近删除里的照片。
(3)能否多个icloud同时下载
答案是可以的,在compose里将user替换为user1、user2,然后每一个service重新复制一段一模一样的内容即可。
(4)icloud照片删除后,是否会自动从NAS删除?
启动参数auto_delete=true即可,但是不建议开启。
(5)更多的配置请看md指南。https://github.com/boredazfcuk/docker-icloudpd/blob/master/CONFIGURATION.md
写在最后
比较可惜的是,目前绿联UGOS pro系统还不支持compose的可视化部署,需要我们登陆SSH进行操作,这对NAS用户的linux底层技术有了一点点的小要求,这也是很多人放弃对NAS玩法的进一步探索原因。
作为国产NAS新生代代表,Cherry十分希望绿联私有云可以在docker玩法上做进一步的深化,首先可以将UGOS系统中修改host、镜像库等比较好的功能继承下来,然后不断迭代出compose可视化部署、第三方应用中心、docker源加速等服务,将绿联DXP系列玩出更多的花样。

欢迎朋友们评论区讨论留言。我会定期更新关注NAS使用方法、开源软件与Docker软件、游戏与生活相关内容,喜欢的朋友请关注、点赞、留言支持。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

丽水情深
校验提示文案
赖大懒shopping
校验提示文案
莫给力
配置好容器後就不用操作嗎
校验提示文案
莫给力
touch /volume1/@home/XXX/Photos/icloud/.mounted
🔻关于上面.mounted比较简单的做法,除了在ssh操作外,还可以在windows下新建一个txt文档,改名为.mounted,然后上传到photos目录下
這裡的途徑好像不同一層目錄
校验提示文案
莫给力
touch /volume1/@home/XXX/Photos/icloud/.mounted
🔻关于上面.mounted比较简单的做法,除了在ssh操作外,还可以在windows下新建一个txt文档,改名为.mounted,然后上传到photos目录下
這裡的途徑好像不同一層目錄
校验提示文案
莫给力
配置好容器後就不用操作嗎
校验提示文案
赖大懒shopping
校验提示文案
丽水情深
校验提示文案