unRAID下使用Docker部署iCloud直连相片备份服务
创作立场声明:本人为不知名某小厂产品狗,在网络上学到一些专业知识。然而每个人站在不同立场,内容就会有所偏重,客观与否还请大家指正,期待深入探讨交流。
鉴于有很多朋友不喜欢看一堆叨逼叨的文字,伸手党和时间管理大师们可以直接从"部署步骤"开始看.
碎碎念
自从2018年左右上车买了一台星际蜗牛之后,我便开始了NAS的折腾之路一发不可收拾(有空会考虑再水几篇自己DIYNAS的想法).中间我也尝试过了包括群晖(黑的),unRAID,trueNAS等几个系统的部署搭建,其中使用最多的是unRAID这个系统(具体的unRAID搭建网上是一搜一大堆,我在这就不重复造轮子了),原因是既有NAS功能,也有比较完善的虚拟机管理功能,还有折腾的最多的Docker,这次就分享一下unRAID下使用Docker部署iCloud备份服务.这些步骤其实也完全可以在支持docker的其他环境,比如树莓派,macOS(话说什么样的家庭会用Mac来当NAS
),还有x86群晖,威联通等成品NAS系统下部署,当然前提是支持docker了.(那些在trueNAS,esxi,PVE上用虚拟机虚拟带docker的系统,然后在下面套娃的同学请坐下)
为什么选icloudpd?
作为NAS,最常用的就是各种数据的存储备份,之前也使用过在docker上部署nextcloud服务,群晖中的moment套件,CloudSync套件备份百度云和坚果云.但这里就可能会有长得帅的朋友问:"那为什么选icloudpd呢?"
其实我觉得存储备份文件是一个比较笼统的需求,按照文件的不同用途类型使用场景,其实分开备份会更加合理,用得更加舒服,也显得我更加细.比如:
影视类文件,下载后到NAS后我会提供给Jellyfin或者emby之类的服务来实现多人共享观看
音频类文件,备份后我会通过群晖的套件在线播放
工作文档类文件,我会通过使用群晖的Drive套件或SVN等方式来实现文件的版本管理和多人协同办公
其他类型文件,还没想到怎么使用的,例如工具安装文件之类的不常用杂七杂八的文件,就随便放在一个地方就行了
手机图片视频类文件,因为不止我一个人觉得,重要的人重要的时刻,记录下来的东西比较珍贵,因此这部分的文件最好是原汁原味的,也会独立的存放
基于最后一个类型的文件,由于我是长期使用苹果的iCloud服务,后来发现iCloud也支持通过接口访问来下载对应的图片视频数据,而icloudpd就是专门做这件事情的,闲话先说这么多,下面开始部署吧.
部署步骤
下面是几个步骤,快的话几分钟就完事.
1.配置unRAID下的Docker"应用商店"
其实就是简单的一行,而且基本上搭建unRAID的教程也会顺便带上,那我也顺便带上吧.只需要在Plugins页面的Install Plugin分页上安装插件,刷新页面,unRAID的导航上就会多出了APP这个标签了,插件地址如下:
https://raw.githubusercontent.com/Squidly271/community.applications/master/plugins/community.applications.plg
这个基本上用unRAID的朋友都会装的吧?不会吧?不会还有用unRAID的没装这个吧?
2.搜索icloudpd镜像并完成配置
搜索框输入icloudpd,结果就一个
在APP上搜的好处,是已经有现成的配置模板,而且模板里面已经有很详细的说明(虽然是英文但我有浏览器翻译),方便我(懒人)们不用配置太多东西,只需要配置必要的几个变量,如果有些变量没有的就自己添加.这里我使用的镜像是这个
boredazfcuk/icloudpd
设置完是这样的:
配置的变量和说明如下:
[varable]变量设置
Apple ID : 你appleID账号,必填
Synchronisation Interval (seconds) : 同步间隔时间,单位秒,默认好像是43200,必填
Time Zone : 设置时区,国内可以设置为Asia/Shanghai
authentication_type : 你appleID的验证方式,2FA为两步验证,其余是Web验证
folder_structure : 子文件夹的结构,默认是按年月日分{:%Y/%m/%d},个人建议到月{:%Y/%m}就好了
convert_heic_to_jpeg : 是否把heic的照片转化为jpeg,这里建议选false,就原汁原味了
[Path]路径设置
AppData Config Path : 服务的config保存路径,一般在appdata下新建一个文件夹保存,必填
Data : 备份图片和视频的NAS文件夹,记得配置读写权限,必填
(其他的好像是和telegram联动的,没试过,不影响使用,就不多说了)
简单说明一下,在unRAID的Docker下,配置的类型分别有:[Path]路径,[port]端口,[varable]变量,[Label]标签,[Device]设备,如果使用Portainer下配置Docker,path对应的就是volumes,varable对应的就是env,dockerhub的说明上对应的就是-v,-p,-e.
3.两步验证下载,首次启动运行脚本(非必须步骤)
由于苹果的安全机制,登录appleID后,会进行两部验证,至于怎么个验证法,苹果用户应该不陌生.我们只需要在命令行上输入下面的命令:
docker exec -it icloudpd /usr/local/bin/sync-icloud.sh
接下来会询问你验证方式是短信还是通过其他苹果设备的显示的验证码验证,比如我这里,是设备验证码
验证完成,服务就成功部署好了,如果我们在unRAID下也部署了Portainer,可以通过查看日志看到对应的记录.成功后,照片就是根据你文件结构配置,下载到你指定的NAS位置去了,而且没有进行任何转换压缩,手机上也不需要安装什么APP来做上传同步了
总结
潜水多时,在张大妈这里学了这么多姿势,我也终于想要回馈一下,把自己研究的东西分享一下.因为个人比较闷骚嘴碎浪,我的文章中会适度玩梗,但同时不是什么专业人士,只是闲余折腾,说的不对的不严谨的地方大家包涵.
如果喜欢的朋友多了,我也可能有继续分享其他关于NAS玩法的动力了.这次就先这样咯.



左楠风
校验提示文案
eBusinesser
校验提示文案
专薅社会主义羊毛
校验提示文案
neohob
校验提示文案
小庆庆爱小值
校验提示文案
多多毛毛乐乐
校验提示文案
untruelife
校验提示文案
绝对值啊
校验提示文案
值友8664200594
校验提示文案
上古咸鱼
校验提示文案
ozzzo
校验提示文案
万千11000
校验提示文案
[已注销]
校验提示文案
糖蒜头
校验提示文案
L小呆儿
校验提示文案
yunbiao
校验提示文案
Sword_Dance
校验提示文案
RealMatrix
校验提示文案
zero86
校验提示文案
值友8553463038
校验提示文案
值友5379231052
校验提示文案
值友3124482475
校验提示文案
紫色的眼瞳
校验提示文案
ozzzo
校验提示文案
eBusinesser
校验提示文案
上古咸鱼
校验提示文案
绝对值啊
校验提示文案
untruelife
校验提示文案
多多毛毛乐乐
校验提示文案
糖蒜头
校验提示文案
萌梦哒哒
校验提示文案
小庆庆爱小值
校验提示文案
社会上的事情少打听
校验提示文案
什么张大妈2020
校验提示文案
有一点好玩
校验提示文案
neohob
校验提示文案
值友8664200594
校验提示文案
neohob
校验提示文案
值友8553463038
校验提示文案
zero86
校验提示文案