Glance v0.8.7 介绍与选型指南

梳理 Glance v0.8.7 定位、单二进制零数据库架构、28 类 widget 聚合体系与 AGPL 许可现状,给出与 Dashy/homepage/Homarr/Heimdall 的量化选型对比,全文联网溯源(2026-10-25)。

GlanceGlance仪表盘自托管2026/10/25

Glance v0.8.7 介绍与选型指南

目标:面向正在为自托管环境挑选「仪表盘/起始页」的工程师,梳理 Glance v0.8.7 的产品定位、核心架构、widget 聚合体系与许可现状,并给出与 Dashy、homepage、Homarr、Heimdall 的量化选型对比。本文为 A1 认知篇(联网溯源),全部事实性内容均于 2026-10-25 从官方渠道(GitHub 仓库 glanceapp/glance、官方 configuration.md 配置文档、releases.atom 订阅源、shields.io 徽章)实查取得并标注来源;部署、配置与命令的实测内容见本专栏后续各篇。

一、环境信息

本文为 A1 认知篇(联网溯源),写作时不依赖本地环境,所有版本、星数、许可与功能口径均于 2026-10-25 从下列官方渠道实查:

信息项取值来源
最新稳定版本v0.8.7(2026-10-15 发布)GitHub Releases(releases.atom 订阅源)
开源许可证AGPL-3.0shields.io github/license 徽章,查询日期 2026-10-25
社区规模(GitHub Stars)约 38kshields.io github/stars 徽章,查询日期 2026-10-25
Open Issues225(查询时点)shields.io github/issues 徽章,查询日期 2026-10-25
Docker Hub 拉取量约 9.6Mshields.io docker/pulls 徽章(镜像 glanceapp/glance),查询日期 2026-10-25
最近一次代码提交查询时点前数日(徽章显示 last tuesday)shields.io github/last-commit 徽章,查询日期 2026-10-25
技术栈Go 单二进制 + 极简原生 JS(项目明确约定「No package.json」,不引入 Node 构建链)GitHub README 与 Contributing guidelines
二进制体积单文件 <20MB(官方 README 口径;v0.8.7 linux-amd64 实包 6.37MB 压缩包、解压后约 15MB)GitHub README + Releases 资产实查
默认监听端口8080(server.port 默认值)官方 configuration.md Server 节
配置方式单份 YAML(glance.yml),支持 $include 拆分与 ${ENV_VAR} 注入官方 configuration.md「The config file」节
官方镜像glanceapp/glance(Docker Hub),标签含 v0.8.7 精确版本与 latestDocker Hub 仓库页

💡 说明:Glance 采用 0.x 版本号体系(当前 v0.8.7),主版本尚未到 1.0,跨小版本偶有配置项废弃(如 legacy 日历 widget 已标记 deprecated);升级前须逐版阅读 Release Notes。本文版本口径截至 2026-10-25。

二、软件概述

2.1 定位与身份

Glance 的官方自我定位只有一句话:「一个轻量、高度可定制的仪表盘,把你的信息流放进美观、精炼的界面」(A lightweight, highly customizable dashboard that displays your feeds in a beautiful, streamlined interface,来源:GitHub README,查询日期 2026-10-25)。它解决的核心痛点是:自托管玩家手上散落着 RSS 订阅、天气预报、股票行情、监控面板、服务健康状态等十几个信息源,每类都要单独开网页看——Glance 把这些「信息流」聚合到一张可分页、可分栏的起始页上,浏览器主页一开,全部信息尽收眼底。

一句话理解它的产品逻辑:在「纯链接收藏页」和「重型可视化平台」之间,Glance 选择做「服务端聚合的信息流仪表盘」——单个 Go 二进制、零数据库依赖、一份 YAML 描述全部页面与 widget,数据在服务端抓取并缓存,浏览器拿到的是渲染好的 HTML(极少量原生 JS 负责交互)。

💡 技术拓展:自托管场景的「仪表盘/起始页」业界主要有三种形态,选型前应先分清——

形态代表产品原理适用场景
服务端聚合信息流仪表盘Glance、homepage服务端定时抓取 RSS/行情/监控等数据源,渲染成 HTML 返回想一眼看到「内容」而不只是「入口」
链接导航 + 小组件面板Dashy、Heimdall以应用快捷入口为主,辅以少量动态小组件以「快速跳转到各应用」为主要诉求
动态 Web 应用平台Homarr前端 SPA + 后端 API,拖拽编辑、在线管理喜欢图形化编辑、多用户协作管理面板

Glance 属于第一种,同时通过 bookmarks widget 覆盖第二种的核心能力、通过 custom-api/extension widget 提供第三种的扩展通道。

2.2 版本与许可

  • 当前稳定版:v0.8.7,2026-10-15 发布(来源:GitHub Releases / releases.atom,查询日期 2026-10-25)。
  • 许可证:AGPL-3.0。对「拿 Glance 改造后对外提供托管服务」的商用场景有传染性约束(修改版含通过网络提供服务须开源),个人自托管与内部使用不受影响。
  • 治理与社区:个人主导的开源项目(作者 svilenmarkov,仓库组织 glanceapp),配套 Discord 社区、独立 glanceapp/community-widgets 社区 widget 仓库、glanceapp/docker-compose-template 官方编排模板仓库与 glanceapp/agent 远程监控代理仓库(来源:README 链接区,查询日期 2026-10-25)。
  • 文档形态:无独立文档站,配置文档以仓库 docs/configuration.md(约 3000 行)为权威,另有 docs/themes.md(主题集)与 docs/preconfigured-pages.md(预配置页面集);社区还维护着一份第三方 JSON Schema(not-first/glance-schema)供 IDE 补全校验(来源:configuration.md「Config schema」节)。

2.3 版本节奏(量化)

近期发布记录(来源:GitHub releases.atom,查询日期 2026-10-25,时间为 feed updated 字段):

版本发布/更新时间备注
v0.8.72026-10-15当前最新稳定版
v0.8.62026-09-03上一个稳定版
v0.8.52026-05-30
v0.8.42025-06-10
v0.8.02025-04-22
v0.7.132025-04-14v0.7 线最后一版

节奏特征:v0.8.x 线自 2025-04 启动后保持约 28 个月一个稳定版的慢节奏,v0.8.5 → v0.8.6 → v0.8.7(2026-05 至 2026-10)进入约 13 个月一版的活跃区间,仓库持续有提交(last-commit 徽章显示查询时点前数日仍有新提交)。对生产使用者的含义是:功能演进稳健但不算快,重大变更多集中在 widget 新增与配置项微调,适合「配好就用、少折腾」的场景。

三、核心架构

3.1 运行时构成

Glance 是单进程单二进制架构(Go 编写),运行时只有它自己,没有数据库、没有消息队列、没有 Node 前端构建产物:

组成职责说明
HTTP 服务同端口(默认 8080)提供仪表盘页面与全部静态资源server.host/server.port 可配,默认监听所有接口
数据抓取器各 widget 按需抓取外部数据源(RSS/YouTube/Twitch/行情 API 等)仅在页面被加载时请求,之后命中缓存;官方 FAQ 明确「后台不做周期性轮询」
内存缓存每个 widget 的 cache 属性控制数据驻留时长(如 30s/5m/12h/1d)重载配置会清空缓存
配置加载器解析 glance.yml,支持 $include 拆分文件、${ENV_VAR} 环境变量、${secret:xxx} Docker secrets、${readFileFromEnv:xxx} 文件注入配置文件保存自动热重载,无需重启
认证模块内置用户名/密码登录、bcrypt 哈希口令、5 分钟内失败 5 次自动封禁来源 IP可选功能,默认关闭

💡 技术拓展:Glance 的「零持久化」是有意的设计取舍。同类仪表盘的持久化形态对比——

形态原理代价
无持久化 + 内存缓存(Glance 默认)配置即状态,数据按 widget 缓存期内存驻留重启即冷启动;to-do 等用户数据落浏览器 localStorage
SQLite/文件存储(Homarr、Heimdall 等)面板布局、用户、应用列表落库需要挂载数据卷、考虑备份迁移
服务端多用户体系注册/角色/权限落库部署复杂度显著上升

Glance 默认形态下唯一「有状态」的是配置文件本身,把 glance.yml 纳入版本控制即完成备份;多 todo 列表用 widget id 区分,数据存在各浏览器本地。

3.2 数据流与渲染链路

Glance 的页面生成完全发生在服务端,浏览器拿到的是渲染完成的 HTML:

浏览器请求 http://server:8080/
        │
        ↓
Glance 服务端解析 glance.yml($include / ${ENV_VAR} 已展开)
        │
        ↓
逐 widget 检查内存缓存:命中 → 直接用;未命中 → 抓取外部数据源
(RSS 源 / open-meteo 天气 / Yahoo Finance 行情 / Hacker News / Twitch GQL / GitHub API …)
        │
        ↓
Go html/template 渲染各 widget 片段 → 拼装整页 HTML(含主题 CSS)
        │
        ↓
浏览器渲染(少量原生 JS 负责 tab 切换、SHOW MORE、时钟跳动等交互)

关键设计点:

  1. 按需抓取 + 页面刷新更新:官方 FAQ 明确「页面信息不会自动更新,刷新页面才会更新;除时钟等个别动态元素外无后台轮询」。这让它对数据源极其友好(不会像一个后台轮询监控器那样打爆第三方 API),代价是它不是实时监控面板。
  2. widget 级缓存:cache: 12h 这类属性按 widget 独立生效,日历与天气两个 widget 固定整点更新不可改缓存。
  3. 热重载:改 glance.yml 保存即生效;启动时配置非法会直接报错退出,运行中改坏则控制台报错并继续用旧配置运行。
  4. 三类自定义数据通道:custom-api(抓 JSON 用 Go 模板渲染)、extension(第三方托管 widget,HTTP 拉取渲染)、iframe/html(直接嵌入)。这使它理论上能接任何有 API 的系统。

3.3 部署形态

官方支持的部署形态(来源:GitHub README Installation 节,查询日期 2026-10-25):

形态适用场景说明
Docker Compose + 官方目录模板(推荐)服务器部署首选glanceapp/docker-compose-template 一键铺出 docker-compose.yml + config/glance.yml + .env + assets/user.css 目录结构
Docker Compose 手写想精简控制README 给出 8 行最小编排:挂载 ./config:/app/config、映射 8080
裸二进制 + systemd无容器环境GitHub Releases 提供 Linux/Windows/macOS(x86/x86_64/ARM/ARM64)二进制,README 建议放 /opt/glance/ 用 systemd 托管,--config 指定配置路径
第三方渠道各生态用户Proxmox VE Helper Script、NixOS package、Coolify、Hostinger

四、功能特性

4.1 widget 体系(28 类)

全部 widget 由 type 字段声明(来源:官方 configuration.md,查询日期 2026-10-25),按用途分组如下:

用途分组widget 类型
资讯聚合rss(4 种样式)、hacker-news、lobsters、reddit、videos(YouTube 频道/播放列表)、twitch-channels、twitch-top-games
信息速览clock(多时区)、calendar、weather(open-meteo 数据)、markets(Yahoo Finance 行情 + 21 日走势)、releases(GitHub/GitLab/Codeberg/Docker Hub 发版追踪)、change-detection(网页变更监控)
运维监控monitor(站点可达性 + 响应耗时)、docker-containers(读 docker.sock 显示容器状态)、server-stats(本机/远程 CPU、内存、磁盘、温度)、dns-stats(AdGuard Home/Pi-hole/Technitium 拦截统计)、repository(仓库 PR/Issue/Commit 概览)
导航与效率bookmarks(分组链接)、search(聚合搜索框 + Bangs 快捷词)、to-do(浏览器本地存储待办)
布局与扩展group(多 widget 转 tab)、split-column(全宽栏内再分栏,最多 5 列)、custom-api、extension、iframe、html

所有 widget 共享 5 个属性:type(必填)、title、title-url、hide-header、cache、css-class;widget 加载失败会在标题旁显示红点提示。布局层用 pages(多页签)→ columns(每页最多 3 列,small 固定 300px + full 弹性,必须 1~2 个 full)→ widgets 三级结构组织。

4.2 主题与外观

  • 主题用 HSL 色值定义(背景/主色/正向色/负向色/对比度乘数/饱和度乘数),内置多套预设主题可一键切换,页面右上角自带主题选择器(可用 disable-picker 禁用);支持 presets 自定义预设、custom-css-file 注入自定义 CSS(每个 widget 自带 widget-type-<name> 类便于精确定位)(来源:configuration.md Theme 节)。
  • 品牌可换:logo、favicon、应用名、页脚均可通过 branding 属性覆盖。
  • 移动端优化是官方卖点之一(专用 mobile header、栏位自动折叠为单列)。

4.3 认证与安全

  • 内置认证:顶层 auth 配置声明用户名/密码;密码支持 bcrypt 哈希落盘(password:hash 命令生成);会话用随机 secret-key 签名(secret:make 命令生成)。
  • 防爆破:5 分钟内连续失败 5 次自动封禁来源 IP;反代场景须设 server.proxied: true 以从 X-Forwarded-For 取真实 IP。
  • 默认无认证:不配 auth 时仪表盘对能访问到端口的所有人开放,内网直用、公网部署必须配置。

4.4 运维特性

  • 配置即运维:config:validate 校验配置、config:print 展开全部 include 输出最终生效配置、diagnose 一键体检(版本、Go 版本、平台、各数据源连通性)。
  • 密码与密钥工具:password:hash、secret:make 内置。
  • 传感器与挂载点:sensors:print 列出可用温度传感器(供 server-stats 的 cpu-temp-sensor 用)、mountpoint:info 查看挂载点信息。
  • 远程监控代理:跨机 server-stats 需在被监控机上跑 glanceapp/agent(官方仓库,开发中)。

五、快速开始(最小可用示例)

以下为官方 README「Docker compose manual」给出的最小路径(来源:GitHub README,查询日期 2026-10-25;逐条实测与完整部署流程见本专栏部署篇):

第 1 步:编写 docker-compose.yml:

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

第 2 步:下载预配置模板(官方维护的示例配置,含 RSS/HN/Reddit/天气/行情等一组即开即用的 widget):

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

第 3 步:启动并访问:

docker compose up -d

完成后浏览器访问 http://服务器IP:8080 即见仪表盘;改 config/glance.yml 保存即自动生效。若想不读配置文档直接要一份成品,也可用官方目录模板:

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(首页 widget)、config/glance.yml(主题与页面)、.env、assets/user.css 五件套,改完同样 docker compose up -d。

六、适用场景与限制

6.1 适用场景

  1. 家庭实验室/个人自托管统一起始页:十几个自托管服务(相册、下载器、面板、监控)的状态与入口聚合到一页,browser 主页一开全知道。
  2. 信息流聚合阅读页:RSS、Hacker News、Reddit、YouTube 频道、Twitch 直播状态组合成一个「每日晨报」页,服务端抓取缓存、刷新即最新。
  3. 轻量运维状态墙:monitor 看服务可达性、docker-containers 看容器状态、server-stats 看本机资源、releases 盯自部署项目的发版,替代重型监控大屏的「一眼巡检」职能。
  4. 团队/家庭公共信息板:天气、日历、待办、行情、DNS 拦截统计拼一块挂在客厅屏幕或nas面板上。

6.2 资源参考

  • 官方 README 口径:低内存占用、极少依赖、单 <20MB 二进制与同样小的 Docker 镜像、未缓存页面通常 1 秒内加载(取决于网速与 widget 数量)。Go 单进程无数据库,属「百兆级内存」的轻量形态。
  • 每次页面加载会对未命中的 widget 发起外部请求,widget 数量多时建议合理设置 cache 降低对上游 API 的压力(GitHub API 匿名限额 60 次/小时,releases/repository widget 支持 token 提升)。

6.3 限制(评估前必须知道)

  1. 无自动刷新:数据只在页面加载时更新,官方 FAQ 明确不支持后台轮询——要「实时监控大屏」请选 Uptime Kuma/Grafana 这类专业工具。
  2. 单用户倾向:无多用户体系、无权限分级;认证只有「共享口令」级,面板布局是全局一份。
  3. 0.x 版本号:未到 1.0,跨版本偶有配置项废弃(如 calendar-legacy 已标记 deprecated 待移除),升级需读 Release Notes。
  4. AGPL-3.0 传染性:二次开发后对外提供网络服务须开源修改。
  5. 部分 widget 依赖外部服务可达性:Reddit 匿名 API 拒绝 VPS IP(需注册应用走 app-auth 或代理);Twitch、行情、天气等均需服务器能直连对应 API——网络受限环境需要自行评估连通性。

七、同类选型对比

7.1 竞品对照表

以下星数均来自 shields.io github/stars 徽章实查(查询日期 2026-10-25);许可来自 shields.io github/license 徽章;定性维度来自各项目官方 README/文档站的定位描述(同日期实查):

维度Glance v0.8.7DashyhomepageHomarrHeimdall
GitHub Stars约 38k约 27k约 33k约 7.2k约 9.4k
许可证AGPL-3.0MITGPL-3.0MITMIT
技术栈Go 单二进制 + 原生 JSVue SPANext.js (React)React SPA + Node 后端PHP (Laravel)
配置方式纯 YAML(声明式、可 $include、可热重载)YAML + 在线编辑器混合YAML(声明式)在线拖拽图形化编辑Web 界面点击添加
核心取向信息流聚合(RSS/行情/监控内容直接上屏)应用导航 + 丰富小组件 + 主题市场应用导航 + 小组件 + 服务发现在线可视化编辑、多用户管理应用书签导航(最简)
内置认证有(口令 + bcrypt + 防爆破封禁)有(多用户 + SSO 支持)有(多用户)有(多用户 + OIDC)有(基础登录)
数据持久化无(配置即状态,todo 存浏览器)需要(体积较大)需要需要(数据库)需要(数据库)
Docker 镜像拉取量约 9.6M—约 2.3M约 80k—
二进制部署有(Go 单文件,多平台)无(Node 构建)无(Node 构建)无无(PHP 应用)
移动端体验官方重点优化(专用布局)良好良好良好一般
上手成本低(一份 YAML 即成)中(功能多配置面广)低中(YAML + k8s 服务发现加分项)低(图形化但部署重)最低

关键差异解读:五者不是严格同位竞争——Heimdall 是最纯粹的「应用书签页」;Homarr 强在在线图形化编辑与多用户管理,但部署最重;homepage 与 Glance 同属「YAML 声明式」流派,homepage 的差异化在 k8s/服务发现集成,Glance 的差异化在信息流聚合的深度(RSS 4 种样式、行情走势、发版追踪、自定义 API 模板都是同类中最完整的)与零持久化的部署极简性。

7.2 选型建议(「如果…则…」)

  • 如果想让起始页「直接显示内容」(新闻、行情、服务状态)而不是一排图标 → Glance。
  • 如果主要诉求是给一堆自托管应用做一个好看的导航页、偶尔看点小组件 → homepage(YAML 党)或 Dashy(要主题市场与在线编辑)。
  • 如果要图形化拖拽编辑、多用户各管各的面板 → Homarr。
  • 如果只想要最简单的应用书签页、越省心越好 → Heimdall。
  • 如果在 k8s 环境且想要自动服务发现 → homepage。
  • 如果 AGPL 传染性不可接受 → 改选 MIT 的 Dashy/Homarr/Heimdall(homepage 为 GPL-3.0,同样注意合规)。
  • 如果必须二进制裸跑(无 Node/PHP 运行时) → 只有 Glance 提供 Go 单文件形态。

八、参考链接