
先说为什么折腾
我服务器上已经跑着一堆自部署服务:博客、RSS 阅读器、广告拦截、密码库、图床。服务多了,麻烦也来了——要看的东西太分散:博客访问量在一个后台,RSS 在一个后台,邮箱在一个后台,各个服务挂没挂又要另外看。每天早上拿起手机一通乱点,还经常漏看。
起因很简单:在网上看到有人用 Glance 搭个人主页,正好我服务器闲着也是闲着,就决定自己也搭一个。整个事情是 2026 年 10 月中旬折腾的,核心搭建和反复调整集中在 10 月 19 日一天,从上午一直弄到中午。
我不懂编程,靠 AI 助手干活
先交代一句:我不懂编程。分工大概是——我把想法和官方文档丢给 AI,它来写配置和脚本,我负责看效果、提意见、拍板。几分钟一个功能,挺上瘾的。
技术选型
用的是 Glance,开源自托管的面板程序,Go 写的单个二进制文件,版本 v0.8.7。
- 不用 Docker,直接跑二进制加 systemd 守护,内存上限限制在 160MB,很省资源。
- 面板本身只负责拼页面,数据来自一个个小脚本:Python 脚本定时去各个服务拉数据,写成 JSON 文件,再由 nginx 的内部只读端口提供给面板的卡片。
- 整个站挂在自己的域名下(子域名),加了密码登录。
面板上有哪些卡片
一共 11 张,分三个栏目。
总览栏(第一屏):
- 天气——打开就看到
- 邮件 · 今日——不是搬邮件全文,是自动分类统计(评论、验证码、广告、账单、日报等),只统计未读,一眼知道今天有没有要紧邮件。分类是 AI 模型做的,卡片右上角有个小齿轮可以换分类用的模型
- 博客今日访问量
- 站点状态——24 小时/48 小时的热力小格子,一格一小时,绿色代表正常,哪个时间段挂过一眼看出来,每 5 分钟自动探测一次
- 服务用量——图床存储容量、边缘函数请求数
- 广告拦截统计
- 收藏夹——我自己服务的快捷入口,4 列网格布局,图标+文字都要有
日程栏:
- 未来 7 天日程
- 未完成待办
(接我平时用的日历和任务工具)
分析栏:
- RSS 未读文章列表——要的是全部未读,不是最新几条,点过去读完会自动标已读(这里专门做了联动)
- 广告拦截的 Top 域名 / Top 客户端排行
踩的坑
- 图标加载不出来:Glance 默认图标走国外公共 CDN,国内经常加载失败,页面一堆空白框。→ 把图标全部下载到本地自己托管,问题解决。教训:依赖国外 CDN 的东西在国内都得留心眼。
- 「刷新了数据怎么没变」:以为点浏览器刷新按钮数据就会重新拉,其实不是——每个卡片有自己的缓存,刷新只是重新显示缓存。想打开就是最新,得把缓存时间调短。坑不难,但很迷惑人。
- 手机体验:默认手机页面字号特别小,底部栏目切换只有几个小圆点,不知道哪个是哪个。→ 圆点改成「总览/日程/分析」的文字标签,字号全部调大。我主要用手机看,这块最在意。
- 老弹「翻译此页」:页面默认语言标的是英文,Chrome 每次打开都问要不要翻译。→ 在反向代理层把语言改成中文(这里还有个坑:要先关掉压缩,否则替换不生效),弹窗消失。
- 前端脚本点了没反应:卡片内容是异步加载的,脚本在页面加载完就去找按钮,根本找不到,点了没反应也不报错😅。→ 改成事件委托才生效。
- 主题返工(最大的坑):第一版让 AI 做了个「深色玻璃风 + 发光角标」,我打开一看:太暗,太做作,全部推翻。最终照着 FreshRSS 的朴素风格定稿:浅灰底 #f0f0f0、纯白卡片、1px 细边框、3px 圆角、几乎无阴影,强调色一个普普通通的蓝 #0084cc。结论:天天要看的东西,耐看比炫酷重要。
- 自动刷新:做了个页面角落的倒计时刷新控件,每 5 分钟整页刷新一次,刷新时记住你在哪个栏目、滚动到哪了,不会跳回顶部。
- 邮件卡片的设置:齿轮里能改分类模型,保存后立即生效。这个小功能涉及前后端联调,也折腾了一阵。
安全
面板挂在公网,该做的都做了:登录接口限速、安全响应头、敏感令牌不进日志、写操作只收 POST、外站来源拒绝。细节就不展开了。
最后聊聊感受
折腾的时候费点劲,折腾完就是自己的了——没有使用限制,想怎么改就怎么改。这和之前搭广告拦截、RSS 阅读器一脉相承,典型的自部署的快乐。
现在早上起床打开一个页面,天气、邮件、访问量、待办全在上面,不用再一通乱点,这就是最大的收获。
说句实在话,不懂编程也能靠 AI 把这种东西搭起来:我出想法和判断,AI 出手,几分钟一个功能。面板后面还会继续加卡片,慢慢完善。
好了,今天就聊到这里。如果你也搭了自己的面板,或者有什么想加的卡片,欢迎留言交流。我们下篇文章见。
东西不少
确实不少。
图片有点模糊啊,压缩得太狠了吧。。
不是,图是AI截的,所以不太清楚。