第 118 期 · 自托管仪表盘

把 RSS、天气、行情、Docker 状态塞进一个网页:Glance 值得折腾吗?

如果你有一台常开的 NAS 或 VPS,多半遇到过这种尴尬:想一眼看全订阅的博客、今天的天气、关注的股价、家里 Docker 容器的状态,却要在五六个网站和 App 之间来回切。浏览器收藏夹解决不了“聚合展示”,重型的 Home Assistant 又杀鸡用牛刀。Glance 的定位就是:一个轻到只有十几 MB 的二进制、纯 YAML 配置、把上述所有信息流塞进一个手机也能看的页面。判断先放前面——它适合“想把信息流聚合到一个起点页”的人,不适合想要真·实时监控大屏或自带登录鉴权的人。

一、这个项目是做什么的

Glance 是一个轻量、高度可定制的自托管仪表盘,用单一页面聚合你关心的“信息流”。它内置几十种 widget:RSS 订阅、Subreddit 帖子、Hacker News、天气、YouTube 频道更新、Twitch 直播、市场行情、Docker 容器状态、服务器资源占用,以及自定义 HTML / iframe / 自定义 API 等扩展。

整个项目几乎零前端框架——纯原生 JS、单文件二进制小于 20MB、内存占用极低,页面默认加载约 1 秒。配置全部走 YAML,支持多页面 / 多标签页、自定义 CSS 与主题。

二、怎么用(安装与命令均逐字取自官方 README)

官方推荐用 Docker Compose。先拉取官方模板目录:

mkdir glance && cd glance && curl -sL https://github.com/glanceapp/docker-compose-template/archive/refs/heads/main.tar.gz | tar -xzf - --strip-components 2

然后按需要改 docker-compose.yml(端口、挂载)、config/home.yml(首页组件)、config/glance.yml(主题 / 多页),就绪后:

docker compose up -d

查看日志:

docker compose logs

如果不想用模板,手写最小 docker-compose.yml(镜像 glanceapp/glance,端口 8080 映射,挂载 ./config):

services:
  glance:
    container_name: glance
    image: glanceapp/glance
    restart: unless-stopped
    volumes:
      - ./config:/app/config
    ports:
      - 8080:8080

再拉取起始配置:

mkdir config && wget -O config/glance.yml https://raw.githubusercontent.com/glanceapp/glance/refs/heads/main/docs/glance.yml

然后 docker compose up -d 即可。

想直接跑二进制(Linux / macOS / Windows 均提供预编译包,默认读同目录 glance.yml,可用 --config 指定):

/opt/glance/glance --config /etc/glance.yml

从源码构建需 Go >= 1.23:

go build -o build/glance .

或临时跑:

go run .

三、优点和缺点

优点:

· 真·轻量:单二进制 <20MB、极少依赖、无重型前端框架,树莓派也能跑;

· 配置即代码:纯 YAML,改完刷新即生效,方便版本管理;

· 信息流覆盖面广,且支持自定义 widget(iframe / html / custom-api),可接任意内部服务;

· 移动端优化到位,出门也能看。

缺点(结合官方 FAQ 与社区 issue 的真实反馈):

· 不自动刷新:页面信息只在“加载时”抓取并缓存,没有后台定时拉取,想看最新数据得手动刷新或用浏览器自动刷新插件(社区呼声最高的需求 #327 至今未内置);

· 无内置登录鉴权:默认谁都能访问,公网暴露时必须自己套反向代理 + 鉴权(如 Caddy / Traefik + Authelia),否则 /assets/ 等静态资源也会被未授权读取(issue #917);

· 强依赖外网数据源:Reddit 子版块偶发 403(#1016)、YouTube 个别频道视频加载失败(#910)、开了 Pi-hole / AdGuard 这类广告 DNS 时容易触发限流超时(#290);

· 页面加载速度被最慢的那个外部 widget 拖着走(#304)。

四、最终能达到什么效果

部署好之后,你得到一个完全属于自己、可在手机和桌面随时打开的“信息起点页”:左边看今天要读的博客和 HN 热帖,中间看关注的 YouTube 与行情,右边看家里 Docker 容器和天气。它不取代监控告警系统,但能把“每天顺手瞄一眼”的成本降到最低。

适合谁:有 NAS / 小服务器、想把订阅源 / 行情 / 容器状态聚合到一个页面、愿意写 YAML 的人。
不适合谁:想要真正实时监控大屏、需要内置账号体系、或不想碰配置文件的“开箱即用”用户。
三个坑:① 公网暴露前一定加反向代理鉴权;② 受不了数据不自动刷新的,先装个浏览器自动刷新插件;③ 用了广告 DNS 的,记得调高其速率上限,否则 widget 会超时。

下期预告:自托管监控三选一——Glance(信息聚合)对比 Beszel / Netdata(真·实时监控),讲清各自边界与选型。

数据脚注:仓库 github.com/glanceapp/glance;许可证 AGPL-3.0(强 Copyleft,修改并经网络分发须开源,可商用);配置与安装命令均逐字取自官方 README 与 docs/glance.yml;抓取时间 2026-09-15。