家庭数据中心一期
完全使用闲置的或没被充分利用的已有资源架设初级版家庭数据中心,提升当下生活体验。
需求分析
闲置设备
目前所拥有的(基本)没在用的计算设备:
名称 | 配置参数 |
---|---|
Mac mini | M1 / 16G / 2T |
mini-PC 1 | N5105 / 16G / 512G |
mini-PC 2 | i7-10750H / 32G / 512G |
华硕笔记本电脑 | |
智趣盒子 | |
小米盒子 4 | |
树莓派 3B | |
ruff 开发板 | |
锤子手机 | |
小米手机 4 | |
魅族手机 | |
荣耀平板手机 | |
网件 R6300 v2 | |
华为 Mi-Fi |
所需服务
主要想解决的问题有:
- 全屋科学上网;
- 数据中心化管理(SSOT);
- 应用服务统一管理;
- 信息订阅统一管理。
初步细分为以下服务:
类别 | 服务 | 说明 |
---|---|---|
- | 开发服务 | |
数据同步与存储 | 文件存储服务 | |
iCloud 缓存服务 | ||
网关 | 软路由 | 家庭网络网关 |
应用服务 | 应用服务网关 | |
信息/资源获取与整合 | 信息抓取服务 | |
信息聚合服务 | ||
下载服务 | ||
娱乐 | 媒体服务 | |
自动化与智能 | ||
消息推送服务 | ||
智能家居服务 |
设计
整体架构大致为:
设备设置
Mac mini
家庭数据中心的核心服务器,将其称之为「iHomeBase」,主要负责:
- 数据同步;
- 远程开发;
- 统一应用服务入口。
访问相关设置
用户相关:
- 新建专门的用户组与普通用户;
- 新用户登录家庭专用的 Apple ID。
网络相关:
- 使用网线进行有线连接网络以保障网络稳定性与速度;
- 设置静态 IP 替代动态 IP。
系统待机与启动:
- 关闭屏保;
- 永不关闭显示器;
- 断电重启自动登录新用户。
mini-PC 1
在 Docker 中做以下几类服务:
- 软路由;
- 信息的获取与聚合;
- 资源下载。
智趣盒子
服务搭建
以下在 Mac mini 上的操作若无特殊说明,都是登录的新建用户;如果操作是通过远程的方式,至少要在「共享」中开启「屏幕共享」。
开发服务
- 在 Mac mini 的「共享」中设置「远程登录」;
- 配置 MacBook Pro 到 Mac mini 通过 SSH 访问的免登录;
- 在 MacBook Pro 上配置 Mac mini SSH 登录别名;
- 安装 VS Code 的远程开发插件。
文件存储服务
- iCloud 云盘中的特定文件夹设置家庭成员间共享(分操作系统用户与 Apple ID 两个层面);
- 将可被其他设备访问的文件都放到用户「公共」文件夹中指定的某个文件夹下,方便未来一同迁移到外置硬盘中,并在「共享」中设置「文件共享」。
需要注意的是,每个用户的「公共」文件夹的读写权限应为:
- 自己、新建的用户组可以读写;
- 其他本机用户只能写(会进入「投件箱」);
- 「任何人」用户组无访问权限。
iCloud 缓存服务
在「共享」中设置「内容缓存」,参考 Apple 官方《macOS 使用手册》中内容:
软路由
全屋科学上网
从外部访问内网
基于安全性考虑,不采用内网穿透的方式将家庭局域网暴露在公网中,而是通过 VPN 实现从外部访问家庭局域网,可考虑借助贝锐蒲公英。
应用服务
考虑使用 k8s 或 k3s
信息抓取服务
- CaptainVincent/gotbook: A tool crawl gtibook and generate a sorted markdown table as README.md,
- 如何构建一个通用的 AI Web 爬虫 · 云原生实验室
信息聚合服务
主要基于 RSSHub 进行处理。