glance
开源轻量自托管仪表盘,聚合RSS、视频与系统状态
预览
详细介绍
一、Glance是什么
Glance采用现代化的Web交互方式实现自托管的仪表盘体验,可通过Docker一键部署,也支持二进制文件直接运行,后端为Go语言编写,前端为极简的原生JavaScript,配置通过YAML文件完成,数据缓存于内存中,运行环境支持Linux、macOS和Windows以及多种CPU架构(x86、ARM等)。项目在GitHub上已获得超过6,500颗Star和超过300个Fork,拥有100多位贡献者和数十个正式版本。值得注意的是,项目代码极其精简,单个二进制文件不足20MB,内存占用极低,依赖极少,未缓存页面通常在1秒内完成加载——这种“小而美”的工程风格,在动辄数百MB的容器化项目中显得尤为可贵。
Glance的运作机制与常见的重型仪表盘有本质区别。它不是需要常驻后台轮询的监控系统,而是一个按需加载、智能缓存的聚合层——信息仅在用户打开页面时获取,随后按可配置的时长缓存,不会在后台持续消耗资源。换言之,Glance是“信息的中转站”,而不是“数据的永久仓库”。用户可以通过YAML配置声明自己想要的页面布局、列宽、组件类型和数据源,Glance在每次页面加载时按需拉取最新内容并以优雅的界面呈现。
作为完全开源的免费产品,Glance采用MIT协议,没有遥测、没有订阅费、没有数据收集。用户可以选择完全离线运行(无需任何外部API),也可以接入各类公开或私有的数据源,所有配置和缓存都留在自己的服务器上。
二、Glance能做什么
Glance的核心能力可以精炼地概括为:聚、览、监、定、轻,围绕这五大维度提供了丰富且高度可配置的功能,覆盖从信息消费到系统监控的多个场景,具体包括:
Feed聚合(信息订阅) ——把散落的信息源收拢到一个页面。Glance支持RSS/Atom订阅源、Subreddit帖子、Hacker News热榜、Lobsters等社区内容。用户可以像使用Feedly一样订阅自己关注的技术博客、新闻站点,所有更新在同一个页面中按时间线呈现。每个Feed可单独配置抓取数量(limit)、折叠阈值(collapse-after)和缓存时长(cache),粒度控制到每一路源。
视频与直播追踪(内容消费) ——不再错过创作者的更新。Glance支持YouTube频道的最新视频列表和Twitch频道的在线状态监控。用户可以添加自己关注的科技UP主(如Linus Tech Tips、Jeff Geerling、Fireship、Marques Brownlee等),所有新视频和正在直播的频道一目了然,无需打开YouTube或Twitch主页被算法推荐分散注意力。
实时数据看板(信息监控) ——天气、行情、发布动态尽在掌握。Glance提供了天气预报组件(支持公制/英制单位)、金融市场行情组件(支持股票、加密货币等)以及GitHub仓库最新Release监控。用户可以将自己关注的仓库(如glanceapp/glance、go-gitea/gitea、immich-app/immich等)加入监控列表,新版本发布时自动出现在仪表盘上。
系统状态监控(运维助手) ——服务器健康一目了然。Glance支持Docker容器状态监控和服务器基础统计信息展示。对于自托管爱好者来说,这意味着可以在同一个仪表盘上同时看到“RSS有没有新文章”“服务器CPU负载如何”“Docker容器是否都在正常运行”——所有运维信息聚合在同一个页面。
自定义扩展(无限可能) ——想加什么自己写。Glance提供了多种自定义扩展方式:iframe组件可嵌入任何外部网页,html组件可插入自定义静态HTML,extension组件可从指定URL抓取HTML内容,custom-api组件可从任意JSON接口取数并用自定义模板渲染。这意味着Glance的能力边界由用户自己定义——想接入公司的内部API?想显示自己写的定时任务状态?都可以通过几行配置实现。
多页面与多布局(信息组织) ——按主题分类,按需切换。Glance支持创建任意数量的页面/标签页,每个页面可自由配置列数(如small/full尺寸列)和组件排列。用户可以为“技术资讯”“系统监控”“金融市场”等不同场景创建独立页面,一键切换,信息不再混成一团。
移动端优化(随时随地) ——响应式设计,手机浏览同样舒适。Glance从一开始就考虑了移动设备的使用场景,无论是通勤时刷RSS还是远程查看服务器状态,体验都经过打磨。
主题系统(视觉定制) ——轻松创建自己的主题,或从已有主题中选择。配色方案通过调整几个数值即可完成,也支持自定义CSS实现更精细的样式控制。
三、Glance适合谁用
Glance的功能特性使其适配各类有信息聚合需求、自托管能力和轻量级偏好的个人用户,核心聚焦那些希望“把所有需要看的东西放在一个地方”又不愿意为每个信息源单独打开一个网站或App的人群,主要涵盖以下几类:
自托管爱好者和HomeLab玩家 ——已经在家中或VPS上运行了多个服务(NAS、媒体服务器、监控系统等),需要一个统一的入口来查看所有服务的状态和最新动态。Glance可以同时展示Docker容器状态、服务器负载、RSS订阅更新和GitHub Release通知,成为HomeLab的“控制中心”。
技术内容消费者与开发者 ——日常需要追踪多个技术博客、Hacker News、Reddit技术板块、YouTube科技频道的信息,但不想被社交媒体的算法推荐和广告分散注意力。Glance将所有这些信息源聚合在一个干净、无广告的页面中,按时间线呈现,消费效率大幅提升。
极简主义效率追求者 ——不想每次打开浏览器都面对空白页或充满干扰的默认起始页。Glance可以成为浏览器的默认起始页,每次打开都是自己定制好的信息看板——既实用又美观。
系统管理员与运维人员 ——需要快速查看服务器状态、Docker容器运行情况、关键服务的版本更新。Glance的轻量级监控能力让这些信息与日常资讯聚合在一起,无需单独登录监控平台。
RSS重度用户 ——仍然相信RSS是最好的信息获取方式,但不想使用臃肿的RSS阅读器或依赖第三方服务。Glance提供了一个自托管的、极轻量的RSS阅读体验,所有订阅数据由自己掌控。
对SaaS信息聚合工具不满的用户 ——市面上有Feedly、Inoreader等RSS服务,有Netlify Status等监控工具,但它们要么收费、要么有数据隐私顾虑、要么功能过于复杂。Glance提供了一个免费、自托管、隐私友好的替代方案。
低资源设备用户 ——在树莓派、旧电脑、轻量VPS上运行服务的用户,无法承受重型仪表盘的内存和CPU开销。Glance的单个二进制文件不足20MB、内存占用极低的设计,让它在资源受限的设备上也能流畅运行。
四、Glance的应用场景是什么
基于其核心功能与定位,Glance的应用场景主要围绕信息聚合消费、轻量级系统监控、个性化起始页,覆盖从个人极客到小型团队的多个场景,具体包括:
个人资讯中心场景 ——每天早上打开浏览器,Glance首页已经聚合了昨夜至今晨所有关注的信息源:技术博客的新文章、Hacker News的热门讨论、YouTube频道的新视频、自托管社区的热帖。用户在一个页面中完成信息扫描,决定哪些值得深入阅读,哪些只需浏览标题。相比逐一打开Twitter、YouTube、Reddit、Feedly,Glance将信息消费时间从“刷”变成了“览”。
HomeLab仪表盘场景 ——自托管爱好者通常在自己的服务器上运行着多个服务:媒体服务器(Jellyfin/Plex)、密码管理(Vaultwarden)、笔记(Trilium)、文件同步(Syncthing)等。Glance可以通过Docker容器状态组件监控这些服务的运行状态,同时展示系统负载、订阅的GitHub仓库是否有新版本发布。一个页面覆盖了“服务是否正常”和“有什么新东西”两个核心需求。
技术团队信息共享场景 ——小型技术团队可以将Glance部署为团队内部的信息看板,聚合团队关注的技术博客、竞品动态、社区讨论,以及内部服务的状态监控。每个成员打开同一个URL即可看到统一的信息视图,减少信息不对称。
创作者内容追踪场景 ——内容创作者可以把自己关注的同行、竞争对手、行业KOL的YouTube频道和Twitch直播加入Glance,第一时间了解行业动态和新内容发布,无需被平台算法牵着走。
金融市场监控场景 ——投资者可以将自己关注的股票、加密货币加入Glance的市场行情组件,在信息看板中同时看到“今天股市怎么样”和“技术社区在讨论什么”,将财经信息与行业资讯放在同一个决策上下文中。
低功耗设备信息终端场景 ——在树莓派或旧手机上运行Glance,连接一个小屏幕,作为家庭或办公室的公共信息终端——显示天气、新闻、服务器状态、日历等信息。Glance的轻量级特性使其非常适合这类“信息亭”场景。
浏览器起始页场景 ——将Glance设为浏览器的默认起始页,每次打开新标签页看到的不是空白或广告,而是自己定制的信息看板。这种“每次打开浏览器都在消费有价值信息”的习惯,是许多效率追求者的理想状态。
五、Glance为什么值得关注
Glance之所以值得关注,核心在于它将“信息聚合的主动权从平台手中夺回给用户”,实现了“轻量、可定制、自托管”的深度整合,同时具备独特的工程美学和社区意义,具体体现在以下几点:
从“被推荐”到“主动订阅”的信息消费范式转移。当前主流信息消费方式是被动的——YouTube推荐、Twitter算法、Reddit热门——用户消费的是平台想让你看到的内容。Glance反其道而行之:用户自己决定信息源,自己组织信息布局,自己控制刷新频率。每一次打开Glance,看到的都是用户主动选择的内容,没有算法干扰、没有广告插入、没有注意力绑架。Glance把“信息消费者”变回了“信息主人”。
极致的轻量化工程。在容器化应用动辄几百MB的今天,Glance的单个二进制文件不足20MB。它用Go语言编写,前端是极简的原生JavaScript,没有React/Vue等重型框架,没有package.json,没有node_modules。未缓存页面通常在1秒内完成加载。这种“少即是多”的工程哲学,在“加功能就是加依赖”的行业惯性中显得格外珍贵。Glance证明了:一个功能丰富的仪表盘,不需要牺牲性能和资源效率。
配置即代码,灵活到极致。Glance的所有配置通过YAML文件完成——页面结构、列宽、组件类型、数据源、缓存策略、主题配色,全部用文本文件描述。这意味着整个仪表盘可以像代码一样进行版本控制、备份和迁移。想增加一个新页面?复制粘贴几行YAML。想调整布局?修改列宽参数。想换主题?改几个数值。无需点击几百次UI,无需学习复杂的DSL,纯粹的声明式配置。
社区驱动的生态扩展。Glance不仅提供了丰富的内置组件,还通过custom-api、extension、iframe、html等多种方式支持用户自定义扩展。社区已经贡献了大量自定义组件和预配置页面模板。这种“核心轻量、生态无限”的设计思路,让Glance既能保持自身的简洁,又能满足千奇百怪的个性化需求。
跨平台与多架构支持。Glance的预编译二进制文件覆盖Linux、Windows、macOS三大平台,同时支持x86、x86_64、ARM、ARM64四种架构。无论是在树莓派上跑ARM版本,还是在Windows笔记本上跑amd64版本,抑或在macOS上跑ARM64版本,Glance都能原生运行,无需模拟或转译。配合Docker镜像,部署方式灵活到几乎“ anywhere”。
自托管生态的“胶水”价值。自托管社区最头疼的问题之一是如何把散落在各处的信息聚合起来——RSS阅读器管内容,监控系统管状态,起始页管导航,每个工具各管一摊。Glance用一个轻量级的仪表盘把这些碎片粘合在了一起。它不是要取代任何一个专业工具,而是给用户一个“看一眼就知道今天发生了什么”的统一入口。
现实挑战与生态成熟度。Glance并非没有短板。首先,信息不会自动刷新,需要用户手动刷新页面——这对实时性要求极高的监控场景可能不够用,但对信息消费场景来说反而是一种“按需加载、不浪费资源”的设计取舍。其次,配置完全通过YAML文件完成,对不熟悉文本配置的用户有一定学习门槛。再次,项目定位是“仪表盘”而非“完整应用”,因此不提供用户认证、多租户等企业级功能。最后,部分高级功能(如自定义API组件的模板语法)需要一定的技术能力才能充分利用。
但恰恰是这些“短板”构成了Glance在自托管生态中的独特位置:它不是给所有人的开箱即用产品,而是给愿意“自己动手、自己定制、自己掌控”的用户准备的。正如项目README中所言——“A self-hosted dashboard that puts all your feeds in one place”——它只做一件事,但把这件事做到了极致。
_1781751783456.png)
