跳转至

搭建属于自己的 HomeLab

Homelab 是指可在家中搭建的实验(折腾)环境,用于进行实验和学习。通常指一系列硬件设备(家用服务器、小主机、旧电脑手机、树莓派等),上面运行着操作系统环境和软件(Linux、虚拟机、Docker 等)。Homelab 有很多种用途,比如作为软路由、远程主机,也可以部署一系列的自托管服务,如个人书库、影视库、密码管理器、个人网站、RSS 阅读器、播客服务器、备忘录等等。不仅实用,也可以作一门兴趣,为生活增添乐趣。

我的 Homelab 配置

我自己的 Homelab 配置是 轻量云服务器 + 小主机 + NAS,它们的配置与用途各有千秋:

轻量云服务器(阿里云 1C2G) 小主机(N100 CPU) NAS(群晖 DS220+)
公网 IP
储存空间
性能

不难看出,它们都是偏科生,但只要合作起来便是三边形战士。轻量云服务器 偏向网络访问型,小主机 偏向性能处理型,NAS 偏向空间存储型。

轻量云服务器

轻量云服务器 其实就是云服务器厂商多余的边角料,配置不高,但胜在价格实惠,比如我购买的阿里云轻量仅 ¥ 96 / 年(如果你有更便宜的套餐不妨让我了解一下)。

因为有公网 IP (80/443 端口也是开放的),我在这台轻量云主机上部署的服务,主要是 frp 服务器、反向代理服务器、访问其他机器的跳板机、监控其它主机的面板、小型网站服务、网站 uptime 监测等需要通过公网直接访问的服务。

小主机

小主机 我选用了零刻 N100 CPU 的准系统,自配 16G DDR5 内存条与 250G SSD 硬盘,总体下来大概 ¥ 1000 出头。日常功耗不高,在需要性能的时候也能呼之即来。

在小主机上部署的应用类型,主要是 web VS Code 代码编辑器、私有笔记库、RSS 阅读器、播客服务器、影视库、内网浏览器等这一类需要消耗性能的服务。

NAS

NAS 我选用的是群晖 DS220+,X86 架构方便运行 Docker 环境。前一段时间,我还给它加上了一条 16G 的内存条,企图提升它的性能。但随后发现,瓶颈仍然是那颗孱弱的 J4025 CPU。白群晖算是买软件送硬件了,但是为了资料的安全性,还算是值得的。

我在 NAS 上部署的,主要是设备资料备份、网盘同步、照片库、书库等储存需求型的服务。

如何一键批量部署 Docker compose

有了折腾不止的精神,三天两头刷系统是不可避免的。部署了那么多的应用,总不可能一个个单独 bring up 吧。这儿有个简单的 shell 脚本,可以一键部署所有 Docker compose:

compose.sh
echo "starting compose.sh..."

# 遍历当前目录下的一级文件夹
for folder in */; do
  [ "$folder" != "Archive/" ] # 忽略 Archive 文件夹
  cd "$folder"  # 进入文件夹
  docker-compose up -d # 执行 docker compose up -d 命令
  cd .. # 返回上级目录
done

echo "done."

我的目录结构是这样的:

├── compose
│   ├── code-server
|   |   ├──compose.yaml
|   |   ├──.env
│   ├── frp
|   |   ├──compose.yaml
│   ├── xxx
|   |   ├──compose.yaml
│   ├── ……
│   └── compose.sh

只要在 compose 目录下执行 sh compose.sh,就能一键启动所有的 Docker compose 了。

自托管的优势

相比于第三方托管,让别人替你保管数据,自托管(Self-Hosted) 具有十足的优势,表现在你对个人数据拥有完全的掌控权,可以根据自己的喜好去定制所需,能帮你获取到更多优质的信息源(个人书库、影视库、RSS 服务)。前提是要有一定的时间精力与资金投入,并且拥有一颗乐于折腾的心。

在接下来的一系列文章中,我将介绍一些基础的配置,还有许多有趣的服务。上面提到的铁三角组合,只是我个人的差异化配置,如果你只有一台机器,折腾起来也是完全没有问题的。我将介绍的内容大多是基于 Docker 与 Docker-compose 部署的,因为这种方式兼容性极佳,在不同配置的机器上都能做到开箱即用。但需要提及的一点是,机器的选择最好是 X86 架构的,因为有些许容器没有做 ARM 适配,需要自己编译安装。

参考与致谢

原文地址:https://wiki-power.com/
本篇文章受 CC BY-NC-SA 4.0 协议保护,转载请注明出处。