TL;DR Homepage ⭐ 30.5k [8] covers all six service types with the richest per-widget data [1]. Homarr ⭐ 4k [9] matches on four of six but dropped HTTP/ping and Uptime Kuma in its v1.x rewrite. Dashy ⭐ 25.3k [15] is strongest for HTTP/ping flexibility but has no Jellyfin widget and no Docker API access [16].
Coverage matrix
| Service | Homepage ⭐ 30.5k | Homarr ⭐ 4k | Dashy ⭐ 25.3k |
|---|---|---|---|
| Pi-hole | ✓ queries, blocked %, gravity [2] | ✓ summary + on/off toggle [11] | ✓ 3 widget types, v6 variants [16] |
| Proxmox | ✓ VMs, LXC, CPU, mem [3] | ✓ system health (PVE realm req.) [12] | ✓ node / VM / container list [16] |
| Uptime Kuma | ✓ via status-page slug [5] | ✗ planned, not in v1.x [14] | ✓ widget (JSON issues reported) [16] |
| Docker | ✓ socket, CPU / mem / net stats [6] | ✓ stats widget + start/stop [10] | ✗ HTTP status checks only [17] |
| Jellyfin | ✓ streams, library counts [4] | ✓ streams, recent media [13] | ✗ no widget [16] |
| HTTP/ping | ✓ ICMP ping + HTTP HEAD [7] | ✗ removed in v1.x [14] | ✓ codes, intervals, auth headers [17] |
Per-service notes
Pi-hole
All three dashboards support Pi-hole. Homepage shows total queries, blocked count and %, and gravity (domains on blocklist). Supports both v5 (default) and v6 — Pi-hole v6 changed its auth endpoint and default port to 8080, requiring version: 6 in the widget config [2].
Homarr splits this into two widgets: DNS Hole Summary (query stats) and DNS Hole Controls (toggle Pi-hole blocking on/off directly from the dashboard) [11].
Dashy provides three separate widget types: Pi-Hole Stats (summary numbers), Pi-Hole Queries (query history chart), Pi-Hole Recent Traffic (top domains). v6-compatible variants exist for all three [16].
Proxmox
Coverage is consistent across all three. Homepage reads the Proxmox API and shows running/total counts for QEMU VMs and LXC containers, plus CPU% and mem% — configurable per-node or cluster-wide. API token needs PVEAuditor role in api_token_id@pam!TokenID format [3].
Homarr’s Proxmox integration covers system health (VMs, LXC, CPU/mem). ⚠ Requires the Proxmox VE authentication server realm — Linux PAM auth does not work [12].
Dashy renders a node tree listing containers and VMs with per-item status dots [16].
Uptime Kuma
Uptime Kuma ⭐ 87.7k (Jun 2026) exposes no full REST API, which limits how dashboards can integrate it [20].
Homepage works around this via a status page slug: create a status page in Uptime Kuma, then set slug: <your-slug> in the widget config. Returns up/down/uptime/incident counts from that page — the status page is a mandatory intermediary [5].
Homarr v0.x (ajnart/homarr ⭐ 7.2k) had HTTP status checking that covered this use case. The v1.x rewrite (homarr-labs) removed it; re-integration is on the roadmap but absent as of mid-2026 [14]. Community workaround: homarr-iframes ⭐ 114 embeds Uptime Kuma data via iFrames in any dashboard [19].
Dashy ships both an uptime-kuma widget and an uptime-kuma-status-page widget, but some users report JSON parsing errors depending on the Uptime Kuma version [16].
Docker
Homepage connects via the Docker socket (or a socket proxy for least-privilege access) and shows container status natively. Clicking a container’s status badge expands per-container CPU, memory, and network stats. Auto-discovery from Docker labels is fully supported [6].
Homarr also mounts the Docker socket and provides a Docker Stats widget with per-container resource metrics. Unique to Homarr: you can start, stop, and restart containers directly from the dashboard [10].
Dashy has no Docker API integration. Service tiles get HTTP status indicators (response code + time), but there is no container-stat access or auto-discovery [17].
Jellyfin
Homepage integrates via Jellyfin API key and shows Now Playing sessions by default, with optional library count blocks (movies, series, episodes, songs), user info, and in-dashboard playback controls. ⚠ Jellyfin ≥ 10.12 requires version: 2 in the widget config [4].
Homarr provides an active streams widget and a recently added / upcoming releases widget [13].
Dashy has no Jellyfin widget — services can only be added as tiles with an HTTP status check [16].
HTTP / Ping
Homepage provides two per-service options: ping (ICMP, IPv4 only; may need iputils-ping on the container host) and siteMonitor (HTTP HEAD to a URL, shows response time in ms). Both render as colored status dots on service tiles [7].
Homarr v0.x had HTTP status checking; v1.x removed it and plans re-introduction [14].
Dashy is the most capable: HTTP status checks (response code + response time, online/offline), ICMP ping, configurable polling intervals in seconds, custom acceptable status codes, and request headers for auth-protected endpoints [17].
Decision criteria
Per [18], the three dashboards occupy distinct niches:
- Homepage — deepest widget data across all six types; YAML config-as-code; server-side rendering. Default pick if live metrics for every service type is the goal.
- Homarr — drag-and-drop UI, no YAML required. Covers Pi-hole / Proxmox / Docker / Jellyfin well. Wait on official HTTP/ping and Uptime Kuma support, or bridge with homarr-iframes.
- Dashy — richest HTTP/ping status monitoring; most visual customisation. Gaps in Jellyfin and Docker-native access make it a secondary choice if media-server or container metrics are a priority.