Dashy: A Customizable Self-Hosted Homelab Dashboard
Dashy earns its homelab following by getting the boring part right: one YAML file, or the UI editor, describes your whole dashboard, and status checks turn a plain list of links into something that actually tells you when a service is down. The catch: setup takes real effort. Writing that first conf.yml and wiring up auth takes longer than clicking through a hosted alternative, but you end up owning the result outright.
What is Dashy?
Dashy is a self-hosted personal dashboard built in Vue for organizing links to every app in your homelab behind one searchable homepage. It's the homepage for your homelab, in the README's own words. It's configured through a single YAML file, or directly in the UI, and layers on status checks, widgets, icon packs, and themes on top of that link list.
Key Features of Dashy
- ✓Multiple pages, defined in YAML, so networking tools, work apps, and personal services can live on separate sub-pages instead of one long list.
- ✓Real-time status monitoring — HTTP checks for apps and services, ICMP ping checks for hosts, both able to run on the same item with a configurable polling interval.
- ✓Widgets that pull dynamic content from self-hosted services, plus documented support for writing your own widget.
- ✓Instant search with tab or arrow-key navigation, numeric hotkeys from 0 to 9 per item, and tag-based filtering.
- ✓Optional authentication — Keycloak single sign-on, or a basic-auth mode with SHA-256 hashed passwords, multiple users, and read-only guest access.
- ✓A UI color editor, several built-in themes, and support for custom CSS.
- ✓Icon options spanning Font Awesome, Simple Icons, Material Design icons, selfh.st/icons, auto-fetched favicons, emojis, and local image files.
- ✓Optional end-to-end encrypted cloud backup of your config, stored through a Cloudflare Worker and KV store, so you can restore a dashboard without keeping the YAML file yourself.
Running Dashy with Docker
The README's fastest path is one Docker command: `docker run -p 4000:8080 lissy93/dashy`. For a setup that survives a restart, mount a user-data volume and name the container: `docker run -d -p 4000:8080 -v /path/to/your/user-data:/app/user-data --name my-dashboard --restart=always lissy93/dashy:latest`. That mounted folder needs at least a `conf.yml` — the README states this is required. Images are published to both Docker Hub (`lissy93/dashy`) and GHCR (`ghcr.io/lissy93/dashy`), built multi-arch for amd64 and arm64, so the same commands work on a Raspberry Pi. Building from source instead needs Node 20+, git, and yarn: clone the repo, fill in `./user-data/conf.yml`, then run `yarn`, `yarn build`, `yarn start`. Dashy also lists one-click deploy buttons for Netlify, Vercel, Render, Railway, GCP Cloud Run, Play-with-Docker, Easypanel, and EdgeOne.
Widgets and Status Monitoring
- •Homelab landing page — one dashboard listing Plex, a NAS UI, a router admin panel, and other self-hosted apps, each with a live up-or-down indicator.
- •Browser startpage — set the minimal view as your new-tab page for a fast way to jump straight to the tools you use daily.
- •Multi-app workspace — switch to workspace view to keep several self-hosted apps open and visible side by side instead of tab-switching.
- •Shared household or team dashboard — basic auth with per-user accounts and read-only guest access lets you share one dashboard without giving everyone edit rights.
- •Lightweight status page — the same status and ping checks double as a simple uptime indicator without standing up a separate monitoring stack.
Strengths
- ✓One YAML file, or the UI editor, drives the whole dashboard — a single source of truth instead of clicking through separate settings screens.
- ✓Status checks cover HTTP response codes for services and ICMP ping for hosts, and can run on the same item at once.
- ✓Multi-arch Docker images mean the same setup works on a home server or a Raspberry Pi without extra steps.
- ✓Several opening methods — new tab, same tab, modal popup, workspace view, or copy to clipboard — fit different workflows.
- ✓Guest access and per-user privileges in basic auth make it usable for a shared household dashboard, not just a single-user setup.
Limitations
- △Config lives in one YAML file with no database behind it, so versioning and syncing it across machines is on you unless you turn on cloud backup.
- △Basic auth stores hashed passwords inside the config file itself, which is fine on a private network but needs extra care before exposing it publicly.
- △Real SSO means running and maintaining a separate Keycloak instance — Dashy doesn't bundle an identity provider.
- △Hindi and Japanese are flagged in the README as auto-generated translations still needing human review, so language coverage is uneven.
- △It tracks up-or-down status, not history — there's no built-in uptime graph or alerting, so pairing it with a real monitoring tool is still necessary for that.
Dashy Alternatives
Frequently Asked Questions
Dashy is 100% free and open source, released under the MIT license. That means you can self-host it, read or modify the source, and redistribute your own fork without paying for a license or hitting a paywalled feature tier.
Dashy supports authentication through Keycloak single sign-on, or a built-in basic-auth mode where each user gets a username and a SHA-256 hashed password. Basic auth also offers configurable privileges per user and a read-only guest access option.
Dashy runs on a Raspberry Pi — the README notes it works well on low-powered ARM single-board computers and has specifically been tested on a Pi 3. It deploys the same way to any VPS through Docker, since the images are built multi-arch for amd64 and arm64.
Dashy ships with pre-built widgets for pulling dynamic content from commonly self-hosted services, so many setups need no extra work. For anything not covered, Dashy's documentation walks through writing your own custom widget for the app in question.
The minimal view strips Dashy down to a fast-loading browser startpage with little more than search and launch icons. The workspace view instead keeps several apps open and visible side by side. Both views are reachable from the same dashboard through a switch icon in the corner.
Dashy's minimal view is built specifically for this job: a stripped-down layout meant to load fast as your browser's new-tab page, showing search and quick launch icons instead of the full multi-widget dashboard you'd use as a homepage.
The problem it solves
Homelab users end up running a handful of self-hosted apps — Plex, Pi-hole, a NAS UI, a router panel — with no single page that lists them, checks whether each one is actually reachable, and lets you launch or search them without remembering IPs and ports. Dashy exists to be that one page.
Who should try it — and who should skip
Homelab owners running several self-hosted services who don't mind writing YAML, or clicking through the UI editor once, get the most out of Dashy: one page for everything, with status checks that catch a dead service before you click into it. Skip it if you want a single static bookmarks page with zero configuration, or if you need enterprise user management out of the box instead of wiring up Keycloak yourself.
Related repositories
Still deciding about dashy?
One click hands the question to an AI along with this page — see what it says about dashy.
