这是个特别的周末,似乎整个网络安全圈都沉浸在CVE-2021-44228这个CVSS 10分、影响颇大的漏洞,到处被log4j2的${jndi:ldap://dnslog/}刷屏。一时间PR稿、技术秀并起,极少人去关注漏洞发现的作者、非预期提前披露的原因与行业合理的严重漏洞处置与披露规范。七八年过去了,安全行业仿佛发生了很多变化,又其实哪里一直没变。或许人性使然吧,突然感慨几句、好似无病呻吟。
陆陆续续折腾过一堆虚拟化与NAS系统,三年前偶然发现unraid时被其设计理念与系统模式吸引,感叹遇到最适配自己HomeLab需求的OS。至今运行多年,基于其丰富的应用社区与 开源项目参考,自己也体验了不少不错的的私有部署服务,简单做个总结供有缘人参考。
媒体资讯类
最近HC550很火,18T单盘位给高清爱好者带来更佳的存储体验,还好这一轮chia币没有显卡矿潮来的那么持久。私有媒体服务用户较多的是Plex、Emby和Jellyfin,只搭建使用过前两者,Plex的日常使用体验、在各种设备上丰富的客户端也完全满足我的需要,蓝光盘的播放也有些,只是服务端硬解等功能需要需要会员账号,好在每年都有Lifetime折扣,购买一次全家永久使用。
Plex主要解决媒体刮削与分类展示、服务端解码的需求,对于一个懒惰的追剧人来说还需要自动化的媒体跟踪下载与IPTV接入。自动化追剧体验上,主要两套方案并行(当然前提都要混PT):
- Jackett(PT站统一API)->Radarr(电影)+Sonarr(剧集)->Overseerr(用户界面),完成的效果是日常访问overseerr,订阅在追的剧集,服务端匹配到imdb/tvdb编号后判断日常更新日期,并通过radarr/sonarr查询jackett封装的种子站API,创建种子任务。这套部署方案在smzdm上有不少文章可以参考。优点的UI不错、操作容易、自动规范化命名,但主要对美剧支持较好,因为关键词搜索的格式英文名+S*E*的格式,很多国产单季剧集难以被自动化检索到,看到有国内的朋友提了issue但官方无意改变。
- FlexGet(定时任务自定义规则匹配)+Qbittorrent(下载),主要解决一些命名难以检索,更需要自定义查询的场景(这类场景其实更常见..),比如下面一个常用的flexget配置,会每半小时拉取PT站RSS内容凭匹配最新的标题含xx1/xx2的资源,并自动调用qb服务下载。
web_server:
bind: 0.0.0.0
port: 5050
web_ui: yes
templates:
dl:
content_size:
min: 128
max: 30720
strict: no
anime:
qbittorrent:
path: /downloads/
host: x.x.x.x
port: 8080
label: flexget
tasks:
pt_site_1:
rss: https://xxx
accept_all: no
if:
- "'xx1' in title": accept
- "'xx2' in title": accept
template:
- dl
- anime
schedules:
- tasks: pt_site_1
schedule:
minute: "*/30"
传统的电视直播基本很少会看,不过也有解决方案,根本上还是依赖稳定的m3u源,使用xteve项目做中转,然后由Plex接入频道播放或录制。
资讯订阅上,基本基于(万物皆可RSS)与(一款极简RSS reader,需要的第三方API基本都有)
开发测试类
平时或多或少会有些云端开发的需求,这部分很多私有部署服务都广为人知
IDE上习惯VSCode,Web版本最早使用的codercom的,JetBrains出品的registry.jetbrains.team/p/prj/containers/projector-idea-c系列让本来很重的IDEA Commnity也可以通过浏览器访问使用,大大降低临时使用时搭建环境折腾的时间,由于鉴权做的比较简单,只适合临时使用,另外除了Java、其他语言JetBrains也有提供不同的镜像。
代码仓库见仁见智,Gitlab功能成熟但较重,轻量一点Gitea、Gitee都不错,持续集成有Drone满足日常需要,私有Docker镜像仓库等使用了nexus3,另外一些服务解决方案,比如代码检索SourceGraph、API调试发包工具等。
笔记文档类
个人笔记找过很多,是目前使用还不错的一款所见即所得知识库,也支持双向链接,比Obsidian更本地化,且支持Web使用;比起Notion等数据更自主可控。
之前也使用过Confluence私有部署版,一个传统可靠的团队知识库,个人使用每年几💲的授权,不过后来官方似乎有意停止私有部署市场,不再继续支持。
最早想找Notion的替代品,其实找到的是 和 ,前者部署会相对麻烦,需要修改较多参数、配置SSO等,具体可以参考这位前辈的。后者目前还在开发阶段,似乎布局很大,但目前看还是以App的形态存在。
除了笔记类,偶尔也会用到draw.io(绘流程图)和privatebin(pastebin alternative)
工具服务类
最后筛下来主要是杂七杂八的工具汇总,私有部署数据无价、切记做好多重备份。
统一密码管理: (希望社区把插件UI再美化点吧),替代1password等
浏览器同步:,about:config修改identity.sync.tokenserver.uri指向私有服务,只私有化浏览器云同步内容,认证使用的还是firefox账号体系
数据库管理: 与 (远程浏览器操作数据库)
跳板堡垒机: (中间闭源了一些版本,目前又恢复开源)
编码加解密:
文件管理:用过一段时间seafile,但是其存储格式与性能表现的不是特别放心,还是交给群晖Drive好了,对象存储使用minio是个不错的选择。
搜索引擎:
隔空投送:
DNS分流:
网站可用性监控:
工作流编程:
写在最后
self-hosting除了折腾,更多是为尽可能少的将个人数据放心的交给服务提供商,以力图做到数据自主可控。相对的,自建服务的安全性也尤为重要。常看到公网莫名暴露的脆弱服务,反而导致个人NAS家庭数据的完全泄漏。
平时使用避免直接公网暴露端口服务,使用WireGuard/ZeroTier/Tailscale构建私有VPN网络,各设备控制接入是一个相对均衡的方案。另外可以购买域名,Let's Encrypt申领有效的SSL证书,并用对这些服务们做统一的代理有访问控制。
折腾吧,趁还年轻🐶