搜索你想找的开源项目

输入名称、用途或关键词,也可粘贴 GitHub 仓库链接

分享到微信

当前解读页的微信分享二维码

用微信扫一扫打开,点击右上角「···」分享给朋友或朋友圈。

手机上可截屏后,在微信扫一扫中从相册识别二维码。

bnlqn/overlook

运维与部署

只读的家庭实验室状态页,汇总你已在运行的检查引擎、服务器、应用数据和待办事项。

108
6
Go
MIT
创建于 5 天前

项目介绍

Overlook 是一个面向自建家庭实验室(homelab)的单页只读面板。它从你已经在用的工具中读取数据——检查引擎(Gatus、Uptime Kuma、Grafana、Prometheus/Alertmanager、Checkmate)、服务器(Proxmox VE、Beszel、Docker、NUT)、存储、网络设备(UniFi、AdGuard Home、Pi-hole)以及媒体和应用服务(Radarr、Sonarr、Jellyfin、Emby、通过 Tautulli 接入的 Plex、Immich、Seerr、Home Assistant、Paperless-ngx、Nextcloud 等),然后固定呈现四个区域:Servers、Network、Storage 和 Apps。每个区域显示运行状态(正常、降级或宕机)、最近 30 条检查结果、当天数据和本周的问题与事件。

设计目标是“不改变任何东西、不记住任何东西”:所有数据源都用 GET 请求读取,不使用数据库或数据卷,页面按需刷新,最多每 30 秒一次。它还会收集“待办”:来自 iCalendar 列表的到期事项、等待处理的 GitHub 更新、需要更换的电池、等待纳管的设备以及等待批准的请求——这些只是跳转到实际操作位置的链接,本身永远不会被判定为问题。布局效果可以参考在线演示。

快速使用

Overlook 以单个容器发布。在 compose.yaml 旁边为配置单独建一个目录和 .env:

overlook/
  overlook.yaml
compose.yaml
.env

最小 compose.yaml:

services:
  overlook:
    image: ghcr.io/bnlqn/overlook:0.4
    restart: unless-stopped
    ports:
      - "8080:8080"
    volumes:
      - ./overlook:/etc/overlook:ro
    env_file: .env
    environment:
      TZ: Europe/Brussels

以 Gatus 和 Proxmox 为例的最小 overlook/overlook.yaml:

sources:
  gatus:
    - url: http://gatus.example.com:8080
  proxmox:
    - url: https://pve.example.com:8006
      token: overlook@pve!overlook
      secret: ${PROXMOX_SECRET}
      ca: /etc/overlook/pve-root-ca.pem

apps:
  - name: Photos
    url: https://photos.example.com
    icon: immich.svg
    check: Photos

把密钥写入 .env(权限设为 600),例如 PROXMOX_SECRET=...,然后运行 docker compose up -d,打开该主机的 8080 端口。日志会说明 Overlook 正在读取哪些源,没有响应的源会在页面上标出。完整的带注释配置见 overlook.example.yaml;不用 Docker 时,可从 releases 获取发行版二进制。

配置与限制

YAML 在启动时一次性校验:出现未知键会直接停止容器,拼写错误不会悄然被忽略。配置中的每个 ${VAR} 都从环境变量解析,变量未设置同样会停止启动。配置目录以只读方式挂载,并且需要对 uid 65532 可读。TZ 决定“今天”从何时开始,影响当天数据。

Overlook 没有账号也没有登录:能打开页面的人就能看到全部内容、主机名和故障状态。应放在局域网、VPN 后面,或在反向代理层增加认证。各数据源应尽量使用只读或最小权限凭据,例如 Proxmox VE 的 PVEAuditor 角色、Grafana 的 Viewer 服务账号令牌、Beszel 的 readonly 用户。部分数据源只提供管理员级密钥(Radarr、Sonarr、Jellyfin 等),此时只读保证依赖 Overlook 只发送 GET 请求;Tautulli 则依靠固定白名单中的只读命令。Docker 不能直接读取宿主机 socket,必须通过 socket proxy 接入。NUT 的读数在网络上是未加密传输的。Plex 只能通过 Tautulli 读取。backrest/restic、Caddy、Deluge、Transmission、Synology DSM 等因无法满足上述读取方式,目前没有适配器。

遇到接入问题时,可查阅 Adapters 章节 了解每个源需要的准确凭据和地址,以及 贡献指南 了解如何添加适配器。项目采用 MIT 许可证。

HotRepo 点评

仓库目前有 106 个 Star 和 6 个 Fork;2026-11-02 的新项目记录显示,在约两小时的窗口内增加了 5 个 Star,尚无全语言日榜名次记录。项目仍处于早期阶段,但并非简单包装:README 记录了约二十多个适配器及各自的凭据要求,也明确写下了只读访问的架构决策。对读者最有参考价值的是,它把大量检查引擎和自托管应用放进一个固定布局,并且不向任何数据源写入,这在家庭实验室场景中意味着额外面板不会变成又一个需要维护的系统。

本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。