Repolode
adinhodovic

adinhodovic/compass

一个自托管的服务导航页,可从 Docker、Kubernetes、Tailscale 等来源自动发现并列出你的服务、仪表盘和文档。

Star
78
Fork
4
未关闭 Issue
3
最近提交
前天

这是什么?

Compass 是面向 homelab 和自托管环境的服务导航页。你不需要为每个服务手写卡片,只要在 YAML 配置中添加数据源,Compass 就会把该来源暴露的服务渲染到页面上。

支持的数据源包括 Docker、Kubernetes、Tailscale、Headscale、静态配置以及 JSON API。界面会展示各数据源的健康状态和刷新情况,并提供服务元数据、标签、面板和调试视图,支持搜索与筛选。

前端采用服务端渲染的 HTML,结合 HTMX、Alpine.js、Tailwind 和 daisyUI。可以通过 Docker 容器运行,也可以使用 Helm chart 部署到 Kubernetes。

核心功能

  • 01从 Docker、Kubernetes、Tailscale 和 Headscale 自动发现服务。
  • 02支持静态配置和 JSON API 数据源。
  • 03展示各数据源的健康状态和刷新情况。
  • 04提供搜索、筛选、标签和服务元数据。
  • 05提供 Docker 镜像和用于 Kubernetes 的 Helm chart。

适用场景

  • 在 homelab 中为分布在多台 Docker 主机上的服务构建统一入口。
  • 在一个页面中汇总团队内部 Kubernetes 服务及其链接。
  • 通过一个页面浏览 Tailscale 或 Headscale 网络中暴露的服务。

快速上手

  1. 1

    创建包含 Docker 数据源的 compass.yaml

  2. 2

    使用 Docker 运行 Compass 容器

    docker run --rm -p 8080:8080 --group-add $(getent group docker | cut -d: -f3) -v /var/run/docker.sock:/var/run/docker.sock:ro -v $PWD/compass.yaml:/etc/compass/compass.yaml:ro adinhodovic/compass:latest -c /etc/compass/compass.yaml
  3. 3

    若使用 Kubernetes,创建包含 Kubernetes 数据源的 compass.yaml

  4. 4

    使用 Helm 安装 Compass

    helm install compass oci://ghcr.io/adinhodovic/charts/compass -n compass --create-namespace --set-file config=compass.yaml

使用前须知

  • Docker 发现功能需要挂载 Docker 套接字,这会授予主机的敏感访问权限。
  • Kubernetes 发现功能依赖 Helm Chart 授予的集群内 RBAC 权限。

收录于专题

标签

常见问题

compass 是什么?
一个自托管的服务导航页,可从 Docker、Kubernetes、Tailscale 等来源自动发现并列出你的服务、仪表盘和文档。 Compass 是面向 homelab 和自托管环境的服务导航页。你不需要为每个服务手写卡片,只要在 YAML 配置中添加数据源,Compass 就会把该来源暴露的服务渲染到页面上。
compass 可以免费使用吗?用的什么许可证?
compass 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
compass 还在维护吗?
活跃维护中。compass 最近一次提交是在 2026年11月5日。
compass 适合用来做什么?
在 homelab 中为分布在多台 Docker 主机上的服务构建统一入口。 在一个页面中汇总团队内部 Kubernetes 服务及其链接。 通过一个页面浏览 Tailscale 或 Headscale 网络中暴露的服务。
compass 怎么安装和运行?
创建包含 Docker 数据源的 compass.yaml 使用 Docker 运行 Compass 容器: docker run --rm -p 8080:8080 --group-add $(getent group docker | cut -d: -f3) -v /var/run/docker.sock:/var/run/docker.sock:ro -v $PWD/compass.yaml:/etc/compass/compass.yaml:ro adinhodovic/compass:latest -c /etc/compass/compass.yaml 若使用 Kubernetes,创建包含 Kubernetes 数据源的 compass.yaml 使用 Helm 安装 Compass: helm install compass oci://ghcr.io/adinhodovic/charts/compass -n compass --create-namespace --set-file config=compass.yaml
在哪里获取 compass?
源代码和安装说明在 GitHub 上:https://github.com/adinhodovic/compass

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目