准备

我自己使用的是树莓派组,可以选择的有很多,x86的开发板、淘汰的笔记本。废物再生计划!

系统选择

推荐三个:

树莓派的话直接用 raspbian 就好了,无论是驱动(如果用到了GPIO)还是稳定性

clearlinux 可以推荐,这里并不是只有英特尔平台才能运行,而是这个系统针对英特尔平台有特殊优化,默认会启动所有优化。除此之外这也是一个滚动型系统,并且定制性强,也很轻便,最小安装下体积非常小。亲测同样的功能项,配置下来后对比 archlinux 的体积会小一点。

最后就是传统一点同时寻求帮助比较方便的 debian,当然 centos 也行。只是自己已有一段时间就不接触RPM系linux而感到陌生了…(respbian 也是 debian 型)

系统安装

这里选择的是最小安装,如果对桌面有需求的话可以默认安装

建议不需要桌面,服务器类型的东西,一旦配置都做完之后,桌面就只是一个占用性能的鸡肋了

系统配置

大概有这么几点是最好完成的:

  • 连接网络(有线或者无线)
  • 设置开机自动连接网络
  • 固定ip
  • 打开SSH

无桌面的系统可能需要自己去安装一些必要的网络管理工具,这里可以寻找各系统的 wiki。但基本上没有桌面的网络设置辅助的话,手动设置网络都需要再自行设置开启自动连接这一操作,需要记得设置

一般家庭网络都是路由器通过DHCP分发 ip,如果作为服务器的主机 ip 不确定的话日后操作会比较麻烦,所以索性直接静态固定下来,只是为了方便

打开SSH只是为了以后配置和操作都可以直接用其他设备连接,不需要再去动服务器

服务

docker

安装方法可以直接阅读官方文档:Get Docker Engine - Community for Debian,如果选择 clear linux 等其他系统,可以直接依据官方提供方案(如 clear linux 集市)

需要注意的是,你需要了解你的CPU指令类型 —— x64/86 或者 arm32/64 。例如树莓派 3b 使用的指令集是arm7l,属于 32 位处理器,那么接下来的工作都应该寻找 32 位 arm 处理器的解决方案

可以使用 uname -m 来查看目前平台使用的处理器类型

portainer

这是一个可以管理 docker 容器的控制面板,可以对容器进行图形化的管理,控制运行状态比如运行停止重启、容器配置、删除容器镜像、拉取镜像构建、重新构建容器等等

应用本身开源:portainer/portainer: Making Docker management easy.

推荐安装方式:直接 docker 拉取安装,镜像为官方提供,也提供了 arm 版本:https://hub.docker.com/r/portainer/portainer/。使用单机版本就好了

影音服务

一般来说需要两种东西:下载机 + 媒体服务器

下载(aria2)

如果是 linux 纯命令下载机应该非 aria2 莫属了

这里推荐一个项目:wahyd4/aria2-ariang-docker

这样下载机与在线文件管理就有了(网盘应用不喜欢可以换一个,比如 Nextcloud

媒体服务

媒体服务有很多种协议,最后选择了 upnp dlna。原因很简单:

  • 通用性
  • 综合来看 dlna 速度最快,相对稳定(亲测长时间观看情况下能把树莓派看挂…

大多数电视厂商在自带媒体播放器也会内置 dlna 协议,所以综合来看 dlna 面对客户端也是麻烦最少的一种方式

那么服务应用就选择 minidlna 了,x86_64 可以直接使用这个镜像:https://hub.docker.com/r/vladgh/minidlna/

可惜的是arm 的 minidlna 最好是自己构建镜像,如果嫌麻烦的话,这个镜像未尝不能接受:https://hub.docker.com/r/fmartingr/minidlna-arm

这里的网络需要设置,默认下 docker 会使用 docker 网段,所以需要允许容器使用 host,这样方便家庭网络环境中的设备自动寻找,简单来说就是方便电视机主动发现。应用配置没有太多讲究,只需要保证所映射目录下有 Movie , Music , Picture 目录即可,dlna 服务会自动识别

至于播放器的话,其他平台支持 dlna 的播放器有很多,安卓可以使用 vlc,iOS可以使用 infuse 等等

Plex

媒体服务还有一个选择:Plex

可以说 Plex 才是专业的影音库,它可以对你的电影和音乐进行分类,电影可以自动获取电影信息、下载封面等。如果用过早期Windows Vista 或者 7 专业版,都会见到一个叫做 Windows Media Center 的应用,跟这个相似

具体可以查看官方站点:https://www.plex.tv/zh/

最后

总的来说,用 NAS 主要还是存储功能, webdav、time mechine 啥的都可以依赖 NAS 应用(可能)的服务

但是自己搭建独立服务器目的是「全可控」,例如我现在有些玩具(闹钟,永远滴神),就在依赖这个服务(websocket 拉满!

比较不推荐的是在家搭建 Git 服务器,我不知道普通人有什么样的代码是需要藏着的;还有 NPM 服务器,你不会用到几次的,各种镜像源很快,而且 npm 包会塞爆你服务器硬盘