Noureddine RAMDI / Dashy: A YAML-driven self-hosted dashboard for homelab organization

Created Sat, 09 May 2026 11:42:26 +0000 Modified Sat, 23 May 2026 20:41:27 +0000

Lissy93/dashy

Dashy addresses a common frustration in managing homelabs: juggling multiple service UIs spread across different ports, IPs, and authentication systems. Instead of hopping between tabs or bookmarking dozens of URLs, Dashy offers a single web interface that organizes your services into customizable dashboards. What sets it apart is how it uses one YAML file to drive everything — layout, widgets, theming, auth — while letting you edit that config through a friendly UI that writes back to the same file. This design makes Dashy portable, version-controllable, and accessible to both developers and non-technical users.

What Dashy is and how it organizes your homelab

Dashy is a self-hosted dashboard built with Vue.js that acts as a centralized launchpad for your homelab services. It supports multi-page layouts where each page contains customizable sections and widgets. Widgets can display dynamic content such as service status, RSS feeds, or custom HTML, updating in real-time through polling.

The application is stateless and configuration-driven: every aspect of the interface is defined in a single YAML file named conf.yml. This file includes page definitions, sections, navigation items, widget configurations, theme settings, and authentication rules. Because everything is YAML-driven, the entire dashboard state is portable and easy to manage with version control systems or Infrastructure-as-Code workflows.

Dashy supports multiple authentication methods, including basic auth and Single Sign-On (SSO) via Keycloak, providing granular access control to different sections or items. The dashboard ships as a multi-architecture Docker image supporting amd64, arm64, and arm/v7, which means it runs on a broad range of hardware from Raspberry Pis to servers.

The UI includes a built-in configuration editor that lets you modify the YAML file graphically. Changes made in the UI write back to the YAML file, so your configuration remains consistent whether edited by hand or through the interface.

Additional features include extensive theming options with color pickers and custom CSS support, Progressive Web App (PWA) functionality for native-like installation on devices, and availability in over 10 human-translated languages. Optional encrypted cloud backups let you safeguard your config without compromising privacy.

The YAML configuration: the core of Dashy’s flexibility

The single YAML file (conf.yml) is what makes Dashy stand out technically. Unlike dashboards that store state in databases or split config across multiple files, Dashy consolidates everything into one structured document. This file includes:

  • Pages and sections: Define multiple pages, each with sections that group related items.
  • Items: Navigation entries or widgets that link to or display your homelab services.
  • Widget parameters: Configure how widgets fetch and display dynamic content.
  • Authentication rules: Enable or restrict access globally or per item using basic auth or SSO.
  • Themes: Customize colors, fonts, and CSS styles that affect the whole dashboard.

This approach has clear benefits in practice. It makes the dashboard trivially portable — you can copy the YAML file to another machine or commit it to Git for versioning. It also fits well with Infrastructure-as-Code practices, allowing you to manage your dashboard configuration alongside your other homelab automation scripts.

The UI editor is tightly integrated with this YAML structure. Rather than dealing with raw YAML syntax, users can add, remove, or edit pages, sections, and items through forms and drag-and-drop interfaces. When saved, the editor updates the YAML config file seamlessly.

The tradeoff here is that the entire dashboard state depends on this single file, which can grow complex in larger setups. However, Dashy supports splitting the config into multiple sub-files if needed, which helps manage complexity.

Deploying Dashy: quickstart with Docker and source

Dashy offers multiple deployment options, with Docker being the simplest and most common. The Docker images are multi-arch, so you can run the same container on x86 or ARM hardware.

Here are the exact commands from the README to get started with Docker:

docker run -p 8080:8080 lissy93/dashy

Or for a detached, persistent setup with your own config and data:

docker run -d \
  -p 4000:8080 \
  -v /path/to/your/user-data:/app/user-data \
  --name my-dashboard \
  --restart=always \
  lissy93/dashy:latest

Note that the /app/user-data directory you mount must contain at least a conf.yml file. This directory can also hold icons, fonts, custom CSS, or any other static assets your dashboard uses.

Dashy is also available on GitHub Container Registry (ghcr.io/lissy93/dashy) and supports pinned version tags like 4.0.0.

If you prefer to deploy from source, you’ll need Git and Node.js (latest or LTS), optionally Yarn:

  • Clone the repo: git clone https://github.com/Lissy93/dashy.git
  • Enter the directory: cd dashy
  • Fill in your settings in ./user-data/conf.yml
  • Install dependencies: yarn
  • Build the project: yarn build
  • Run locally: yarn start

This route is useful if you want to customize or contribute to Dashy itself.

For those who want to deploy to the cloud, Dashy provides 1-click deployment links for platforms like Netlify, Heroku, Vercel, Render, Railway, GCP, and more.

Verdict: who should use Dashy and what to expect

Dashy is a solid choice if you want a privacy-focused, self-hosted dashboard that keeps configuration simple yet powerful. The single YAML config file is a practical win for developers and sysadmins who prefer Infrastructure-as-Code and version control. The UI editor reduces the barrier for less technical users, making it a good fit for teams or families sharing a homelab.

The multi-arch Docker images and cloud deployment options make it easy to run Dashy on a wide range of hardware and environments. Its support for SSO integration via Keycloak is a strong plus for setups needing centralized authentication.

That said, the reliance on a single YAML file can become a maintenance challenge as your dashboard grows. While sub-config splitting is possible, very large or highly dynamic environments might outgrow this approach. Also, real-time status is based on polling, which can introduce load depending on how many widgets and services you monitor.

Overall, Dashy strikes a good balance between configurability, portability, and ease of use. It’s not a heavy full-stack platform, but a practical dashboard for those who want to keep their homelab services organized without complex dependencies or external cloud reliance.

If you manage multiple self-hosted services and want to unify access behind one customizable, version-controlled interface, Dashy deserves a look.


→ GitHub Repo: Lissy93/dashy ⭐ 24,982 · Vue