只说思路,具体操作可以自行 GPT
概要
用的工具是下面这个
https://github.com/AnalogJ/scrutiny
根据这个容器编排文档可以看到它分为 web、数据库、collector。原理就是把 web+数据库 部署在一台服务器上以供访问,collector 分别部署到每个机器上,然后通过 web 的 API 传回硬盘信息。
注意点
执行 collector
collector 容器部署完后创建了一个计划任务,但不会立即执行一次,需要手动执行容器里面的一个二进制程序
|
|
群晖的 /dev
使用设备树的群晖机型,SATA 硬盘在 /dev 下面叫 sata1、sata2… 不是 sda、sdb…,collector 是不会主动去扫描这些设备的,所以除了在创建容器时映射设备,还要写一个 collector 的 config 文件
|
|
nvme 设备不用写,因为即便没有配置文件,collector 也会读 nvme 设备,然后你创建容器的时候映射一下文件。collector 在启动时会先读这个配置文件
|
|
如果硬盘名字就叫 sda、sdb…就可以不用准备这个文件
设备分组
我的页面里你可以看到每个机器都是有名字分组的,这个在创建容器时设置一个环境变量即可
|
|
保护站点
站点实际上也是个 API 后端,collector 都是通过 web 的 API 添加硬盘。网页上也是可以删除硬盘。为了阻止他人恶意往你的站点添加硬盘或者删除硬盘,可以在 nginx 配置中把这些都拒绝掉
|
|
为了不影响自己使用,可以再创建个自用的 vhost,然后在 nginx 上加上访问密码,这样你 collector 容器里的环境变量可以设置为这样子的形式
|
|
Photo by Jaredd Craig on Unsplash