Dashy
Dashy is a free, self-hosted dashboard for turning every bookmark, internal service, and status check in a homelab into one customizable homepage. It’s built with Vue.js and configured through a YAML file, a built-in visual editor, or both at once. To be clear up front: this isn’t the Call of Duty esports pro who shares the name, the Merriam-Webster adjective meaning “dashing,” or the unrelated dashyapp.com browser extension that turns up in the same search results for “dashy dashboard.” This Dashy is Alicia Sykes’s open-source project, first published in 2021 and still shipping new releases most weeks, built for anyone who’d rather click a tile than dig through bookmarks for their homelab’s other apps.
License: Dashy is licensed under the MIT License, confirmed directly from the LICENSE file in the lissy93/dashy GitHub repo, copyright 2019-2026 Alicia Sykes. It’s short and permissive: commercial use, modification, and redistribution are all allowed, with no paid tier, dual license, or telemetry to opt out of.
Quick facts: Official site dashy.to · GitHub lissy93/dashy with 25,400+ stars and 1,850+ forks · Docker image lissy93/dashy on Docker Hub (10M+ pulls, 81.5MB), also mirrored on GHCR as ghcr.io/lissy93/dashy · default container port 8080 · multi-arch builds for amd64, arm64, and arm/v7.
What Dashy actually does
Every Dashy install starts from a single conf.yml file with four top-level sections: pageInfo for the dashboard’s title, appConfig for global settings like themes and authentication, sections for the actual grid of tiles, and an optional pages array for multi-page dashboards. Tiles can be plain links, or one of 50-plus built-in widgets that pull live data straight onto the board: weather, system stats, RSS feeds, even the status of another self-hosted app.
Where Dashy differs from a strict YAML-only tool is that conf.yml isn’t the only way in. Dashy’s own configuration docs rate four editing methods side by side: hand-editing the YAML directly (5 out of 5 for reliability, but only 3 out of 5 for usability, by their own admission), a UI-based JSON editor, a fully visual “click anything to edit it” mode, and a REST API for scripting changes. Status checking works two ways: an HTTP check that pings a service’s URL for a status dot, and a genuine ICMP ping for hosts with no web server at all. Authentication covers simple hashed-password logins, Keycloak, HeaderAuth, and OIDC, with multi-tenant issuer support added in a recent release.
Installing Dashy with Docker
Dashy’s quick-start docs lead with Docker Compose, pulling the image from Docker Hub by default. The project’s own sample compose file also documents GHCR as a drop-in alternative registry for the same multi-arch build, and adds a built-in healthcheck that neither Homarr’s nor Heimdall’s compose examples bother with:
services:
dashy:
image: lissy93/dashy:latest
container_name: dashy
ports:
- 8080:8080
volumes:
- ./dashy/user-data:/app/user-data
environment:
- NODE_ENV=production
restart: unless-stopped
healthcheck:
test: ["CMD", "node", "/app/services/healthcheck.js"]
interval: 1m30s
timeout: 10s
retries: 3
- Save the file, then run docker compose up -d in the same directory.
- Create the mounted user-data folder before first boot. conf.yml inside it is the only file Dashy actually requires.
- Open http://[server-ip]:8080 and Dashy loads with a starter config, ready to edit through the visual editor or by hand.
- Run the built-in config validator any time hand-edited YAML needs a sanity check before rebuilding.
docker exec -it dashy yarn validate-config
Security note: Dashy shipped a fix for a cross-site scripting flaw in the workspace URL parameter in its 4.3.7 release (GHSA-58mp-4qr3-vmrc). That’s a good sign the project patches quickly, and also a reminder that a dashboard linking out to every other service on a network is worth treating as a real target. Keep it off the open internet: put it behind a reverse proxy with its own authentication, or a mesh VPN like Tailscale, rather than forwarding port 8080 directly.
Homelab use cases
Dashy’s baseline job is the same as any homelab dashboard: replace a folder of browser bookmarks with one grid of tiles, reachable from any device on the network. Its status and ping checks add a thin layer of at-a-glance monitoring on top of that, but like Homarr’s widgets, it’s a convenience layer, not a replacement for real uptime history and alerting. Pairing Dashy with Uptime Kuma for actual monitoring, and Portainer for managing the containers behind those tiles, covers what a link grid was never going to do alone.
Dashy vs other self-hosted dashboards
Dashy sits in a specific spot among self-hosted dashboards: more configurable than Heimdall’s point-and-click simplicity, but without Homarr’s mandatory encryption key and account setup before first boot. Homarr trades YAML for drag-and-drop with built-in per-user logins; Heimdall stays close to a simple bookmark grid with basic shared-password auth; Dashy offers a YAML file and a UI at once, flexible, but still worth reading the config reference before assuming the visual editor covers everything.
| Dashy | Homarr | Heimdall | Homepage | |
|---|---|---|---|---|
| Configuration | YAML, UI JSON editor, or visual editor | Drag-and-drop UI | Simple UI | YAML files |
| Built-in auth | Users, Keycloak, HeaderAuth, OIDC | Credentials, OIDC, LDAP | Basic (htpasswd) | None |
| Status/ping checks | HTTP + real ICMP ping | Widget-based, no ICMP | None built-in | Wide service-specific list |
| Widget/integration library | 50+ built-in widgets | 40+ integrations | 145 Enhanced Apps (data only) | Very large list |
| Best for | Configurability without losing a UI | Power and ease together | Simplicity, tiny footprint | YAML power users |
We’ve already covered Homarr and Heimdall in more depth, if either end of that trade-off (full drag-and-drop with accounts, or a minimal bookmark grid) fits a homelab better than Dashy’s middle ground. Its closest non-YAML-only competitor is arguably Homepage, popular enough that r/selfhosted threads regularly argue about switching between the two, though Homepage skips built-in authentication entirely and leans even harder on hand-written config.
Dashy: pros and cons
- Free and open source under the MIT License, with no account, paid tier, or telemetry required
- Genuinely flexible configuration: hand-edit YAML, use the UI JSON editor, or drag-and-click through the visual editor
- Both HTTP and real ICMP ping checks built in, without needing a separate widget just for basic host status
- Frequent point releases with prompt security patching, including a same-release-line fix for a workspace XSS flaw
- The deepest configuration (auth providers, ping-check tuning, per-item visibility rules) still lives in YAML; the visual editor covers the basics, not the entire reference
- Client-side hashed-password auth is explicitly flagged in Dashy’s own docs as unsuitable for anything security-critical without an additional method
- Recent releases in the changelog are predominantly authored and merged by one person, Alicia Sykes, worth a mental note on bus factor despite 1,850+ forks and an active Discussions board
FAQ
Is Dashy free?
Yes, entirely, under the MIT License, with no paid tier, required account, or telemetry. Third-party platforms offering one-click Dashy hosting are charging for hosting, not for the software itself.
Is Dashy still maintained?
Yes, actively. GitHub shows recent pushes to the main branch, the Docker Hub image was rebuilt within the last day of writing this, and the changelog lists a steady run of point releases through the 4.3.x and 4.4.x lines, including a same-week fix for a cross-site scripting flaw (GHSA-58mp-4qr3-vmrc). By star count it’s also the most popular of the three: 25,400+ against Heimdall’s 9,200+ and Homarr’s roughly 4,000.
Dashy vs Homarr vs Heimdall: which one should I pick?
Heimdall, if the goal is a bookmark grid set up once and mostly ignored, with the smallest footprint of the three. Homarr, if a drag-and-drop UI and built-in per-user logins matter more than YAML flexibility. Dashy, if neither extreme fits: it’s the only one of the three offering a full YAML config and a visual editor and a wider built-in auth selection including OIDC, at the cost of a bigger reference to learn.
Can I run Dashy without exposing it to the internet?
Yes, and that’s the recommended setup for any dashboard linking out to every other service on a homelab: keep it on the local network, or reachable only through a mesh VPN like Tailscale, rather than forwarding port 8080 to the open internet. Built-in authentication protects logins to Dashy itself, not the services it links out to.
Dashy’s pitch is flexibility: the same install can be a five-minute bookmark grid or a fully themed, multi-page, single-sign-on homepage, depending on how much of the configuration reference actually gets read. That’s the trade-off against Homarr and Heimdall too: more to configure and learn, in exchange for fewer walls later if a homelab needs something more specific than either offers by default. Our homelab setup guide for beginners covers the Docker basics all three run on, and pairing any of them with Portainer and Uptime Kuma rounds out container management and uptime alerting.