Deploy Dashy on Ubuntu — highly customizable self-hosted start page with YAML config, status checks, widgets, themes, and built-in auth.
Grab the automated bash script from GitHub to follow along with the video.
wget https://raw.githubusercontent.com/mhmdali94/Docker/main/management/dashy/dashy-ubuntu.sh
chmod +x dashy-ubuntu.sh
sudo bash dashy-ubuntu.sh
wget https://raw.githubusercontent.com/mhmdali94/Docker/main/management/dashy/dashy-ubuntu.sh
chmod +x dashy-ubuntu.sh
The script installs Docker if needed, then deploys Dashy with a default configuration file at /opt/dashy automatically.
sudo bash dashy-ubuntu.sh
Open your browser and navigate to:
http://<your-server-ip>:8080
Edit the YAML configuration file to add your services, then reload the browser to apply changes instantly.
# Edit the main config file to add your services:
nano /opt/dashy/public/conf.yml
# Example service entry:
# sections:
# - name: Self-Hosted
# items:
# - title: Portainer
# url: http://your-server:9000
# icon: si-portainer
# description: Container management
# Reload Dashy in the browser after saving — changes apply instantly
| Port | Purpose |
|---|---|
| 8080 | Dashy Web UI |
Dashy is a highly customizable, self-hosted start page and homelab dashboard. Unlike drag-and-drop dashboards, Dashy uses a declarative YAML configuration file — every service, widget, theme, and layout is defined in conf.yml and version-controllable in git. It supports 200+ service integrations with auto-fetched icons, real-time status checks (ping, HTTP, DNS), configurable widgets (weather, RSS, stocks, time), multiple themes (including dark and glassmorphism), and optional built-in authentication with multi-user support. For homelab enthusiasts who want full programmatic control over their dashboard, Dashy is the definitive choice.
A homelab without a dashboard is a collection of IP addresses you have to memorise. Dashy turns all your self-hosted services into a polished, searchable start page accessible from any browser. Its YAML configuration means your entire dashboard is a single file you can back up, share, and restore in seconds. Status checks tell you at a glance which services are running and which need attention — before your users notice the outage.
Dashy serves its web UI on port 8080 by default. For home network use, this port is sufficient. For external or team access, proxy through Nginx Proxy Manager with HTTPS. No other ports are required — Dashy is a single-container frontend application with no database or backend process.
Homarr (drag-and-drop, easier initial setup, good service integrations), Homepage (extremely lightweight, YAML-based, minimal UI), Heimdall (simpler, no status checks), Organizr (media stack focused, tabbed interface). Dashy is the best choice when maximum customisation, status monitoring, and code-driven configuration are the priorities.
Skip Dashy if you want a drag-and-drop setup with zero YAML editing — use Homarr instead. Also skip it for a shared family dashboard where non-technical users need to add services themselves — Homarr's UI editor is far more approachable. For ultra-minimal setups (fewer than 5 services), a simple browser bookmark folder is enough.
PrismaTechWork provides end-to-end infrastructure services — from initial deployment and security hardening to ongoing monitoring, automated backups, and dedicated support. Whether you need a single-server setup or a multi-site network, our team ensures your infrastructure is built right, secured properly, and maintained reliably.
Open /opt/dashy/public/conf.yml and add an item under the relevant section. Each item needs at minimum a title and url. Add icon: si-SERVICENAME for an automatic icon (e.g. si-portainer, si-jellyfin). Add description: for a tooltip. Add statusCheck: true for a live health indicator. Save the file and hard-refresh the browser — changes appear immediately without restarting the container.
Yes. Dashy supports multiple named pages, each with their own sections and items. Define pages in the pages array in conf.yml. Each page has its own URL (e.g. /dashy/page-2) and can have a different layout and theme. Within a page, sections group related services together and can be collapsed or expanded. This is ideal for separating a media section from a DevOps section from a personal tools section.
Add statusCheck: true to any item in conf.yml. Dashy pings the service URL every 30 seconds (configurable) and shows a green dot (up), amber dot (slow), or red dot (down) on the tile. For services that require authentication or return non-200 status, use statusCheckUrl to specify a dedicated health endpoint. You can also set statusCheckAllowInsecure: true for services with self-signed certificates.
Set appConfig.theme in conf.yml to any built-in theme name: default, dark, glassmorphism, colorful, material, or one of 40+ others. Browse themes at the Dashy theme docs. For custom CSS, add customCss in the appConfig section. Themes can also be changed live in the UI via the palette icon without editing conf.yml — but the change is browser-local and resets on refresh unless saved to conf.yml.
Yes. Dashy has 30+ widgets including weather (requires free OpenWeatherMap API key), RSS feed reader, clock, date, GitHub stats, cryptocurrency prices, system stats (CPU/RAM if connected to a Glances API), and more. Add widgets in the widgets section of conf.yml or within a page section. Widget configuration varies — most require only a few parameters like location, API key, or RSS URL.
Yes. Enable auth in appConfig.auth with a list of users, each with a username, password hash (SHA-256), and optional userType (admin or standard). Admins can edit the dashboard; standard users can only view it. For enterprise setups, Dashy supports Keycloak OIDC, Authelia, and other SSO providers. For private home networks, authentication is optional.
Dashy uses YAML configuration — powerful, reproducible, and git-friendly, but requires comfort with editing config files. Homarr uses a drag-and-drop UI — easier for non-technical users but less portable. Dashy has more built-in widgets and themes; Homarr has better out-of-the-box integrations with specific services (Sonarr, Radarr, qBittorrent). Choose Dashy for control and customisation; choose Homarr for ease and media server integrations.
Yes — this is the recommended approach. Mount your git-managed conf.yml into the Dashy container via a Docker volume. When you update the config, commit and push the change. To restore on a new server, clone the repo and start the container — your entire dashboard is restored in seconds. This also enables dashboard versioning: you can roll back any change with git revert.