家庭服务器整体方案

家庭服务器整体方案

[!summary]+
本文主要介绍笔者的家庭服务器设计方案 V1。该方案中中涵盖影视、图像、图书&文献、博客、智能家居管理、密码管理服务,以及公网上内容分发的初步设计和选择的考量。

整体架构

整个服务中心在设计的时候主要考虑以下的几个方面:

  • 💻操作设备&系统(OS)和内容存储方案:如何经济实惠的选择合适的设备和系统
  • 🌦️服务需求:需要搭建哪些服务,应该选择哪个服务进行自托管
  • 🌍部署方案:如何保证在局域网+公网都能顺利且安全的访问
  • 📱访问策略:各个平台上的访问方式的选择

此外,并非所有服务都需要在公网上进行部署,这里的部分服务可以仅用于局域网,由于仅开放了 Nginx 端口,因此从公网中访问不到未分发的内容,因此,部分存储与敏感信息相关的服务可以仅保留在局域网中进行访问。

[!note]+
在这种情况下如果希望能够使用一致的域名访问方式,是否可以考虑使用 Nginx 鉴权限制访问 ip 为内网 ip,其他公网访问直接丢弃?

初版家庭服务中心的架构图如下,(这里并非列出所有的服务组件),该架构图中所有的应用都是为了方便日常生活中的各项活动,下面会对架构图自底向上的做一些简单的说明。

image.png

设备和存储选择

存储和设备的选择主要来自以下的两个需求,首先是能够用作机顶盒,其次是尽量能省则省,综合考虑上述的两个需求,树莓派+网络云盘的策略有如下的几个优势,也是选择它的原因:

  • 设备和存储价格相对便宜,长时间在线电费消耗也几乎可以忽略不计
  • 体积较小,作为机顶盒放置的方式较为简单
  • 云盘的转存和资源收集的速度快,且可结合小雅和 Alist 进行网盘的集成,以及线上资源的整合。

劣势就在于非本地存储和对网络的要求相对较高一些,且在系统上需要折腾的时间会比成熟的 NAS 厂家的开箱即用要折腾一些,最后就是一些对性能要求较高的服务树莓派可能无法承担这个职责,因此这里使用自己的个人电脑用来部署一些对性能要求较高的服务。

服务部署策略

docker 在服务部署的优势有:独立互不影响的环境和一键部署方便性,因此我们使用 docker 进行几乎所有的服务的部署,并使用 portainer 对其进行管理。

  • 图书&漫画:使用 Kavita+Calibre(进行资源的转换和元信息的不全)+ (Zlibray&漫自由)获取资源。
  • 照片:使用 Immich 满足整个家庭备份手机照片并进行统一管理的需求,可完全代替 icloud 且只需要本地磁盘。
  • 影视:使用 Alist 整合自己的网盘 + 线上的 xiaoya 的 alist 资源 + emby 做一个影视墙(可选)+ Kodi 进行电视端的播放(KORE,kodi 手机端的官方遥控器)
  • 智能家居:使用 HomeAssistant 管理各种不同品牌的智能家居设备

服务分发和服务访问

这里使用 Nginx+腾讯云进行服务的分发,并通过 DDNSgo 动态更新域名解析的 IPV6 地址,之后就可以通过域名对相应服务进行访问。

可用 Caddy 这个现在的后期之秀来代替 Nginx,Nginx 也可以安装对应的可视化设置界面。

上述提到的是基于 ipv6 部署到公网后的分发情况,如果没有或者不想部署公网的话就使用如 Zerotier 和 Tailscale 的内网穿透服务来实现虚拟内网 ip+端口去访问服务。

在各个终端上的服务访问可以通过浏览器的保存为应用/固定到桌面,以及各自对应的官方 APP 为主要的访问手段。

后续计划

[!note]+
这里记录后续希望进行补充的服务和设计,最终希望能够作为一个比较全面且完整的方案,覆盖到生活的方方面面,为自己和朋友的生活提供便利。

  • [ ] 设计 StableDiffusionWEBui 的鉴权页面,方便部署到公网上使用,方便作图需求
  • [ ] 现已涵盖视频图片和图书等服务,后续考虑是否有必要针对音乐添加相关页面
  • [ ] (eval) 菜谱管理中心,收藏各个不同的平台的菜谱
  • [ ] (eval) RSS Center 可能需要 RSS-HUB 创建自己关心的所有 RSS 源,然后通过
  • [ ] (eval) 使用 Ghost 尝试更新自己的 Blog
  • [ ] (eval) 更新 Homepage
  • [ ] 更新 CodeServer,是否要在网页上部署Vscode

FI

Author

AikenH

Posted on

2023-12-20

Updated on

2024-01-28

Licensed under


Comments