glanceapp/glance
GitHub: glanceapp/glance
Glance 是一个轻量级、高度可定制的自托管仪表盘应用,通过单一界面聚合 RSS、天气、股市、Docker 状态等多种信息源,帮助用户高效获取和管理分散在各处的重要数据。
Stars: 32526 | Forks: 1234

Glance
Install • Configuration • Discord • Sponsor
Community widgets • Preconfigured pages • Themes
一个轻量级、高度可定制的仪表盘,以
美观、流畅的界面显示你的订阅源
## 配置 配置通过 YAML 文件完成,若要了解更多关于布局工作原理、如何添加更多页面以及如何配置小部件的信息,请访问[配置文档](docs/configuration.md#configuring-glance)。
预览示例配置文件
``` pages: - name: Home columns: - size: small widgets: - type: calendar first-day-of-week: monday - type: rss limit: 10 collapse-after: 3 cache: 12h feeds: - url: https://selfh.st/rss/ title: selfh.st limit: 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 channels: - theprimeagen - j_blow - piratesoftware - cohhcarnage - christitustech - EJ_SA - size: full widgets: - type: group widgets: - type: hacker-news - type: lobsters - type: videos 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 widgets: - type: weather location: London, United Kingdom units: metric hour-format: 12h - 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 cache: 1d repositories: - glanceapp/glance - go-gitea/gitea - immich-app/immich - syncthing/syncthing ```
## 安装 选择以下方法之一:
使用提供的目录结构通过 Docker Compose 安装(推荐)
通过运行以下命令创建一个名为 `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 ``` *[点击此处查看将要创建的文件](https://github.com/glanceapp/docker-compose-template/tree/main/root)* 然后,根据需要编辑以下文件: * `docker-compose.yml` 以配置端口、卷和其他容器相关设置 * `config/home.yml` 以配置小部件或主页布局 * `config/glance.yml` 如果你想更改主题或添加更多页面
你可能想要编辑的其他文件
* `.env` 以配置在配置文件中可用的环境变量 * `assets/user.css` 以添加自定义 CSSDocker Compose 手动安装
创建一个包含以下内容的 `docker-compose.yml` 文件: ``` services: glance: container_name: glance image: glanceapp/glance restart: unless-stopped volumes: - ./config:/app/config ports: - 8080:8080 ``` 然后,创建一个名为 `config` 的新目录,并通过运行以下命令将示例起始 [`glance.yml`](https://github.com/glanceapp/glance/blob/main/docs/glance.yml) 文件下载到其中: ``` mkdir config && wget -O config/glance.yml https://raw.githubusercontent.com/glanceapp/glance/refs/heads/main/docs/glance.yml ``` 随意编辑 `glance.yml` 文件以满足你的需求,准备就绪后运行: ``` docker compose up -d ``` 如果遇到任何问题,可以通过运行以下命令查看日志: ``` docker logs glance ```
手动二进制安装
预编译的二进制文件适用于 Linux、Windows 和 macOS(x86、x86_64、ARM 和 ARM64 架构)。 ### Linux 访问[最新发布页面](https://github.com/glanceapp/glance/releases/latest)获取可用的二进制文件。你可以将二进制文件放在 `/opt/glance/` 中,并通过 [systemd 服务](https://linuxhandbook.com/create-systemd-services/)使其随服务器启动。默认情况下,运行二进制文件时,它会在其所在目录中查找 `glance.yml` 文件。要为配置文件指定不同的路径,请使用 `--config` 选项: ``` /opt/glance/glance --config /etc/glance.yml ``` 要获取配置文件的起始模板,请运行: ``` wget https://raw.githubusercontent.com/glanceapp/glance/refs/heads/main/docs/glance.yml ``` ### Windows 从[最新发布版本](https://github.com/glanceapp/glance/releases/latest)下载并解压可执行文件(如果你使用的是 64 位系统,很可能是名为 `glance-windows-amd64.zip` 的文件),并将其放置在你选择的文件夹中。然后,在同一文件夹中创建一个名为 `glance.yml` 的新文本文件,并将[此处](https://raw.githubusercontent.com/glanceapp/glance/refs/heads/main/docs/glance.yml)的内容粘贴到其中。之后你应该能够运行该可执行文件,并通过在浏览器中访问 `http://localhost:8080` 来访问仪表盘。
其他方式
Glance 也可以通过以下第三方渠道安装: * [Proxmox VE Helper Script](https://community-scripts.github.io/ProxmoxVE/scripts?id=glance) * [NixOS package](https://search.nixos.org/packages?channel=unstable&show=glance) * [Coolify.io](https://coolify.io/docs/services/glance/)
## 常见问题
请求超时
最常见的原因是使用了 Pi-Hole、AdGuard Home 或其他广告屏蔽 DNS 服务,这些服务默认有相当低的速率限制。根据单个页面中小部件的数量,很容易超过此限制。要解决此问题,请在 DNS 服务的设置中增加速率限制。 如果使用 Podman,在某些罕见情况下,超时可能是由未知问题引起的,在这种情况下,可以通过将以下内容添加到 `docker-compose.yml` 文件的底部来解决: ``` networks: podman: external: true ```市场、书签或其他小部件的布局错乱
这几乎总是由浏览器扩展 Dark Reader 引起的。要解决此问题,请为托管 Glance 的域禁用暗黑模式。cannot unmarshal !!map into []glance.page
最常见的原因是在 `glance.yml` 中有一个 `pages` 键,然后在你包含的某个页面中也有一个 `pages` 键。要解决此问题,请从你包含页面的顶部移除 `pages` 键。## 常见问答
页面上的信息会自动更新吗?
不会,需要刷新页面才能更新信息。在合理的情况下,有些东西确实会动态更新,比如时钟小部件和显示某事发生时间的相对时间。小部件多久更新一次?
不会在后台定期发出任何请求,信息仅在加载页面时获取,然后进行缓存。默认的缓存生命周期因小部件而异,并且可以进行配置。我可以创建自己的小部件吗?
是的,有多种方法可以创建自定义小部件: * `iframe` 小部件 - 允许你嵌入来自其他网站的内容 * `html` 小部件 - 允许你插入自己的静态 HTML * `extension` 小部件 - 从 URL 获取 HTML * `custom-api` 小部件 - 从 URL 获取 JSON 并使用自定义 HTML 进行渲染我可以更改小部件的标题吗?
是的,可以通过在小部件的配置中指定 `title` 属性来更改所有小部件的标题: ``` - type: rss title: My custom title - type: markets title: My custom title - type: videos title: My custom title # 以及所有 widget 等... ```## 功能请求 我们始终欢迎并提出新的功能建议,但请记住,其中一些可能超出了项目试图实现(或在合理能力范围内)的范围。如果你有新功能的想法并希望分享,可以在[此处](https://github.com/glanceapp/glance/issues/new?template=feature_request.yml)进行。 功能请求会被标记为以下之一: * [路线图](https://github.com/glanceapp/glance/labels/roadmap) - 将在未来的版本中实现 * [待办事项](https://github.com/glanceapp/glance/labels/backlog) - 未来可能会实现,但需要社区提供更多反馈或表现出兴趣 * [冷冻箱](https://github.com/glanceapp/glance/labels/icebox) - 目前不打算实现,因为它目前不符合项目的目标或能力,可能会在稍后重新评估
## 从源代码构建 选择以下方法之一:
使用 Go 构建二进制文件
要求:[Go](https://go.dev/dl/) >= v1.23 要为当前的操作系统和架构构建项目,请运行: ``` go build -o build/glance . ``` 要为特定的操作系统和架构构建,请运行: ``` GOOS=linux GOARCH=amd64 go build -o build/glance . ``` [*点击此处查看完整的 GOOS 和 GOARCH 组合列表*](https://go.dev/doc/install/source#:~:text=$GOOS%20and%20$GOARCH) 或者,如果你只想运行应用程序而不创建二进制文件,比如在测试更改时,你可以运行: ``` go run . ```
使用 Docker 构建项目和 Docker 镜像
要求:[Docker](https://docs.docker.com/engine/install/) 要仅使用 Docker 构建项目和镜像,请运行: *(将 `owner` 替换为你的名字或组织)* ``` docker build -t owner/glance:latest . ``` 如果你希望将镜像推送到仓库(默认为 Docker Hub),请运行: ``` docker push owner/glance:latest ```
## 贡献指南 * 在开发新功能之前,最好先提交功能请求并说明你希望自己实现它 * 请不要为[路线图][1]、[待办事项][2]或[冷冻箱][3]中的功能请求提交 PR * 如果你正在添加新功能或修复错误,请使用 `dev` 作为基础分支,否则请使用 `main` * 避免引入新的依赖项 * 避免进行向后不兼容的配置更改 * 避免引入新颜色或硬编码颜色,使用标准的 `primary`、`positive` 和 `negative` * 对于图标,在适用的情况下尽量使用 [heroicons](https://heroicons.com/) * 如果是与 UI 相关的更改,请尽可能提供截图 * 不要包含 `package.json`
[1] [2] [3]
[1] 该功能可能已经投入了开发工作,可能会与你的实现发生冲突 [2] 该功能的需求、实现或功能尚不明确 [3] 暂时没有添加该功能的计划## 致谢 感谢所有慷慨[赞助](https://github.com/sponsors/glanceapp)该项目的人,以及所有以任何方式做出贡献的人,无论是通过 PR、提交问题、在讨论区或 Discord 服务器中帮助他人、创建指南和工具,还是仅仅在社交媒体上提及 Glance。非常感谢你们的支持,这有助于项目的持续发展。
标签:Docker监控, EVTX分析, Go语言, Hacker News, Reddit, RSS阅读器, Twitch, YAML配置, YouTube订阅, 个人门户, 主题化, 信息聚合, 单二进制文件, 响应式设计, 天气, 定制化主页, 小组件, 市场行情, 开源, 数据可视化, 日志审计, 服务器状态, 看板, 移动端优化, 程序破解, 自托管仪表盘, 请求拦截, 轻量级应用