还在为信息爆炸的时代,每天辗转于各种App和网站之间获取碎片化信息而烦恼吗?想不想拥有一个属于自己的、能够将所有关注动态一网打尽的“情报中心”?今天,就为大家介绍一款能帮你实现这个愿望的开源神器——Glance!
Glance是一个自托管的仪表盘(Dashboard)项目,它的核心理念就是**“一目了然”(What if you could see everything at a... Glance)**。它能将你关心的各种信息源整合到同一个界面,让你无需频繁切换,即可轻松掌握所有动态。

想象一下,清晨醒来,打开你的Glance仪表盘,RSS订阅的新闻、关注的Subreddit热帖、Hacker News的最新讨论、今日天气预报、喜爱的YouTube频道更新、Twitch主播是否开播、关心的股票市场行情、自家Docker容器的运行状态,甚至是服务器的实时统计数据……所有这一切,都清晰地呈现在你眼前。是不是感觉效率瞬间提升,焦虑感大大降低?
告别信息焦虑,拥抱一目了然的核心功能
Glance之所以能够成为你的信息聚合利器,离不开其强大而灵活的功能特性:
-
1. 丰富多样的小组件 (Various widgets):
- • RSS feeds:轻松订阅各大新闻网站、博客、公众号(部分支持RSS输出)的内容,打造个性化资讯流。
- • Subreddit posts:实时追踪你感兴趣的Reddit板块,不错过任何热门讨论和新鲜事。
- • Hacker News posts:科技爱好者必备,第一时间掌握前沿技术动态和深度讨论。
- • Weather forecasts:直观显示指定地点的天气情况,为你的出行和生活提供参考。
- • YouTube channel uploads:订阅你喜欢的YouTuber,新视频更新即时知晓。
- • Twitch channels:关注的游戏主播开播了?Glance会告诉你。
- • Market prices:追踪股票、加密货币等市场价格波动。
- • Docker containers status:对于自托管爱好者和开发者而言,能够直接在仪表盘监控Docker容器状态无疑非常实用。
- • Server stats:了解你的服务器负载、存储等关键信息。
- • Custom widgets:更棒的是,Glance还支持自定义小组件,你可以通过iframe、HTML、API等方式接入更多类型的信息源。
- • 还有更多小组件等待你去探索和配置!
-
2. 极致性能,轻盈如燕 (Fast and lightweight):
- • 低内存占用:对服务器资源要求极低,即使是小型设备也能流畅运行。
- • 依赖极少:减少了潜在的冲突和安全风险。
- • 极简原生JS:保证了前端加载速度和性能。
- • 小巧的二进制文件/Docker镜像:单个可执行文件不到20MB,支持多种操作系统和架构;Docker镜像同样保持了极小的体积。
- • 快速加载:在网络状况良好且小组件数量适中的情况下,未缓存的页面通常能在1秒内加载完成。
-
3. 深度定制,随心所欲 (Tons of customizability):
- • 多种布局:根据你的屏幕大小和信息优先级,调整仪表盘的列数和排布。
- • 无限页面/标签页:你可以创建任意数量的页面或标签页,对不同类别的信息进行分组管理。
- • 丰富的小组件配置选项:每个小组件都提供了大量的配置项,例如RSS源的显示条数、折叠阈值、缓存时间等。
- • 部分小组件支持多种显示样式。
- • 自定义CSS:如果你懂CSS,完全可以打造出独一无二的视觉风格。
-
4. 移动优先,随时相伴 (Optimized for mobile devices):
Glance深知你希望随时随地都能访问自己的信息中心,因此对移动设备进行了专门优化,在手机或平板上也能获得良好的浏览体验。
-
5. 主题随换,颜值在线 (Themeable):
你可以通过调整几个参数轻松创建自己的主题,或者从社区提供的现有主题中选择一款你喜欢的。让你的仪表盘不仅实用,更要好看!
配置你的专属仪表盘
Glance的配置完全通过YAML文件进行,这种格式简洁易懂,上手非常快。你可以定义页面的布局、添加和配置各种小组件。想知道如何玩转布局、添加更多页面以及配置小组件的详细信息,可以查阅官方的配置文档。
下面是一个配置文件的示例预览,让你感受一下它的简洁与强大:
pages:
- name: Home # 定义一个名为 Home 的页面
columns: # 定义页面的列布局
- size: small # 第一列,尺寸为 small
widgets: # 该列下的小组件
- type: calendar # 日历小组件
first-day-of-week: monday # 设置周一为每周第一天
- type: rss # RSS 订阅小组件
limit: 10 # 最多显示10条
collapse-after: 3 # 超过3条则折叠
cache: 12h # 缓存12小时
feeds: # 订阅源列表
- url: https://selfh.st/rss/
title: selfh.st # 自定义标题
limit: 4 # 此特定源最多显示4条
- url: https://ciechanow.ski/atom.xml
- url: https://www.joshwcomeau.com/rss.xml
title: Josh Comeau
- url: https://samwho.dev/rss.xml
- url: https://ishadeed.com/feed.xml
title: Ahmad Shadeed
- type: twitch-channels # Twitch 频道小组件
channels:
- theprimeagen
- j_blow
- piratesoftware
- cohhcarnage
- christitustech
- EJ_SA
- size: full # 第二列,尺寸为 full
widgets:
- type: group # 小组件分组
widgets:
- type: hacker-news
- type: lobsters
- type: videos # YouTube 视频小组件
channels:
- UCXuqSBlHAE6Xw-yeJA0Tunw # Linus Tech Tips
- UCR-DXc1voovS8nhAvccRZhg # Jeff Geerling
- UCsBjURrPoezykLs9EqgamOA # Fireship
- UCBJycsmduvYEL83R_U4JriQ # Marques Brownlee
- UCHnyfMqiRRG1u-2MsSQLbXA # Veritasium
- type: group
widgets:
- type: reddit
subreddit: technology
show-thumbnails: true # 显示缩略图
- type: reddit
subreddit: selfhosted
show-thumbnails: true
- size: small # 第三列,尺寸为 small
widgets:
- type: weather # 天气小组件
location: London, United Kingdom # 地点
units: metric # 单位(摄氏度)
hour-format: 12h # 12小时制
- type: markets # 市场行情小组件
markets:
- symbol: SPY
name: S&P 500
- symbol: BTC-USD
name: Bitcoin
- symbol: NVDA
name: NVIDIA
- symbol: AAPL
name: Apple
- symbol: MSFT
name: Microsoft
- type: releases # Github Release 小组件
cache: 1d # 缓存1天
repositories:
- glanceapp/glance
- go-gitea/gitea
- immich-app/immich
- syncthing/syncthing
通过这个例子,你可以看到,配置项非常直观。你可以定义页面名称、列的宽度(small, full等),然后在每一列中添加不同类型的小组件,并对它们进行精细化的参数设置。
轻松部署,快速上手
Glance提供了多种安装方式,其中最推荐的是使用Docker Compose。
Docker Compose 配合预设目录结构 (推荐)
官方推荐这种方式,它能帮你快速搭建好Glance所需的目录结构和基础配置文件。
- 1. 创建名为
glance的新目录,并下载模板文件:mkdir glance && cd glance && curl -sL https://github.com/glanceapp/docker-compose-template/archive/refs/heads/main.tar.gz | tar -xzf - --strip-components 2这条命令会创建一个glance目录,并在其中解压所需的模板文件结构。 - 2. 根据你的需求编辑以下文件:
- •
docker-compose.yml: 配置端口、数据卷等Docker相关设置。 - •
config/home.yml: 配置主页的小组件和布局。 - •
config/glance.yml: 如果你想更改主题或添加更多页面,可以编辑此文件。
- •
- 3. 你可能还想编辑的其他文件:
- •
.env: 配置环境变量,这些变量可以在配置文件中被引用。 - •
assets/user.css: 添加你自己的CSS样式。
- •
- 4. 一切就绪后,启动服务:```
docker compose up -d
- 5. 如果遇到问题,可以通过以下命令查看日志:```
docker compose logs
手动配置 Docker Compose
如果你更喜欢手动控制,可以这样做:
- 1. 创建一个
docker-compose.yml文件,内容如下:``` services: glance: container_name: glance image: glanceapp/glance restart: unless-stopped volumes: - ./config:/app/config # 将本地的config目录映射到容器内 ports: - 8080:8080 # 将容器的8080端口映射到主机的8080端口 - 2. 创建一个名为
config的目录,并下载示例glance.yml文件到其中:``` mkdir config && wget -O config/glance.yml raw.githubusercontent.com/glanceapp/g… - 3. 根据你的喜好编辑
glance.yml文件,然后启动服务:``` docker compose up -d - 4. 查看日志:```
docker logs glance
手动二进制安装
Glance也提供了预编译的二进制文件,支持Linux、Windows和macOS(x86, x86_64, ARM, ARM64架构)。
- • Linux:
访问最新发布页面下载对应的二进制文件。你可以将其放置在例如/opt/glance/目录下,并通过systemd服务使其随系统启动。默认情况下,二进制文件会查找同目录下的glance.yml。你可以使用--config参数指定配置文件路径:/opt/glance/glance --config /etc/glance.yml获取初始配置文件模板:``` wget raw.githubusercontent.com/glanceapp/g… - • Windows:
从最新发布页面下载并解压可执行文件(通常是名为glance-windows-amd64.zip的文件,如果你的系统是64位的话),将其放置在你选择的文件夹中。然后在同一文件夹下创建一个名为glance.yml的文本文件,并将这里的内容粘贴进去。之后,你应该就能运行可执行文件,并通过浏览器访问http://localhost:8080来查看仪表盘了。
其他安装渠道
Glance还可以通过以下第三方渠道安装:
- • Proxmox VE Helper Script
- • NixOS package
- • Coolify.io
常见问题与使用技巧 (Common issues & FAQ)
-
• 请求超时 (Requests timing out)
最常见的原因是使用了Pi-Hole、AdGuard Home或其他广告拦截DNS服务,它们默认的请求速率限制较低。根据页面中小组件的数量,很容易超出这个限制。解决方法是在你的DNS服务设置中提高速率限制。
如果使用Podman,在极少数情况下,超时可能是由未知问题引起的,此时可以尝试在docker-compose.yml文件底部添加以下内容解决:``` networks: podman: external: true -
• 市场、书签或其他小组件布局错乱 (Broken layout for markets, bookmarks or other widgets)
这几乎总是由浏览器扩展程序Dark Reader引起的。解决方法是为你托管Glance的域名禁用暗黑模式。 -
•
cannot unmarshal !!map into []glance.page错误
最常见的原因是在glance.yml中有一个pages键,然后在你包含的某个页面配置文件(如home.yml)的顶层又有一个pages键。解决方法是从你包含的页面配置文件顶部移除pages键。 -
• 页面上的信息会自动更新吗?
不,需要刷新页面才能更新信息。一些在逻辑上需要动态更新的内容(如时钟小组件和相对时间显示)会自动更新。 -
• 小组件多久更新一次?
Glance不会在后台定期发起请求。信息仅在加载页面时获取,然后进行缓存。每个小组件的默认缓存生命周期不同,并且可以配置。 -
• 我可以创建自己的小组件吗?
是的,有多种方式可以创建自定义小组件:- •
iframewidget: 允许你嵌入来自其他网站的内容。 - •
htmlwidget: 允许你插入自己的静态HTML。 - •
extensionwidget: 从一个URL获取HTML内容。 - •
custom-apiwidget: 从一个URL获取JSON数据,并使用自定义HTML模板进行渲染。
- •
-
• 我可以更改小组件的标题吗?
是的,所有小组件的标题都可以通过在其配置中指定title属性来更改:``` - type: rss title: 我的自定义RSS标题- type: markets title: 我的自定义市场行情标题
- type: videos title: 我关注的视频更新
# 其他所有小组件依此类推...
同类项目概览
在自托管仪表盘和信息聚合领域,除了Glance,还有一些其他优秀的项目,它们各有侧重,可以满足不同的需求:
- 1. Homer Dashboard (homer-dashboard/homer):
- • 特点:Homer是一个非常流行的静态HTML/JS仪表盘,主要用于组织和快速访问你的应用程序和服务。它配置简单,通过一个YAML文件即可定义所有链接和分组。
- • 与Glance对比:Homer更侧重于“应用启动器”和“书签导航”,而Glance则专注于聚合和展示来自不同源的动态“信息流”。Homer本身不主动获取和展示内容,而是提供链接。
- 2. Heimdall Application Dashboard (linuxserver/Heimdall):
- • 特点:与Homer类似,Heimdall也是一个专注于应用程序链接的仪表盘。它提供了更美观的界面和一些基础的集成功能,例如可以显示部分应用的API信息。
- • 与Glance对比:Heimdall同样偏向于应用启动器,虽然比Homer功能稍多一些,但在信息聚合展示方面不如Glance灵活和强大。
- 3. Organizr (causefx/Organizr):
- • 特点:Organizr是一个功能更为全面的HTPC/Homelab管理系统。它支持标签页,可以将你的各种Web服务嵌入到其界面中,并提供用户管理、SSO等高级功能。
- • 与Glance对比:Organizr更像一个“Homelab门户”或“统一入口”,强调服务的整合和管理,而Glance则是一个轻量级的、专注于信息“概览”的仪表盘。Organizr相对更重,配置也更复杂。
- 4. Homepage (gethomepage/homepage):
- • 特点:Homepage是近年来非常受欢迎的一款仪表盘,通过YAML配置,支持与众多服务的API集成(如Plex, Pi-hole, Radarr等),可以直接显示这些服务的状态或数据。它也支持Docker集成,可以发现并展示容器信息。
- • 与Glance对比:Homepage在服务状态展示和Docker集成方面非常出色,更像一个“服务监控与启动面板”。Glance则在聚合外部信息源(如RSS、社交媒体、新闻)方面提供了更多专门的小组件类型,更侧重于“内容聚合”。两者在功能上有所重叠,但侧重点不同。
- 5. FreshRSS / Tiny Tiny RSS (TT-RSS):
- • 特点:这两者都是非常强大的开源RSS阅读器。它们提供了完整的RSS订阅管理、文章阅读、过滤、标签等功能。
- • 与Glance对比:FreshRSS和TT-RSS专注于RSS这一特定信息源,并提供深度管理。Glance的RSS小组件是其众多信息源中的一种,提供的是“概览”而非深度管理。如果你的核心需求是RSS阅读,那么FreshRSS/TT-RSS更合适;如果希望将RSS作为仪表盘的一部分信息,Glance则更方便。
总而言之,Glance以其轻量、高度可定制和专注于信息聚合的特性,在众多仪表盘项目中独树一帜。如果你厌倦了在无数标签页和App之间来回切换,渴望拥有一个能让你“一目了然”掌握所有关注动态的个人中心,那么Glance绝对值得你一试!自己动手,打造一个专属于你的高效信息聚合平台吧!