手痒。自从开始玩服务器这玩意儿,就总觉得得搞点什么能长期跑着,而且是给自己和周围几个铁杆大兄弟提供点便利的服务才行。这回折腾的,就是我们内部戏称的《大兄弟绅士游戏》,说白了,就是一个高规格、全自动的私人媒体堡垒。
起因:受够了手动分享的狗血剧
以前我们这帮人要看点新片子、新剧集,那叫一个麻烦。不是你私信我问有没有,就是我拷给你个U盘。光是整理文件、确认版本,就耗了我大把时间。最让人上火的是,有时候大兄弟们非得半夜让我把某个老电影扔到群里,我能怎么办?爬起来开机传文件呗!
我下定决心,必须搭建一个只要他们点一下,内容就能自动入库、随时随地都能看的系统。这个想法一出来,我就开始动手规划了。我的目标很明确:全自动获取、全自动整理、高画质传输,而且对外要隐秘,不能让ISP(网络服务商)逮着任何把柄。
启动:硬件和系统的艰难选择
第一步,硬件。我找了个吃灰很久的NUC,给它塞了两块8TB的监控盘。为什么是监控盘?便宜、能24小时跑着,而且对速度要求没那么极限。操作系统我直接选了Debian,稳定,而且占资源少。很多人爱用Windows,但我受够了隔三差五的自动重启和补丁,那简直是噩梦。
我撸起袖子,开始配置基础环境。最大的坑是存储挂载和权限。Debian默认的安全机制严格得要死,我第一次配置完Docker,跑起来服务一看,所有的应用都说它没权限读写硬盘。我为了解决这个用户ID和组ID(UID/GID)的映射问题,在网上翻了无数个帖子,足足耗了两天,才发现,我TM直接把共享目录的用户设成了Docker服务的用户,问题瞬间解决。真是祖宗十八代都得骂一遍的低级错误。
核心实践:自动化链条的搭建
真正的“绅士游戏”精髓在于自动化。如果还需要我手动操作,那这个项目就是失败的。我选择了媒体服务器界的‘全家桶’解决方案,全部跑在Docker里,方便管理和迁移。
- 数据管道建立:我先拉取了qBittorrent的Docker镜像。它作为下载核心,必须先跑通。
- 智能搜刮部署:随后我安装了Prowlarr,这家伙负责帮我管理各种资源索引站。没有它,自动下载就是空谈。
- 媒体管理中枢:这是最耗费精力的环节。我配置了Radarr和Sonarr,分别用来管理电影和电视剧。它们得时刻监控大兄弟们的“想看列表”,一旦有资源更新,立刻通过Prowlarr找到资源,再交给qBittorrent去下载。
我花了大量时间调整它们的命名规则和路径映射。比如,如果一部电影下载完了,它必须自动移动到Plex能识别的那个目录,并且按照“电影名 (年份)/电影名.mkv”的格式命名。如果命名错了,Plex就认不出来。我刚开始设置的脚本总是出错,导致文件到处乱飞,整个存储目录像被轰炸过一样,一团糟。
我几乎把所有的卷(Volume)都删了重建了不下十次。每次都是因为权限或者路径分隔符写错了。有一次,我只是忘记在路径末尾加一个斜杠,整个自动移动脚本就彻底瘫痪了。这真不是技术活,这是考验细心和耐心的活。
收尾:打造极致体验
后端搞定后,就得给大兄弟们提供一个舒适的前端体验。我部署了Jellyfin,因为它开源免费,功能强大,而且对流媒体转码优化得非常
我给每个大兄弟都分配了独立的账号,设置好带宽限制和访问权限。他们只需要打开APP,输入我的地址,就能看到那个整理得干干净净、封面和介绍都齐全的私人影库了。当他们早上醒来,发现昨晚许愿的电影已经躺在库里,那种感觉,让他们直呼“绅士级的服务”。
如今这个系统已经稳定运行了快一年,我基本上不用管它。它自己下载,自己整理,自己更新。我现在只需要偶尔进去看看有没有哪块硬盘满了,或者有没有新的容器版本需要升级。这种从零开始,亲手搭建一个能解决实际问题,并且让一群朋友受益的系统,成就感是巨大的。
实践出真知,这回的《大兄弟绅士游戏》的搭建,让我真正体会到,折腾,才是我们这帮人的乐趣所在。