Administrator
Administrator
发布于 2026-07-19 / 14 阅读

我给自己的数字生活造了一栋楼:All-in-One 面板正式上线

事情的起源是这样的……

当一个人手里只有一两个网站时,他会把网址记在脑子里;当网站变成五六个时,他会开始使用书签;等到服务器、VPS、博客、音乐、Emby、AI Agent、Token 统计和记忆系统全都冒出来以后,书签栏就不再是工具,而是一条未经规划的城乡结合部。

我每天打开浏览器,都像在参加一场小型寻宝活动:这台服务器住哪个域名?音乐库又在哪个端口?Emby 今天有没有入库?AI 助手到底是在工作,还是只在消息框里保持一种礼貌的在线?

于是我决定,把这些散落在互联网各处的数字家当叫回来,统一安排住宿。反正有AI的帮忙,现在反正也流行vide coding不是。于是乎,它们终于搬进了同一栋楼:AIO,也就是 All-in-One Panel

地址也很简单:https://aio.jc.cd

它不是什么准备接管全球业务的企业级指挥中心,也没有大屏幕上红点闪烁、保安持枪巡逻。它更像我给自己盖的一栋数字公寓:服务器住机房,博客住书房,音乐住客厅,Emby 承包家庭影院,AI 助手住在值班室,Memory OS 则在地下室里安静地整理所有人的户籍关系。

更准确一点说:这是一个没有任何刚需的人,在 Agent 的陪同下,把一堆伪需求做成正式项目的故事。当然也通过这次折腾,能让我直接了当的感受到Codex和Kimi Code CLI互相协作的能力(其中不乏Kimi-K3的一点小九九,Codex写的代码,让Kimi校验的时候,第一回总是“不通过”)。在周五做了一个很简单的POC,女生们会觉得“吃饱了撑的”,那当然不如化妆品涂脸上或者爱马仕带手上来的直接,可咱这种就是用技术和软硬件堆砌出来的数字堡垒,不是么?

进门先看九秒钟开场:仪式感不能省

打开 AIO 时,页面不会立刻把一堆 CPU、内存和网络曲线砸到你脸上。它先播放一段大约九秒的 Welcome 开场:

WELCOME TO JOSH'S ALL-IN-ONE PANEL
A NERD WITH NO TECHNICAL BACKGROUND
BUT BEING ASSISTED BY MY HERMES AGENT
CODED UNDER OPENAI CODEX

翻译成人话大概是:欢迎来到一个非技术宅在 Agent 帮助下做出来的 All-in-One 面板,代码主要是在 OpenAI Codex 里完成的。

这里最诚实的一句是 NO TECHNICAL BACKGROUND。别人写项目介绍喜欢强调十年开发经验,我选择在首页直接承认:我没有技术背景,但我有想法、有服务器,以及一个不会在凌晨三点劝我“要不明天再弄”的 Agent。

四行文字慢慢打出,背景里的点云地球持续旋转。它没有实际业务价值,却让我每次打开时都产生一种“系统即将启动”的错觉。好在也留了 Skip 和 Escape,赶时间时不必每次都参加自己的开幕式。为什么要有这么个opening过渡,装逼呗!

一套界面,三种光线,两种设备脾气

AIO 提供 Light、Dark 和 Auto 三种主题。白天可以用浅色,晚上可以用暗色,懒得决定就交给 Auto。浅色不是医院走廊式的惨白,暗色也不是一块纯黑幕布;整体用暖米色、炭灰和克制的暗金做层次,尽量做到“看起来有点设计,但不会跳出来要求掌声”。四十几岁男生(中年油腻)的审美,冷淡风但绝不简单,细节里面把所有的品质拿捏的妥妥当当。

桌面端左侧导航固定展开。这里我拒绝了那种“为了极简,把所有按钮都藏起来”的现代设计哲学——导航就是拿来点的,不是拿来猜的。到了手机端,左侧导航自动变成 Page 下拉框,顶部只保留页面选择和主题按钮,避免在 390 像素宽的屏幕上举办控件叠罗汉比赛。

首页问候会按上海时间自然变化,而且不喊名字。早上就是早上好,下午就是希望你今天过得顺利,半夜则不会热情洋溢地祝你“充满活力”。一个面板至少应该尊重凌晨两点还在排错的人。

AIO Server Panel 首页,展示服务器实时状态、天气和系统负载

图:AIO 首页 Server Panel。机器在工作,天气在阴,而我在观察它们工作。

Server Panel:主服务器的实时体检中心

Server Panel 是整套 AIO 的首页,也是我最常打开的一页。

它负责展示主服务器当前的生命体征:CPU 有没有忙到冒烟、内存吃了多少、磁盘还剩多少、系统负载是否平稳、硬件温度有没有发烧,以及网络延迟和丢包是否正常。

再往下看,还有最近十五分钟的上传下载曲线、月度流量配额、最活跃的进程、磁盘挂载和备份状态。过去这些信息散落在几个命令、几套面板和一些“我记得应该没问题”的主观判断里;现在它们终于坐到了一张桌上。

我尤其喜欢 CPU activity 那一片核心状态。几十个核心同时闪动时,看起来像一座小城市的夜景。虽然绝大多数时候它们都只用了百分之一二,但买了那么多线程,总得让它们在页面上露个脸,否则它们会以为自己只是账单上的装饰品。

首页还塞进了上海天气和每日一句。检查服务器时顺便知道今天会不会下雨,比连续盯着网络吞吐量更接近正常人类生活。每日一句则负责在系统一切正常时提供精神指导;如果系统不正常,精神指导通常会被我暂时忽略。注:为了足够装,页面以英文展示,于是每日一句我就完全看不懂了

这页不要求访客看懂每个数字。只要温度没有红、磁盘没有满、网络没有丢包,左下角还写着 “All systems online”,基本就可以理解为:今天机器情绪稳定,暂时不用谈心。

VPS Console:所有“小鸡”的集体点名

如果 Server Panel 是主服务器的详细体检,VPS Console 就是我手里所有 VPS 的早操点名册。而在MJJ(买鸡鸡)的VPS圈子里,喜欢称呼VPS叫做小鸡。不过我屯的服务器——应该说真要做点什么违法乱纪的事儿,1000个人同时来,绝对顶得住。不过我就是这么一个“有原则且有精神洁癖的人”,没有人可以用我的服务器。

每台机器都有一张状态卡,显示在线状态、CPU、内存、磁盘、实时上下行、本月流量和连续运行时间。谁还活着,谁磁盘吃紧,谁已经几百天没重启,都可以直接看出来。

过去点名大概是这样的:

“香港节点在吗?”——登录一次。
“另一台香港节点在吗?”——再登录一次。
“那台名字已经记不清的小机器呢?”——先翻付款邮件,再思考自己当初为什么买它。

现在打开 VPS Console,所有节点整齐站成一排。绿色 Online 就像举手说“到”,离线则意味着它终于获得了我的注意。

这页还把 IP 做了遮罩,因为公开展示服务器状态可以,公开贴门牌号就多少有点热情过度。主机名里如果有不适合出现在正式场合的历史遗留命名,也应该在发文前打码。给机器起名时很自由,写博客时才会明白,年轻时的幽默终究要由未来的自己负责。

Blog:书房搬进来了

Blog 这个 Tab 会从我的 Halo 博客同步已经公开的文章。也就是说我发布了这篇博客,它就会自动同步到这个页面了。

左边是文章列表,右边是阅读区。点击标题以后,正文直接在 AIO 内打开,不需要跳去另一套界面,也不是简单地拿 iframe 把整个博客硬塞进来。文章仍然由 Halo 负责编辑和发布,AIO 只做统一风格的只读展示。

这样做的好处是,文章可以继续在原博客拥有正式地址,同时也能作为 AIO 数字生活的一部分出现。服务器、音乐和电影负责记录“我有什么”,Blog 负责记录“我为什么会有这些,以及我为它们踩过什么坑”。

AIO Blog 页面,左侧为文章列表,右侧为阅读区域

图:Blog 阅读区。文章不多,但至少已经成功避免“唯一一篇文章是如何搭建博客”。

目前文章数量不算多,这很合理。搭博客的人通常花百分之八十的时间调整博客,花百分之十五的时间想标题,剩下百分之五才轮到写正文。现在把 Blog 做进 AIO,大概能把写正文的比例提升到百分之六。

My Song:本来只想查服务器,最后听了半小时歌

My Song 是我的私人音乐库,目前连接 Navidrome,里面大约有五百首歌,我管它叫“卒業生(そつぎょうせい)のプライベート音楽室(おんがくしつ)“。

页面会显示歌曲名、歌手、专辑和时长,可以直接搜索并播放。搜索源还可以在 Navidrome Library 和 NetEase Music 之间切换:前者负责查已经入库的歌,后者负责查在线音乐。

如果在网易云搜索到一首可用歌曲,还能直接选择加入私人曲库。后台会完成下载、封面和歌词处理、音频标签整理、上传以及 Navidrome 扫描。页面上只需要看着状态从 Queued 走到 Added,至于中间发生了多少事,最好不要在听歌时细想。

不可下载、VIP 或版权受限的内容会标成 Unavailable。系统不会因为我做了个按钮,就假装互联网上所有歌曲都归我管理。技术可以自动化流程,但不能自动化版权。

这个页面最常见的使用路径是:

第一步,打开 AIO,准备看服务器负载。
第二步,不小心点到 My Song。
第三步,搜索一首老歌。
第四步,半小时后开始思考时间都去哪儿了。
第五步,服务器负载已经自己恢复正常。

Emby Status:私人影院的后厨监控

Emby Status 不是另一个播放器,它更像私人影院的后厨看板。

页面最上面展示最近五批入库内容。电影一部算一批,剧集会按照同一批次自动合并。每张卡片都有海报、作品名、年份、媒体类型、季集数、来源、整理时间和 Emby 入库确认时间。

点开其中一部作品,还能看到简介、评分和它走过的链路。比如一部剧从资源端出发,经过 STRM 生成、同步,再进入 Emby。过去这是一串藏在日志里的动作;现在它变成一条看得懂的路线。具体我的搭建可以参照我上一篇文章“从“本地影视库”到“全球畅享”:我如何把 Emby 部署成一门不太必要的艺术”。

AIO Emby Status 页面,展示最近入库、媒体链路和媒体库规模

图:Emby 最近入库。海报墙负责好看,下面两条链路负责证明它不是凭空长出来的。

页面底部还会显示媒体库规模和两套入库链路是否健康。电影、电视剧、剧集总数和 STRM 文件数量都在那里。数字大到一定程度以后,它们已经不代表“有很多可看的”,而代表“我很可能永远看不完”。

有人会问:既然看不完,为什么还要入库?

这个问题跟“既然一次只能穿一双鞋,为什么还要有鞋柜”差不多。收藏系统存在的意义,不是证明你会用完,而是让你在想用时知道它在那里。我最开心的就是看到右下角影片的数量不停在增长,满足感油然而生。

很多人会看到这样的数量级,认为我是不是会开一个Emby服然后进行售卖,这里得先说对不起——我没兴趣,只有及其个别的人才会有账号,个别到什么程度,那就是“家人”。

Hermes Status:看看我的主力Agent有没有认真上班

Hermes Status 是 AI 助手的运行看板。

这里能看到 Gateway 是否健康、启用了哪些 Agent、消息渠道是否连接、会话和消息库是否正常、定时任务有哪些在运行,以及 Hermes 所在主机的 CPU、内存和磁盘状态。

对普通访客来说,这一页可以翻译成一句话:AI 助手在线,各项服务正常。对我来说,它更像员工考勤与机房监控的混合体。

消息渠道显示 Connected,说明她听得见;Gateway 显示 Ready,说明她理论上能干活;定时任务显示 Active,说明即使我没发消息,也有一些工作会按时发生。

当然,状态页只能证明一桐在线,不能证明她没有偶尔站在自己搭的网站门口问“网址是什么”。AI 和人类一样,拥有记忆与记得使用记忆,是两项不同的能力。

这页公开展示时会隐藏具体渠道、会话数量、任务时间和主机细节。介绍一桐可以,公开她的排班表就不必了。

API TokenLens:AI 没统治世界,但先参与了账单

API TokenLens 负责统计模型使用量。

这里的 Token 不是 API 密钥,而是模型处理文字时使用的计量单位。页面可以切换查看一天、七天、三十天和九十天的数据,包括总调用量、输入输出 Token、每日趋势、模型分布、会话使用情况,以及按照官方 Standard API 价格估算的成本。

所有 Provider 都归一到原厂名称,费用也只按原厂公开价格计算,不把代理渠道、套餐来源和各种中间名字带进来。统计页面如果比实际调用链还复杂,就失去了统计的意义。

它回答的是几个非常现实的问题:

“最近到底用了多少 AI?”
“哪个模型最能吃?”
“今天只是随便聊了两句,为什么 Token 曲线像过年?”

有了 TokenLens 以后,我终于可以把“最近好像用得有点多”升级成“最近确实用得有点多,而且证据完整”。

Memory OS:给 AI 的记忆做脑部扫描

Memory OS 是我个人最喜欢的页面之一。

如果 Hermes 是那个会说话、会执行任务的一桐,那么 Memory OS 展示的就是她背后的长期记忆:记住了什么、哪些信息彼此相关、最近新增了多少内容,以及整套记忆处理链路是否健康。

页面会显示记忆节点、关联关系和实体数量。中间的 Living Knowledge Graph 把人物、项目、服务器、设备和概念画成节点,再用连线表示它们之间的关系。节点越大,通常意味着它与其他内容的联系越多。

AIO Memory OS 页面,展示知识关系图、记忆增长和运行健康状态

图:Memory OS。看起来像星图,实际上每条线都可能通向一次折腾。

不需要懂知识图谱,也可以把它理解成一张不断生长的关系网。过去的 AI 对话像便利贴,用完就散;现在人物、项目、决策和经历会慢慢连起来,让下一次对话不必从“你好,请问你是谁”重新开始。

当然,记忆不是魔法。错误的信息如果进入系统,也可能被认真记住;过时的信息也需要更新。所以 Memory OS 不只是展示“记了多少”,还会展示处理成功率、数据库连接、待处理队列、最近的摄取活动和模型请求健康度。

它更像一座图书馆,而不是一个神谕。书多不代表每本都正确,但至少管理员知道书放在哪里。

Moments:把不值得写长文的东西也留下来

Moments 是 AIO 里的轻量动态区,形式接近一个属于自己的小型朋友圈。

Blog 适合认真写一篇文章,Moments 则适合记录那些只有几句话、几张图,却又不想让它们消失的瞬间:新功能上线、最近听到的歌、一次旅行、一张随手拍,或者凌晨解决 Bug 后那种不适合发给同事但很想留档的心情。

访客可以浏览和点赞,发布则需要身份验证,只有我自己能新增内容。否则任何人都可以替我宣布“今天决定把所有服务器删掉”,这个社交功能就会立刻从朋友圈变成事故现场。

它和 Halo 里的长文章并不冲突。一个负责把事情说完整,一个负责证明生活并不总需要目录、摘要和三千字铺垫。

Online Resource Search:少开几个网页,少记几个入口

Online Resource Search 把不同的资源发现方式集中到一个页面里。

它整合了 PanSou、TorLink 等搜索能力,按照统一界面展示。过去需要分别记住多个网址、多个入口和不同的使用方式;现在输入一次关键词,就可以在同一页查看不同方向的结果。

这页解决的问题非常朴素:让“到处找”变成“一处搜”。

当然,搜索只是搜索。搜到内容不等于自动获得使用许可,也不等于内容一定安全可靠。资源是否合法、是否适合下载、是否符合所在地区法规,仍然需要使用者自己判断。AIO 可以减少浏览器标签页,但不能替人减少法律常识。

其实做这个页面主要也是为了我的Emby服务,用Pansou可以很快的找到115的资源进行秒传。所以对于我来说,补齐一步电影或者电视剧,或许只需要3分钟。

为什么要把这些东西放在一起?

从纯功能角度看,上面每个服务原本都能单独使用。

服务器有自己的监控,VPS 有 D-Status,音乐有 Navidrome,电影有 Emby,博客有 Halo,AI 有 Hermes,记忆有 Hindsight。把它们塞进一个页面,不会让 CPU 变快,也不会让硬盘突然多出十个 TB。

但它让整套数字生活有了一个真正的入口。

我不再需要记住十几个域名,不用在不同设计、不同登录方式和不同导航逻辑之间来回切换。更重要的是,这个页面展示的不只是机器状态,也包括我写过的文章、听过的歌、收藏的影视内容、随手记录的瞬间,以及我和 AI 一起积累的记忆。

它既是仪表盘,也是个人主页;既有机房的味道,也有客厅和书房。

如果一定要给它一个不太技术的定义,我会说:

AIO 是我个人数字生活的一张户型图。所有东西终于有房间、有门牌,也有一个不用翻书签就能找到的大门。

最后:一个 Tab 永远不会是最后一个 Tab

现在的 AIO 已经包括 Server Panel、VPS Console、Blog、My Song、Emby Status、Hermes Status、API TokenLens、Memory OS、Moments 和 Online Resource Search。

听起来已经不少了。

但个人项目最稳定的功能,从来不是“保持稳定”,而是某天洗澡时突然想到:“这里是不是还能再加一个 Tab?”,因为在我的blueprint里面,之后大概率还会有:

  • 图床:其实这更是一个伪需求了,但貌似喜欢技术的人都喜欢建图床,我也不懂为什么了

  • Newswire:因为我没有小红书,没有微博,我得有个地方帮我准备这些热点

所以它大概永远不会真正完工。新的服务会搬进来,旧的页面会重新装修,某些看似合理的功能可能在一周后被证明完全没有必要。可这正是它有意思的地方:它不是买来就固定不动的产品,而是一栋会随着我的兴趣和生活继续生长的房子。

有人可能觉得,为了少记几个网址,花这么多时间搭一个网站,多少有点本末倒置。

这个判断完全正确。

但如果所有事情都只按投入产出比来做,人类最后大概只剩下吃饭、睡觉和定期更新密码。那些“不太必要,但做成以后很快乐”的东西,才是个人项目真正的意义。

至少现在,服务器、VPS、博客、音乐、电影和 AI 终于住进了同一栋楼。

而我,也终于只需要记住一个网址。

至于密码记不记得住,那是另一个项目。


评论