Glance 是一个用 Go 写的自托管首页,把时钟与日历、订阅、常用链接拼到一屏里,替代浏览器里那一排书签。整站只有一个可执行文件,配置写在一个 YAML 里。

6.5 MB 的 zip,解出 16 MB 主程序

glance-windows-amd64.zip   6,511,002 字节
解压后 glance.exe         16,094,208 字节
启动命令                  glance.exe --config glance.yml
监听                      127.0.0.1:8091
从执行到 HTTP 200          0.68 秒
常驻内存(空跑 4 秒)       20,960 K

它没有数据库,页面在启动时按配置渲染,改完 YAML 重启就生效。第二遍启动 0.61 秒,差别在文件缓存。

页面由 pages / columns / widgets 三层搭出来

配置分三层写:先列页面,再分列,最后往里放组件。下面这份配置用到了时钟与日历、书签三种组件。

server:
  host: 127.0.0.1
  port: 8091
pages:
  - name: 首页
    columns:
      - size: small
        widgets:
          - type: clock
            hour-format: 24h
          - type: calendar
      - size: full
        widgets:
          - type: bookmarks
组件渲染结果
clock21 October / 2026 / 20:56 / Wednesday 四行
calendarOctober 2026 月历,当天 21 高亮,可翻月
bookmarks按组排列的链接,每组一个标题

列宽只有 small 与 full 两档,多列按比例挤,不做自由拖拽布局。

页面顶部会按 pages 生成标签,配一个页面就只显示「首页」一项。想分「工作」「娱乐」两页,就在 pages 下面并列写两段,标签自动出来,不用改前端。每个页面有自己的一套列与组件,互不影响。

书签组支持给每组单独设颜色,颜色写成三个 0 到 255 的数字,空格分开,比如 color: 240 120 60 是橙色。不写颜色就用主题默认值,深浅色主题都会自动适配。

书签的字段名是 title,不是 name

这一条踩了两次。按直觉写 name: 时页面不报错,但书签只剩下箭头图标,文字一个都不显示。

links:
  - name: 实测库首页          # 渲染为空,只有箭头
    url: https://shiceku.com
  - title: 实测库首页         # 正常显示
    url: https://shiceku.com

换回 title 之后,三组链接都正常,分别是实测库首页、Motrix 实测、服务器面板。配置里不同组件的必填字段不统一,写之前最好对着官方示例抄。

配置写错会直接拒绝启动

YAML 缩进错一格,进程不会带着残缺页面跑起来,而是在控制台报错并退出。

2026/10/21 20:53:20 Config has errors: yaml: line 3: mapping values are not allowed in this context

这种失败方式比「页面少一块但你看不出来」好排查。代价是改配置必须先停服务,重启才能看到效果。

和浏览器自带的起始页比,它多出来的部分是把内容放在自己的服务器上:换一台电脑、换一个浏览器,打开同一个地址看到的还是同一份布局。代价是这份布局要自己写 YAML,不写就没有任何内容,页面会空着。

配置里没有账号体系,谁访问到 8091 端口谁就能看。要放到公网,得在前面套一层反向代理加访问控制,或者只在局域网里用。

适合谁用

仓库 37,559 星,Go 编写,MIT 许可。它把自己定位成「自托管起始页」,替代的是浏览器新标签页和桌面上那排书签。

场景结论理由
家里服务器入口页合适一页放面板与文档、常用站点
要拖拽排版不合适只有两档列宽,布局靠 YAML
要可视化配置不合适没有设置页,全在文件里改
多设备同步看部署配置是文件,同步要自己解决

实测范围:Windows 10 22H2(10.0.19045.6466),Glance v0.8.7,Chrome 1280×820。RSS 与 YouTube 这类需要外网的组件没有验证。天气和行情也没有验证,都不作结论。