基于 Apple 生态的个人/家庭数智化

该话题是「家庭数智化」的子集,整体方案大致如下:

数据同步

虽以 iCloud 为中心进行数据同步,但也不是任何情况都要使用:

数据/文件特征 云存储方案
文档、图片、音频、小视频等非超大文件 iCloud(推荐升级为 iCloud+
影片等超大文件 Dropbox、阿里云盘、百度网盘等
代码库、符合 QiiDB 数据规范的知识库 GitHub、GitLab、Gitee 等

iCloud

除了在浏览器中通过网页访问之外,iCloud 还可在运行了 iOS、iPadOS、macOS 和 Windows 的设备中借由应用软件与文件系统集成的方式使用。

同步控制

若在 iCloud 数据同步作用范围内不想同步某个文件夹时可添加 .nosync 后缀。

像基于 Node.js 的前端工程这种不想同步 node_modules 文件夹但又需要时,可以把「真身」加上 .nosync 后缀并创建个「替身」:

# 参考自 https://github.com/haochuan9421/nosync-icloud
mv node_modules node_modules.nosync && ln -s node_modules.nosync node_modules

记得把 node_modules.nosync*.nosync 添加进 .gitignore 文件中。

在其他电脑上第一次使用同步过来的代码时,因尚未安装 Node.js 依赖而无法正常使用;且 node_modules 只是个「替身」,它所对应的「真身」并未在本地。

假设使用的是 pnpm,直接 pnpm i 的话会失败,得创建一个临时文件夹安装依赖:

mkdir deps-temp.nosync && cp package.json pnpm-lock.yaml deps-temp.nosync/ && cd deps-temp.nosync && pnpm i && mv node_modules ../node_modules.nosync && cd ..

⚠️ 不过,非常不建议同步代码库,会严重拖累 iCloud 云盘与电脑性能

Windows 版

在 Windows 中需要下载专门的「iCloud」应用才行,需要注意的是——

iCloud 7.x 无法删除下载项,即 iCloud 云盘中的文件会完完整整地下载到本地;若已经升级为 iCloud+ 的话,很容易撑爆电脑磁盘……😂😂😂

建议通过 Microsoft Store 下载并安装最新版的 iCloud 应用,若遇到无法连接服务器或不能下载的情况,可临时关闭防火墙(及「梯子」)再试一次。

7.x 以上版本能够查看文件同步状态,并可移除暂时用不到的文件以节省磁盘空间。

家庭云备份

如果只是简单使用 iCloud 的话,只在它的服务器上有全部数据,自己(及家庭成员)使用的各个设备上一般来说只有一部分那个设备所需的数据,并不会全量同步。

然而,这在数据安全方面一定程度上也算是一个风险,需要全量同步到家庭云中——这就增加了整体复杂度。

要想全量同步 iCloud 中的数据,就得有个能全天候运行 iCloud 的设备作为家庭云的构成部分,目前有三种方案:

  1. MacBook 或 Mac;
  2. 装了「黑苹果(Hackintosh)」的其他主机;
  3. 装了 Windows 10 及以上的主机。

若是要特意买二手 Apple 设备做家庭内部服务器的话,首选 M 系列芯片的 Mac mini,其次可考虑无屏(headless)的 MacBook Pro:

远程开发

假设平常使用 VS Code 进行开发——

SSH 设置

连接服务器免登录:

  1. 找到服务器主机地址;
  2. 在终端中通过 ssh user@hostname 登录,第一次时需要输入密码;
  3. 复制本地 SSH key 的公钥内容;
  4. 在服务器的 ~/.ssh/authorized_keys 中粘贴公钥内容,如果文件不存在则创建一个;
  5. 退出服务器。

若在登录服务器时提示 ssh: connect to host XX.XX.XX.XX port 22: Connection refused,需到服务器进行「远程登录」相关设置后重复上述步骤。

使用别名连接服务器的话,既便捷,又能隐藏 IP 地址,需要在本地的 ~/.ssh/config 中设置:

Host 服务器别名
HostName 服务器地址
User 用户名

安装扩展

VS Code 官方提供了远程开发支持,只需安装「Remote - SSH」扩展即可。

智能控制