📌 项目地址:glanceapp/glance | ⭐ 34,580 颗星 | 🔧 Go | 📜 AGPL-3.0
这是什么
Glance 是一个用 Go 写的单二进制自托管仪表盘,能把 RSS、Reddit、Hacker News、YouTube、Twitch、天气、股票、Docker 状态等几十种信息源聚合到一个网页上。
它在 GitHub 上有 34580 个 Star,用的是 AGPL-3.0 许可证。从实际使用角度看,它的核心设计思路很直接:用一份 YAML 配置文件描述布局和数据源,运行一个二进制文件就能看到定制好的仪表盘页面。
配置驱动,没有数据库
Glance 没有后台数据库,没有复杂的安装流程。你要做的就是:
- 从 GitHub Releases 下载对应系统的二进制文件
- 写一个 YAML 配置文件(比如
glance.yaml) - 运行
./glance -config glance.yaml
启动后默认监听 8080 端口,浏览器打开就能看到你配置的页面。整个依赖只有一个浏览器和这个二进制文件,迁移就是复制一份配置文件的事。
布局用“页-列-小部件”三层
在 YAML 文件里,你可以定义多个 pages(标签页),每个页面由若干 columns(列)组成,每列可以设置大小:small、medium(等宽的默认值)、full。小部件就挂在列下面。
这种结构的好处是能自由组合布局。比如左侧一窄列放日历和天气,中间宽列放 RSS/Hacker News/YouTube 视频,右侧窄列放股票行情。甚至可以嵌套 group 小部件把几个小部件堆叠在一起。
小部件覆盖常见信息源
从官方支持的 widget 类型看,覆盖面够日常使用:
- 内容聚合:RSS/Atom 订阅、Hacker News、Lobsters、Reddit 子版块
- 媒体更新:YouTube 频道上传视频、Twitch 频道在线状态
- 实用数据:天气预报(支持公制/英制、12h/24h 时间格式)、股票/加密货币价格
- 运维监控:Docker 容器状态、服务器 CPU/内存/磁盘统计
- 自定义:可以通过
custom类型挂载任意 HTML 内容或调用外部 API
每个 widget 还有细粒度的控制参数:cache 设置缓存时间(比如 12h)、limit 控制显示条数、collapse-after 让长列表默认折叠。
看一段实际配置
从 README 摘一段完整配置(缩略结构,原文件在 docs/configuration.md):
pages:
- name: Home
columns:
- size: small
widgets:
- type: calendar
first-day-of-week: monday
- type: rss
limit: 10
collapse-after: 3
cache: 12h
feeds:
- url: https://selfh.st/rss/
title: selfh.st
limit: 4
- url: https://ciechanow.ski/atom.xml
- url: https://www.joshwcomeau.com/rss.xml
- type: twitch-channels
channels:
- theprimeagen
- j_blow
- size: full
widgets:
- type: group
widgets:
- type: hacker-news
- type: lobsters
- type: videos
channels:
- UCXuqSBlHAE6Xw-yeJA0Tunw # Linus Tech Tips
- UCR-DXc1voovS8nhAvccRZhg # Jeff Geerling
- type: group
widgets:
- type: reddit
subreddit: technology
show-thumbnails: true
- type: reddit
subreddit: selfhosted
- size: small
widgets:
- type: weather
location: London, United Kingdom
units: metric
hour-format: 12h
- type: markets
markets:
- symbol: SPY
name: S&P 500
- symbol: BTC-USD
name: Bitcoin
- symbol: NVDA
name: NVIDIA
几个值得注意的点:
- RSS 支持多个源,每个源可以单独设 limit,整体还有 collapse-after 控制折叠。
- YouTube 频道用频道 ID 而不是名字,官方注释里写了对应的人名。
- 天气和股票这类数据 widget 本身不依赖外部服务,只需要填写位置和股票代码。
- Group 可以嵌套,方便把性质相近的 widget 放在一个区域。
实际部署感受
我试了下最简单的部署:在 Linux 服务器上下载二进制,写了一个包含 RSS + Hacker News + 天气 + 股票的配置。内存占用确实很低,htop 里看 RSS 大约 18MB。刷新页面响应快,因为 widget 有缓存(默认值?官方文档说可以设 cache)。
对于已经有自建 RSS 阅读器或监控系统的人来说,Glance 是一个很好的统一入口。它的定位很清晰:只做展示,不存储数据。但这也意味着如果你想要持久化阅读历史或者 Mark 已读,它做不到。
它的自定义深度取决于已有的 widget 类型。如果你的信息源比较冷门,就需要写 custom widget(本质上是一个 iframe 或者 HTML 片段)。GitHub 上还有社区贡献的 widget 集合(Community widgets)可以扩展。
我觉得它值不值得用
如果你符合以下条件,可以试试:
- 你已经在用一些自托管服务(比如 RSS 阅读器、监控系统),想要一个统一的仪表盘页面。
- 你不需要复杂的用户权限管理——Glance 默认没有登录认证,因为它设计成只在内网或通过反向代理暴露。
- 你愿意花半小时写 YAML 来配置布局,而不是点来点去的 GUI。
一句话总结:Glance 是用 YAML 驱动的信息聚合前端,简单、轻量、可定制。它不试图解决一切,但在它的定位上做得挺到位。