https://github.com/adinhodovic/compass
A landing page for your services, dashboards, and documents, discovered automatically from sources such as Docker, Kubernetes, and Tailscale.
https://github.com/adinhodovic/compass
docker dsahboard headscale homelab kubernetes landing-page self-hosted service-catalog service-discovery tailscale toolbox
Last synced: about 1 month ago
JSON representation
A landing page for your services, dashboards, and documents, discovered automatically from sources such as Docker, Kubernetes, and Tailscale.
- Host: GitHub
- URL: https://github.com/adinhodovic/compass
- Owner: adinhodovic
- License: apache-2.0
- Created: 2026-05-10T12:23:45.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2026-05-16T10:11:17.000Z (about 1 month ago)
- Last Synced: 2026-05-16T10:11:46.489Z (about 1 month ago)
- Topics: docker, dsahboard, headscale, homelab, kubernetes, landing-page, self-hosted, service-catalog, service-discovery, tailscale, toolbox
- Language: Go
- Homepage: https://adinhodovic.github.io/compass/
- Size: 2.7 MB
- Stars: 30
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
A landing page for your services, dashboards, and documents, discovered automatically from sources such as Docker, Kubernetes, and Tailscale.
Getting started
·
Docs
·
Demo
## Why Compass
Add a source and Compass renders what is exposed in a server-driven UI with source status, tags, metadata, and operator context. Search, filter, debug, and jump into services without maintaining a pile of hand-written cards.
- Docker, Kubernetes, Tailscale, Headscale, static config, and JSON API sources.
- Source health, refresh status, service metadata, panels, tags, and debug views.
- Server-rendered HTML with HTMX, Alpine.js, Tailwind, and daisyUI. No SPA runtime.
## Quick start
Docker source `compass.yaml`:
```yaml
organization:
name: Homelab
services:
sources:
- type: docker
name: local
```
```bash
# Add the host's docker GID so the non-root container user can read the socket. Alternatively use: tecnativa/docker-socket-proxy
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 source `compass.yaml`:
```yaml
organization:
name: Homelab
services:
sources:
- type: kubernetes
name: cluster # Helm grants in-cluster RBAC for discovery
kubernetes:
namespaces: []
```
```bash
helm install compass oci://ghcr.io/adinhodovic/charts/compass -n compass --create-namespace --set-file config=compass.yaml
```
See [Getting started](https://adinhodovic.github.io/compass/getting-started/) for a minimal config and source examples.