Dashy
Dashy helps you organize your self-hosted services by making them accessible from a single place
User Showcase | Live Demo | Getting Started | Documentation | GitHub
Dashy is kindly sponsored by Umbrel - the personal home cloud and OS for self-hosting
[!NOTE] Version 3.0.0 has been released, and requires some changes to your setup, see #1529 for details.
Table of Contents
- Getting Started
- Feature Overview
- Community
Features 🌈
- 📃 Support for multiple pages
- 🚦 Real-time status monitoring for each of your apps/links
- 📊 Use widgets to display info and dynamic content from self-hosted services
- 🔎 Instant search by name, domain, or tags + customizable hotkeys & keyboard shortcuts
- 🎨 Many built-in color themes, with UI color editor and support for custom CSS
- 🧸 Many icon options - Font-Awesome, homelab icons, auto-fetching Favicon, images, emojis, etc.
- 💂 Optional authentication with multi-user access, configurable privileges, and SSO support
- 🌎 Multi-language support, with 10+ human-translated languages, and more on the way
- ☁ Optional, encrypted, free off-site cloud backup and restore feature available
- 💼 A workspace view, for easily switching between multiple apps simultaneously
- 🛩️ A minimal view, for use as a fast-loading browser Startpage
- 🖱️ Choose app launch methods: new tab, same tab, clipboard, pop-up modal, or open in workspace view
- 📏 Customizable layout, sizes, text, component visibility, sort order, behavior, etc.
- 🖼️ Options for a full-screen background image, custom nav-bar links, HTML footer, title, etc.
- 🚀 Easy to setup with Docker, or on bare metal, or with 1-Click cloud deployment
- ⚙️ Easy single-file YAML-based configuration, and option to configure app through the UI
- ✨ Under active development with improvements and new features added regularly
- 🤏 Small bundle size, fully responsive UI, and PWA for basic offline access
- 🆓 100% free and open-source
- 🔐 Strong focus on privacy
- 🌈 And loads more...
Demo ⚡
Live Instances: Demo 1 (Live Demo) ┆ Demo 2 (Dashy Links) ┆ Demo 3 (Dev Preview)
Screenshots: Checkout the Showcase, to see example dashboards from the community
Spin up your own demo: or docker run -p 8080:8080 lissy93/dashy
Getting Started 🚀
For full setup instructions, see: Deployment
Deploying from Docker Hub 🐳
You will need Docker installed on your system
docker run -p 8080:8080 lissy93/dashy
Or
docker run -d \
-p 4000:8080 \
-v /root/my-local-conf.yml:/app/user-data/conf.yml \
--name my-dashboard \
--restart=always \
lissy93/dashy:latest
See also: examples with Docker Compose. Dashy is also available via GHCR, and tags for other architectures (arm32v7
, arm64v8
, etc.) and set versions are supported
Once you've got Dashy running, see App Management Docs for info on using health checks, updating, backups, web-server configs, logs, performance, security, and more.
Deploying from Source 🔨
You will need git, the latest or LTS version of Node.js and (optionally) Yarn installed on your system.
- Clone the Repo:
git clone https://github.com/Lissy93/dashy.git
andcd dashy
- Configuration: Fill in your settings in
./user-data/conf.yml
- Install dependencies:
yarn
- Build:
yarn build
- Run:
yarn start
See docs: Full list of Dashy's commands
Deploy to the Cloud ☁️
Dashy supports 1-Click deployments on several popular cloud platforms. To spin up a new instance, just click a link below:
- Deploy to Netlify
- Deploy to Heroku
- Deploy to Vercel
- Deploy to Render
- Deploy to Railway
- Deploy to GCP
- Deploy to PWD
- Deploy to Easypanel
For more 1-click cloud deployments, see Cloud Deployment
Configuring 🔧
For full configuration documentation, see: Configuring
Dashy is configured through a YAML file, located at ./user-data/conf.yml
. In addition, you can find a complete list of available options in the Configuring Docs. The config can also be edited and saved directly through the UI.
Theming 🎨
For full theming documentation, see: Theming
Dashy comes pre-bundled with several built-in themes, which you can preview, apply and edit through the UI. With the theme configurator and support for custom CSS, everything is in place to quickly develop your own unique-looking dashboard.
Icons 🧸
For full iconography documentation, see: Icons
Both sections and items can have an icon associated with them, defined under the icon
attribute. With several different icon packs supported, you'll be able to find the perfect thumbnail for any app or service.
The following icon types are supported:
- Favicon - Automatically fetch an apps icon from its Favicon or logo image
- Icon Packs - Use any icon from font-awesome, simple-icons or material icons
- Emoji - Any valid emoji can be used as an icon
- Generative - Unique, auto-generated images for easily identifying services
- URL - Pass the URL of any valid image in to have it fetched and rendered
- Local - Store custom images locally and reference by filename
- Homelab Icons - Using dashboard-icons for logos of commonly self-hosted services
Status Indicators 🚦
For full monitoring documentation, see: Status Indicators
Dashy has an optional feature to check if each app/ service is up and responding, then display a small status indicator icon. Hovering over it will show additional stats like response time and status code.
Status indicators can be globally enabled by setting appConfig.statusCheck: true
or enabled/ disabled on a per-item basis. Status is checked on page load, but you can allow continuous polling by specifying a time interval between checks, in seconds under appConfig.statusCheckInterval
. You can also use a different endpoint for status checking, with statusCheckUrl
, and if needed, pass in custom headers under statusCheckHeaders
.
Widgets 📊
For full widget documentation, see: Widgets
You can display dynamic content from services in the form of widgets. There are several pre-built widgets availible for showing useful info, and integrations with commonly self-hosted services, but you can also easily create your own for almost any app.
Authentication 🔐
For full authentication documentation, see: Authentication
Dashy has full support for secure single-sign-on using Keycloak for secure, easy authentication, see setup docs for a full usage guide.
There is also a basic auth feature, which doesn't require additional setup. To enable this, add an auth
attribute under appConfig
, containing an array of users
, each with a username, SHA-256 hashed password and optional user type. Basic auth also supports several access control features, including read-only guest access and granular controls.
appConfig:
auth:
users:
- user: alicia
hash: 4D1E58C90B3B94BCAD9848ECCACD6D2A8C9FBC5CA913304BBA5CDEAB36FEEFA3
type: admin
Other access control systems are also supported, see the Alternative Auth Methods docs.
Alternate Views 👓
As well as the default homepage, there is also:
- A minimal view, valid for use as a browser start page
- A workspace view, useful for visiting many apps simultaneously
You can change the view from the UI, using the switch icon in the top-right corner, or select a default view in the config under appConfig.startingView
attribute.
Example of Workspace View
Example of Minimal View
Opening Methods 🖱️
For full documentation on views and opening methods, see: Alternate Views
There are several different ways you can launch apps. You can specify the default opening method for any given item under the target
attribute or set a site-wide default under appConfig.defaultOpeningMethod
. Right-click on an item to item for all options. The following options are supported:
sametab
- The app will be launched in the current tabnewtab
- The app will be launched in a new tab (or use Ctrl + Click)modal
- Launch app in a resizable/ movable popup modal on the current page (or use Alt + Click)workspace
- Changes to Workspace view and launches appclipboard
- Copy the app's URL to your system clipboardtop
- Opens in the top-most browsing context, useful if you're accessing Dashy through an iframe
**[⬆️ Back to