mirror of
https://github.com/Lissy93/dashy.git
synced 2026-06-03 15:24:55 -04:00
271 lines
58 KiB
HTML
271 lines
58 KiB
HTML
<!doctype html>
|
||
<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-deployment" data-has-hydrated="false">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="generator" content="Docusaurus v3.9.2">
|
||
<title data-rh="true">Deployment | Dashy</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="keywords" content="dashy, dashboard, homelab, self-hosted, docker, homepage"><meta data-rh="true" property="og:type" content="website"><meta data-rh="true" property="og:url" content="https://dashy.to"><meta data-rh="true" property="og:image" content="https://dashy.to/img/dashy.png"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" name="twitter:title" content="Dashy — The Ultimate Homepage for your Homelab"><meta data-rh="true" name="twitter:description" content="Dashy is a self-hosted dashboard app for your homelab. Manage all your services, with status checks, widgets, themes and more."><meta data-rh="true" name="twitter:image" content="https://dashy.to/img/dashy.png"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Deployment | Dashy"><meta data-rh="true" name="description" content="Welcome to Dashy, so glad you're here :) Deployment is super easy, and there are several methods available depending on what type of system you're using. If you're self-hosting, then deploying with Docker (or similar container engine) is the recommended approach."><meta data-rh="true" property="og:description" content="Welcome to Dashy, so glad you're here :) Deployment is super easy, and there are several methods available depending on what type of system you're using. If you're self-hosting, then deploying with Docker (or similar container engine) is the recommended approach."><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://dashy.to/docs/deployment"><link data-rh="true" rel="alternate" href="https://dashy.to/docs/deployment" hreflang="en"><link data-rh="true" rel="alternate" href="https://dashy.to/docs/deployment" hreflang="x-default"><script data-rh="true" type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Deployment","item":"https://dashy.to/docs/deployment"}]}</script><link rel="preconnect" href="https://pixelflare.cc">
|
||
<link rel="preconnect" href="https://cdn.as93.net">
|
||
<link rel="dns-prefetch" href="https://api.github.com">
|
||
<link rel="dns-prefetch" href="https://no-track.as93.net">
|
||
<script type="application/ld+json">{"@context":"https://schema.org","@type":"WebSite","name":"Dashy","url":"https://dashy.to","description":"The Ultimate Homepage for your Homelab","publisher":{"@type":"Person","name":"Alicia Sykes","url":"https://aliciasykes.com"}}</script>
|
||
<link rel="manifest" href="/manifest.json">
|
||
<meta name="theme-color" content="#54bff7">
|
||
<script src="https://no-track.as93.net/js/script.js" defer="defer" data-domain="dashy.to"></script><link rel="stylesheet" href="/assets/css/styles.4bd6bc2b.css">
|
||
<script src="/assets/js/runtime~main.626c1716.js" defer="defer"></script>
|
||
<script src="/assets/js/main.71031559.js" defer="defer"></script>
|
||
</head>
|
||
<body class="navigation-with-keyboard">
|
||
<svg style="display: none;"><defs>
|
||
<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
|
||
</defs></svg>
|
||
<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"dark"),document.documentElement.setAttribute("data-theme-choice",t||"dark")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div class="banner_woPo"><a class="link_ecgS" title="View the changelog, to see what's new!" href="/updates">Dashy <!-- -->V4.1.5<!-- --> is now live 🚀</a><a class="link2_y3x6" title="View the changelog, to see what's new!" href="/updates">See what's new…</a><button class="closeBtn_fC0A" title="Dismiss update, and don't show again" aria-label="Dismiss update, and don't show again">×</button></div><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="theme-layout-navbar navbar navbar--fixed-top"><div class="navbar__inner"><div class="theme-layout-navbar-left navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/dashy.png" alt="Dashy Logo" class="themedComponent_mlkZ themedComponent--light_NVdE"><img src="/img/dashy.png" alt="Dashy Logo" class="themedComponent_mlkZ themedComponent--dark_xIcU"></div><b class="navbar__title text--truncate">Dashy</b></a><a href="https://github.com/lissy93/dashy" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a><a href="https://demo.dashy.to" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">Live Demo<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a><a class="navbar__item navbar__link" href="/docs/quick-start">Quick Start</a><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/docs">Documentation</a><a class="navbar__item navbar__link" href="/updates">Changelog</a></div><div class="theme-layout-navbar-right navbar__items navbar__items--right"><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="system mode" aria-label="Switch between dark and light mode (currently system mode)"><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP systemToggleIcon_QzmC"><path fill="currentColor" d="m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"></path></svg></button></div><div class="navbarSearchContainer_Bca1"><div class="navbar__search searchBarContainer_NW3z" dir="ltr"><input placeholder="Search" aria-label="Search" class="navbar__search-input searchInput_YFbd" value=""><div class="loadingRing_RJI3 searchBarLoadingRing_YnHq"><div></div><div></div><div></div><div></div></div></div></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="theme-layout-main main-wrapper mainWrapper_z2l0"><div class="docsWrapper_hBAB"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docRoot_UBD9"><aside class="theme-doc-sidebar-container docSidebarContainer_YfHR"><div class="sidebarViewport_aRkj"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret menu__link--active" role="button" aria-expanded="true" href="/docs/quick-start"><span title="Running Dashy" class="categoryLinkLabel_W154">Running Dashy</span></a></div><ul class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/quick-start"><span title="Quick Start" class="linkLabel_WmDU">Quick Start</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/docs/deployment"><span title="Deployment" class="linkLabel_WmDU">Deployment</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/configuring"><span title="Configuring" class="linkLabel_WmDU">Configuring</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/management"><span title="App Management" class="linkLabel_WmDU">App Management</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/troubleshooting"><span title="Troubleshooting" class="linkLabel_WmDU">Troubleshooting</span></a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/docs/icons"><span title="Feature Docs" class="categoryLinkLabel_W154">Feature Docs</span></a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/docs/showcase"><span title="Community" class="categoryLinkLabel_W154">Community</span></a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/docs/privacy"><span title="Misc" class="categoryLinkLabel_W154">Misc</span></a></div></li></ul></nav></div><div class="sidebar-ad"><script async="" src="//cdn.carbonads.com/carbon.js?serve=CWYIC53L&placement=dashyto" id="_carbonads_js"></script></div></div></aside><main class="docMainContainer_TBSr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li class="breadcrumbs__item"><span class="breadcrumbs__link">Running Dashy</span></li><li class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link">Deployment</span></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>Deployment</h1></header>
|
||
<p>Welcome to Dashy, so glad you're here :) Deployment is super easy, and there are several methods available depending on what type of system you're using. If you're self-hosting, then deploying with Docker (or similar container engine) is the recommended approach.</p>
|
||
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="quick-start">Quick Start<a href="#quick-start" class="hash-link" aria-label="Direct link to Quick Start" title="Direct link to Quick Start" translate="no"></a></h2>
|
||
<p>If you want to skip the fuss, and <a class="" href="/docs/quick-start">get straight down to it</a>, then you can spin up a new instance of Dashy by running:</p>
|
||
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">docker run -p 8080:8080 lissy93/dashy</span><br></span></code></pre></div></div>
|
||
<p>See <a class="" href="/docs/management">Management Docs</a> for info about securing, monitoring, updating, health checks, auto starting, web server configuration, etc</p>
|
||
<p>Once you've got Dashy up and running, you'll want to configure it with your own content, for this you can reference the <a class="" href="/docs/configuring">configuring docs</a>.</p>
|
||
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="deployment-methods">Deployment Methods<a href="#deployment-methods" class="hash-link" aria-label="Direct link to Deployment Methods" title="Direct link to Deployment Methods" translate="no"></a></h2>
|
||
<ul>
|
||
<li class=""><a href="#" class="">Deployment</a>
|
||
<ul>
|
||
<li class=""><a href="#quick-start" class="">Quick Start</a></li>
|
||
<li class=""><a href="#deployment-methods" class="">Deployment Methods</a></li>
|
||
<li class=""><a href="#deploy-with-docker" class="">Deploy with Docker</a></li>
|
||
<li class=""><a href="#using-docker-compose" class="">Using Docker Compose</a></li>
|
||
<li class=""><a href="#podman" class="">Podman</a></li>
|
||
<li class=""><a href="#portainer" class="">Portainer</a></li>
|
||
<li class=""><a href="#kubernetes" class="">Kubernetes</a></li>
|
||
<li class=""><a href="#unraid" class="">Unraid</a></li>
|
||
<li class=""><a href="#home-server-platforms" class="">Home Server Platforms</a></li>
|
||
<li class=""><a href="#synology-nas" class="">Synology NAS</a></li>
|
||
<li class=""><a href="#build-from-source" class="">Build from Source</a></li>
|
||
<li class=""><a href="#deploy-to-cloud-service" class="">Deploy to Cloud Service</a>
|
||
<ul>
|
||
<li class=""><a href="#netlify" class="">Netlify</a></li>
|
||
<li class=""><a href="#vercel" class="">Vercel</a></li>
|
||
<li class=""><a href="#easypanel" class="">Easypanel</a></li>
|
||
<li class=""><a href="#edgeone-pages" class="">EdgeOne Pages</a></li>
|
||
<li class=""><a href="#play-with-docker" class="">Play-with-Docker</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class=""><a href="#hosting-with-cdn" class="">Hosting with CDN</a></li>
|
||
<li class=""><a href="#requirements" class="">Requirements</a>
|
||
<ul>
|
||
<li class=""><a href="#system-requirements" class="">System Requirements</a></li>
|
||
<li class=""><a href="#docker" class="">Docker</a></li>
|
||
<li class=""><a href="#bare-metal" class="">Bare Metal</a></li>
|
||
<li class=""><a href="#cdn--cloud-deploy" class="">CDN / Cloud Deploy</a></li>
|
||
<li class=""><a href="#browser-support" class="">Browser Support</a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
<hr>
|
||
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="deploy-with-docker">Deploy with Docker<a href="#deploy-with-docker" class="hash-link" aria-label="Direct link to Deploy with Docker" title="Direct link to Deploy with Docker" translate="no"></a></h2>
|
||
<p><strong>Container Info</strong>: <a href="https://hub.docker.com/r/lissy93/dashy" target="_blank" rel="noopener noreferrer" class="">
|
||
<img decoding="async" loading="lazy" src="https://img.shields.io/badge/Architectures-amd64%20%7C%20arm32v7%20%7C%20arm64v8-6ba6e5" alt="Docker Supported Architecture" class="img_ev3q">
|
||
<img decoding="async" loading="lazy" src="https://img.shields.io/badge/Base_Image-Alpine_3.19-6ba6e5" alt="Docker Base Image" class="img_ev3q">
|
||
<img decoding="async" loading="lazy" src="https://img.shields.io/badge/Hosted_on-DockerHub%20%26%20GHCR-6ba6e5" alt="Docker Hosted on" class="img_ev3q">
|
||
</a><br>
|
||
<strong>Status</strong>:
|
||
<img decoding="async" loading="lazy" src="https://img.shields.io/github/actions/workflow/status/Lissy93/dashy/docker-build-publish.yml?label=Build&color=f4a966" alt="Build Status" class="img_ev3q">
|
||
<img decoding="async" loading="lazy" src="https://img.shields.io/docker/pulls/lissy93/dashy?color=ecb2f7" alt="Docker Pulls" class="img_ev3q">
|
||
<img decoding="async" loading="lazy" src="https://img.shields.io/docker/stars/lissy93/dashy?color=f7f754&label=Docker%20Stars" alt="Docker Stars" class="img_ev3q">
|
||
<img decoding="async" loading="lazy" src="https://img.shields.io/docker/image-size/lissy93/dashy/latest?color=1eea76" alt="Docker Image Size" class="img_ev3q">
|
||
<img decoding="async" loading="lazy" src="https://img.shields.io/docker/v/lissy93/dashy/latest?color=a8d8ea&label=Latest%20Version" alt="Docker Latest Version" class="img_ev3q"></p>
|
||
<p>Dashy has a built container image hosted on <a href="https://hub.docker.com/r/lissy93/dashy" target="_blank" rel="noopener noreferrer" class="">Docker Hub</a>. You will need <a href="https://docs.docker.com/get-docker/" target="_blank" rel="noopener noreferrer" class="">Docker</a> installed on your system.</p>
|
||
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">docker run -d \</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> -p 8080:8080 \</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> -v /path/to/your/user-data:/app/user-data \</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> --name my-dashboard \</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> --restart=always \</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> lissy93/dashy:latest</span><br></span></code></pre></div></div>
|
||
<p>The <code>user-data</code> directory you mount must contain a <code>conf.yml</code> file. It can also contain any sub-config files, item icons, fonts, custom CSS, or other assets you want served from the web root. Anything you put in there is available at <code>/<filename></code> in the browser.</p>
|
||
<p>Explanation of the above options:</p>
|
||
<ul>
|
||
<li class=""><code>-d</code> Detached mode (not running in the foreground of your terminal)</li>
|
||
<li class=""><code>-p</code> The port that should be exposed, and the port it should be mapped to in your host system <code>[host-port]:[container-port]</code>, leave the container port as <code>8080</code></li>
|
||
<li class=""><code>-v</code> Mounts the host directory containing your <code>conf.yml</code> (and any other assets) into the container at <code>/app/user-data</code></li>
|
||
<li class=""><code>--name</code> Give your container a human-readable name</li>
|
||
<li class=""><code>--restart=always</code> Spin up the container when the daemon starts, or after it has been stopped</li>
|
||
<li class=""><code>lissy93/dashy:latest</code> The image to run. Replace <code>:latest</code> with a specific version from the <a href="https://hub.docker.com/r/lissy93/dashy/tags" target="_blank" rel="noopener noreferrer" class="">tags</a> if needed</li>
|
||
</ul>
|
||
<p>For all available options, and to learn more, see the <a href="https://docs.docker.com/engine/reference/commandline/run/" target="_blank" rel="noopener noreferrer" class="">Docker Run Docs</a></p>
|
||
<p>Dashy is also available through GHCR: <code>docker pull ghcr.io/lissy93/dashy:latest</code></p>
|
||
<p>The <code>latest</code> image is multi-arch, so the same tag works on amd64, arm64, and arm/v7 (Raspberry Pi 2+). Docker selects the right variant for your host automatically.</p>
|
||
<p>The image defaults to <code>:latest</code>, but you can instead specify a specific version, e.g. <code>docker pull lissy93/dashy:4.0.0</code></p>
|
||
<hr>
|
||
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="using-docker-compose">Using Docker Compose<a href="#using-docker-compose" class="hash-link" aria-label="Direct link to Using Docker Compose" title="Direct link to Using Docker Compose" translate="no"></a></h2>
|
||
<p>Using Docker Compose can be useful for saving your specific config in files, without having to type out a long run command each time. Save compose config as a YAML file, and then run <code>docker compose up -d</code> (optionally use the <code>-f</code> flag to specify file location, if it isn't located at <code>./docker-compose.yml</code>), <code>-d</code> is detached mode (not running in the foreground of your terminal). Compose is also useful if you are using clusters, as the format is very similar to stack files, used with Docker Swarm.</p>
|
||
<p>The following is a complete example of a <a href="https://github.com/Lissy93/dashy/blob/master/docker-compose.yml" target="_blank" rel="noopener noreferrer" class=""><code>docker-compose.yml</code></a> for Dashy. Run it as is, or uncomment the additional options you need.</p>
|
||
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token key atrule">services</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token key atrule">dashy</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)"># The image to pull + version. Can use `ghcr.io/lissy93/dashy` instead</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token key atrule">image</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> lissy93/dashy</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain">latest</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)"># Optional container name</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token key atrule">container_name</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> dashy</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)"># Port to serve on (keep container port (second one) as 8080)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token key atrule">ports</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> 8080</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token number">8080</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)"># Mount a directory containing your conf.yml and any other assets</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token key atrule">volumes</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> ./user</span><span class="token punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain">data</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain">/app/user</span><span class="token punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain">data</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)"># Add any env vars for server here, if needed</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token key atrule">environment</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> NODE_ENV=production</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)"># Auto-start the container on boot</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token key atrule">restart</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> unless</span><span class="token punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain">stopped</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)"># Healthcheck to determine when container healthy</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token key atrule">healthcheck</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token key atrule">test</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token string" style="color:rgb(255, 121, 198)">'CMD'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'node'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">'/app/services/healthcheck.js'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token key atrule">interval</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> 1m30s</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token key atrule">timeout</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> 10s</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token key atrule">retries</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> </span><span class="token number">3</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token key atrule">start_period</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> 30s</span><br></span></code></pre></div></div>
|
||
<p>To pull from GHCR instead of Docker Hub, set <code>image: ghcr.io/lissy93/dashy:latest</code>.</p>
|
||
<hr>
|
||
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="podman">Podman<a href="#podman" class="hash-link" aria-label="Direct link to Podman" title="Direct link to Podman" translate="no"></a></h2>
|
||
<p><a href="https://podman.io/" target="_blank" rel="noopener noreferrer" class="">Podman</a> is a drop-in replacement for Docker that runs containers without a daemon and doesn't require root. If you're on Fedora, RHEL, or just prefer daemonless containers, Podman works with the same images and mostly the same CLI.</p>
|
||
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">podman run -d \</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> -p 8080:8080 \</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> -v /path/to/your/user-data:/app/user-data:Z \</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> --name dashy \</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> --restart=always \</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> docker.io/lissy93/dashy:latest</span><br></span></code></pre></div></div>
|
||
<p>The <code>:Z</code> suffix on the volume mount handles SELinux relabeling, which you'll need on Fedora/RHEL. If you're not using SELinux, you can leave it off.</p>
|
||
<p>Podman also supports <code>podman-compose</code> or <code>podman compose</code> (with the compose plugin) using the same <code>docker-compose.yml</code> file shown above.</p>
|
||
<hr>
|
||
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="portainer">Portainer<a href="#portainer" class="hash-link" aria-label="Direct link to Portainer" title="Direct link to Portainer" translate="no"></a></h2>
|
||
<p>If you manage your Docker host through <a href="https://www.portainer.io/" target="_blank" rel="noopener noreferrer" class="">Portainer</a>, you can deploy Dashy from its UI:</p>
|
||
<ol>
|
||
<li class="">Go to Stacks > Add stack</li>
|
||
<li class="">Paste the <a href="https://github.com/Lissy93/dashy/blob/master/docker-compose.yml" target="_blank" rel="noopener noreferrer" class="">docker-compose.yml</a> contents, or point to the URL</li>
|
||
<li class="">Adjust the port and volume mappings as needed</li>
|
||
<li class="">Deploy the stack</li>
|
||
</ol>
|
||
<p>Alternatively, go to Containers > Add container and use the image <code>lissy93/dashy:latest</code> with port <code>8080</code> mapped.</p>
|
||
<hr>
|
||
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="kubernetes">Kubernetes<a href="#kubernetes" class="hash-link" aria-label="Direct link to Kubernetes" title="Direct link to Kubernetes" translate="no"></a></h2>
|
||
<p>@vyrtualsynthese has written a Helm Chart for deploying with Kubernetes, available <a href="https://github.com/vyrtualsynthese/selfhosted-helmcharts/tree/main/charts/dashy" target="_blank" rel="noopener noreferrer" class="">here</a></p>
|
||
<hr>
|
||
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="unraid">Unraid<a href="#unraid" class="hash-link" aria-label="Direct link to Unraid" title="Direct link to Unraid" translate="no"></a></h2>
|
||
<p>Dashy is available through the <a href="https://forums.unraid.net/topic/38582-plug-in-community-applications/" target="_blank" rel="noopener noreferrer" class="">Community Applications</a> plugin. Search for "Dashy" in the Apps tab and install from there. The template pre-fills the Docker image, port mapping, and volume paths for you.</p>
|
||
<p>If you'd prefer to set it up manually, go to Docker > Add Container and use <code>lissy93/dashy:latest</code> as the repository. Map port <code>8080</code>, and add a path mapping for the host directory containing your <code>conf.yml</code> to <code>/app/user-data</code>.</p>
|
||
<hr>
|
||
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="home-server-platforms">Home Server Platforms<a href="#home-server-platforms" class="hash-link" aria-label="Direct link to Home Server Platforms" title="Direct link to Home Server Platforms" translate="no"></a></h2>
|
||
<p>Several self-hosting platforms include Dashy in their app stores, giving you a one-click install with a management UI:</p>
|
||
<ul>
|
||
<li class=""><a href="https://casaos.io/" target="_blank" rel="noopener noreferrer" class="">CasaOS</a> - Has Dashy in its built-in app store</li>
|
||
<li class=""><a href="https://cosmos-cloud.io/" target="_blank" rel="noopener noreferrer" class="">Cosmos Cloud</a> - Install Dashy from the marketplace</li>
|
||
<li class=""><a href="https://umbrel.com/" target="_blank" rel="noopener noreferrer" class="">Umbrel</a> - Available in the Umbrel App Store</li>
|
||
<li class=""><a href="https://runtipi.io/" target="_blank" rel="noopener noreferrer" class="">Runtipi</a> - Available in the Runtipi App Store</li>
|
||
</ul>
|
||
<p>These all run Dashy as a Docker container under the hood, so configuration works the same way. You'll find your <code>conf.yml</code> in whichever directory the platform maps to <code>/app/user-data/</code>.</p>
|
||
<hr>
|
||
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="synology-nas">Synology NAS<a href="#synology-nas" class="hash-link" aria-label="Direct link to Synology NAS" title="Direct link to Synology NAS" translate="no"></a></h2>
|
||
<p>Installing dashy is really simply and fast:</p>
|
||
<ol>
|
||
<li class="">
|
||
<p>Install Docker via Synology <code>Package Center</code>.</p>
|
||
</li>
|
||
<li class="">
|
||
<p>Go to <code>File Station</code> and open the <code>docker</code> folder. Inside the docker folder, create one new folder and name it <code>dashy</code>.</p>
|
||
<blockquote>
|
||
<p>Note: Be careful to enter only lowercase, not uppercase letters.</p>
|
||
</blockquote>
|
||
</li>
|
||
<li class="">
|
||
<p>Go to Control Panel / Task Scheduler / Create / Scheduled Task / User-defined script.</p>
|
||
</li>
|
||
<li class="">
|
||
<p>Once you click on <code>User-defined</code> script a new window will open.</p>
|
||
</li>
|
||
<li class="">
|
||
<p>Follow the instructions below:</p>
|
||
</li>
|
||
<li class="">
|
||
<p>General: In the Task field type in Install dashy. Uncheck "Enabled" option. Select root User.</p>
|
||
</li>
|
||
<li class="">
|
||
<p>Schedule: Select Run on the following date then select "Do not repeat".</p>
|
||
</li>
|
||
<li class="">
|
||
<p>Task Settings: Check "Send run details by email", add your email then copy paste the code below in the Run command area. After that click OK.</p>
|
||
</li>
|
||
</ol>
|
||
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">docker run -d \</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> -p 4000:8080 \</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> -v /volume1/docker/dashy:/app/user-data \</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> --name dashy \</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> --restart=always \</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> lissy93/dashy:latest</span><br></span></code></pre></div></div>
|
||
<p>(Place your <code>conf.yml</code> and any sub-configs / icons / assets inside <code>/volume1/docker/dashy</code> on the host.)</p>
|
||
<p>dashy should be up within 1-2min after you've started the install task procedure</p>
|
||
<hr>
|
||
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="build-from-source">Build from Source<a href="#build-from-source" class="hash-link" aria-label="Direct link to Build from Source" title="Direct link to Build from Source" translate="no"></a></h2>
|
||
<p>If you do not want to use Docker, you can run Dashy directly on your host system. For this, you will need both <a href="https://git-scm.com/downloads" target="_blank" rel="noopener noreferrer" class="">git</a> and the latest or LTS version of <a href="https://nodejs.org/" target="_blank" rel="noopener noreferrer" class="">Node.js</a> installed, and optionally <a href="https://yarnpkg.com/" target="_blank" rel="noopener noreferrer" class="">yarn</a></p>
|
||
<ol>
|
||
<li class="">Get Code: <code>git clone https://github.com/Lissy93/dashy.git</code> and <code>cd dashy</code></li>
|
||
<li class="">Configuration: Fill in your settings in <code>./user-data/conf.yml</code></li>
|
||
<li class="">Install dependencies: <code>yarn</code></li>
|
||
<li class="">Build: <code>yarn build</code></li>
|
||
<li class="">Run: <code>yarn start</code></li>
|
||
</ol>
|
||
<hr>
|
||
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="deploy-to-cloud-service">Deploy to Cloud Service<a href="#deploy-to-cloud-service" class="hash-link" aria-label="Direct link to Deploy to Cloud Service" title="Direct link to Deploy to Cloud Service" translate="no"></a></h2>
|
||
<p>Dashy can be deployed to most cloud providers. The Docker guides above work on any VPS, but these providers offer quicker setup for static or containerized deployments.</p>
|
||
<div class="theme-admonition theme-admonition-note admonition_xJq3 alert alert--secondary"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"></path></svg></span>note</div><div class="admonitionContent_BuS1"><p>Static hosting providers (Netlify, Vercel, EdgeOne) won't have status checks or config writing to disk, since those features need Dashy's Node server. Everything else works fine.</p></div></div>
|
||
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="netlify">Netlify<a href="#netlify" class="hash-link" aria-label="Direct link to Netlify" title="Direct link to Netlify" translate="no"></a></h3>
|
||
<p><a href="https://app.netlify.com/start/deploy?repository=https://github.com/lissy93/dashy" target="_blank" rel="noopener noreferrer" class=""><img decoding="async" loading="lazy" src="https://img.shields.io/badge/Deploy-Netlify-00C7B7?logo=netlify&logoColor=white" alt="Deploy to Netlify" class="img_ev3q"></a></p>
|
||
<p>Dashy includes a <a href="https://github.com/Lissy93/dashy/blob/master/netlify.toml" target="_blank" rel="noopener noreferrer" class=""><code>netlify.toml</code></a> so deployment works out of the box. <a href="https://www.netlify.com/" target="_blank" rel="noopener noreferrer" class="">Netlify</a> is free for personal use, supports custom domains, and deploys automatically from your Git repo.</p>
|
||
<p>Deploy link: <code>https://app.netlify.com/start/deploy?repository=https://github.com/lissy93/dashy</code></p>
|
||
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="vercel">Vercel<a href="#vercel" class="hash-link" aria-label="Direct link to Vercel" title="Direct link to Vercel" translate="no"></a></h3>
|
||
<p><a href="https://vercel.com/new/project?template=https://github.com/lissy93/dashy" target="_blank" rel="noopener noreferrer" class=""><img decoding="async" loading="lazy" src="https://img.shields.io/badge/Deploy-Vercel-000000?logo=vercel&logoColor=white" alt="Deploy with Vercel" class="img_ev3q"></a></p>
|
||
<p><a href="https://vercel.com/" target="_blank" rel="noopener noreferrer" class="">Vercel</a> hosts static frontends with a generous free tier, custom domains, and built-in analytics.</p>
|
||
<p>Deploy link: <code>https://vercel.com/new/project?template=https://github.com/lissy93/dashy</code></p>
|
||
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="easypanel">Easypanel<a href="#easypanel" class="hash-link" aria-label="Direct link to Easypanel" title="Direct link to Easypanel" translate="no"></a></h3>
|
||
<p><a href="https://easypanel.io/docs/templates/dashy" target="_blank" rel="noopener noreferrer" class=""><img decoding="async" loading="lazy" src="https://img.shields.io/badge/Deploy-Easypanel-5765F2?logo=data:image/svg+xml;base64,&logoColor=white" alt="Deploy to Easypanel" class="img_ev3q"></a></p>
|
||
<p><a href="https://easypanel.io" target="_blank" rel="noopener noreferrer" class="">Easypanel</a> is a self-hosted server control panel with a Dashy template. It runs the full Docker image, so all features including the Node server work.</p>
|
||
<p>Template: <code>https://easypanel.io/docs/templates/dashy</code></p>
|
||
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="edgeone-pages">EdgeOne Pages<a href="#edgeone-pages" class="hash-link" aria-label="Direct link to EdgeOne Pages" title="Direct link to EdgeOne Pages" translate="no"></a></h3>
|
||
<p><a href="https://edgeone.ai/pages/new?repository-url=https://github.com/lissy93/dashy" target="_blank" rel="noopener noreferrer" class=""><img decoding="async" loading="lazy" src="https://cdnstatic.tencentcs.com/edgeone/pages/deploy.svg" alt="Deploy to EdgeOne" class="img_ev3q"></a></p>
|
||
<p><a href="https://pages.edgeone.ai" target="_blank" rel="noopener noreferrer" class="">EdgeOne Pages</a> is Tencent's edge hosting platform. Static deploy from your Git repo.</p>
|
||
<p>Deploy link: <code>https://edgeone.ai/pages/new?repository-url=https://github.com/lissy93/dashy</code></p>
|
||
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="play-with-docker">Play-with-Docker<a href="#play-with-docker" class="hash-link" aria-label="Direct link to Play-with-Docker" title="Direct link to Play-with-Docker" translate="no"></a></h3>
|
||
<p><a href="https://labs.play-with-docker.com/?stack=https://raw.githubusercontent.com/Lissy93/dashy/master/docker-compose.yml" target="_blank" rel="noopener noreferrer" class=""><img decoding="async" loading="lazy" src="https://img.shields.io/badge/Try-Play_with_Docker-0db7ed?logo=docker&logoColor=white" alt="Try in PWD" class="img_ev3q"></a></p>
|
||
<p><a href="https://labs.play-with-docker.com/" target="_blank" rel="noopener noreferrer" class="">Play with Docker</a> gives you a free, temporary Docker environment in the browser. Good for trying Dashy without installing anything. Sessions last 4 hours.</p>
|
||
<p>URL: <code>https://labs.play-with-docker.com/?stack=https://raw.githubusercontent.com/Lissy93/dashy/master/docker-compose.yml</code></p>
|
||
<hr>
|
||
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="hosting-with-cdn">Hosting with CDN<a href="#hosting-with-cdn" class="hash-link" aria-label="Direct link to Hosting with CDN" title="Direct link to Hosting with CDN" translate="no"></a></h2>
|
||
<p>Once Dashy has been built, it is effectively just a static web app. This means that it can be served up with pretty much any static host, CDN or web server. To host Dashy through a CDN, the steps are very similar to building from source: clone the project, cd into it, install dependencies, write your config file and build the app. Once build is complete you will have a <code>./dist</code> directory within Dashy's root, and this is the build application which is ready to be served up.</p>
|
||
<p>However without Dashy's node server, there are a couple of features that will be unavailable to you, including: writing config changes to disk through the UI, and application status checks. Everything else will work fine.</p>
|
||
<hr>
|
||
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="requirements">Requirements<a href="#requirements" class="hash-link" aria-label="Direct link to Requirements" title="Direct link to Requirements" translate="no"></a></h2>
|
||
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="system-requirements">System Requirements<a href="#system-requirements" class="hash-link" aria-label="Direct link to System Requirements" title="Direct link to System Requirements" translate="no"></a></h3>
|
||
<p>Dashy works well on a Raspberry Pi (tested on Pi 3 and later), but should also run well on any system.</p>
|
||
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="docker">Docker<a href="#docker" class="hash-link" aria-label="Direct link to Docker" title="Direct link to Docker" translate="no"></a></h3>
|
||
<p>The initial build causes a spike in resource usage, but once running it's fairly steady. Minimum 1GB memory and 1GB disk space.</p>
|
||
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="bare-metal">Bare Metal<a href="#bare-metal" class="hash-link" aria-label="Direct link to Bare Metal" title="Direct link to Bare Metal" translate="no"></a></h3>
|
||
<p>Requires <a href="https://nodejs.org/" target="_blank" rel="noopener noreferrer" class="">Node.js</a> and <a href="https://yarnpkg.com/" target="_blank" rel="noopener noreferrer" class="">Yarn</a>. The <code>engines</code> field in <code>package.json</code> specifies <code>>=18.0.0</code>, but the Docker image is built and tested on Node 24, so that's the recommended version for bare-metal too.</p>
|
||
<p>Minimum 512MB memory, 2GB disk space.</p>
|
||
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="cdn--cloud-deploy">CDN / Cloud Deploy<a href="#cdn--cloud-deploy" class="hash-link" aria-label="Direct link to CDN / Cloud Deploy" title="Direct link to CDN / Cloud Deploy" translate="no"></a></h3>
|
||
<p>No specific requirements. The built app (without the Node server) is very lightweight and can be served by any static host or CDN. If you're using custom icons or other assets, additional disk space will be needed.</p>
|
||
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="browser-support">Browser Support<a href="#browser-support" class="hash-link" aria-label="Direct link to Browser Support" title="Direct link to Browser Support" translate="no"></a></h3>
|
||
<p>JavaScript is required. Dashy targets browsers with >1% global usage and the last 2 versions of each (via <a href="https://browsersl.ist/" target="_blank" rel="noopener noreferrer" class="">browserslist</a>). In practice, any modern browser works fine. Internet Explorer is not supported.</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<table><thead><tr><th>Browser</th><th>Minimum Version</th><th>Status</th></tr></thead><tbody><tr><td>Chrome / Chromium</td><td>90+</td><td>Fully supported</td></tr><tr><td>Firefox</td><td>90+</td><td>Fully supported</td></tr><tr><td>Edge</td><td>90+</td><td>Fully supported</td></tr><tr><td>Safari</td><td>14+</td><td>Supported</td></tr><tr><td>Opera</td><td>76+</td><td>Supported</td></tr><tr><td>Samsung Internet</td><td>15+</td><td>Supported</td></tr><tr><td>Firefox ESR</td><td>Latest</td><td>Supported</td></tr><tr><td>Internet Explorer</td><td>-</td><td>Not supported</td></tr></tbody></table></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_WFHX"><a href="https://github.com/Lissy93/dashy/edit/master/docs/docs/deployment.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_JAkA"><span class="theme-last-updated">Last updated<!-- --> on <b><time datetime="2026-05-18T18:16:04.000Z" itemprop="dateModified">May 18, 2026</time></b></span></div></div></footer></article><nav class="docusaurus-mt-lg pagination-nav" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/docs/quick-start"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Quick Start</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/docs/configuring"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Configuring</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#quick-start" class="table-of-contents__link toc-highlight">Quick Start</a></li><li><a href="#deployment-methods" class="table-of-contents__link toc-highlight">Deployment Methods</a></li><li><a href="#deploy-with-docker" class="table-of-contents__link toc-highlight">Deploy with Docker</a></li><li><a href="#using-docker-compose" class="table-of-contents__link toc-highlight">Using Docker Compose</a></li><li><a href="#podman" class="table-of-contents__link toc-highlight">Podman</a></li><li><a href="#portainer" class="table-of-contents__link toc-highlight">Portainer</a></li><li><a href="#kubernetes" class="table-of-contents__link toc-highlight">Kubernetes</a></li><li><a href="#unraid" class="table-of-contents__link toc-highlight">Unraid</a></li><li><a href="#home-server-platforms" class="table-of-contents__link toc-highlight">Home Server Platforms</a></li><li><a href="#synology-nas" class="table-of-contents__link toc-highlight">Synology NAS</a></li><li><a href="#build-from-source" class="table-of-contents__link toc-highlight">Build from Source</a></li><li><a href="#deploy-to-cloud-service" class="table-of-contents__link toc-highlight">Deploy to Cloud Service</a><ul><li><a href="#netlify" class="table-of-contents__link toc-highlight">Netlify</a></li><li><a href="#vercel" class="table-of-contents__link toc-highlight">Vercel</a></li><li><a href="#easypanel" class="table-of-contents__link toc-highlight">Easypanel</a></li><li><a href="#edgeone-pages" class="table-of-contents__link toc-highlight">EdgeOne Pages</a></li><li><a href="#play-with-docker" class="table-of-contents__link toc-highlight">Play-with-Docker</a></li></ul></li><li><a href="#hosting-with-cdn" class="table-of-contents__link toc-highlight">Hosting with CDN</a></li><li><a href="#requirements" class="table-of-contents__link toc-highlight">Requirements</a><ul><li><a href="#system-requirements" class="table-of-contents__link toc-highlight">System Requirements</a></li><li><a href="#docker" class="table-of-contents__link toc-highlight">Docker</a></li><li><a href="#bare-metal" class="table-of-contents__link toc-highlight">Bare Metal</a></li><li><a href="#cdn--cloud-deploy" class="table-of-contents__link toc-highlight">CDN / Cloud Deploy</a></li><li><a href="#browser-support" class="table-of-contents__link toc-highlight">Browser Support</a></li></ul></li></ul></div></div></div></div></main></div></div></div><footer class="theme-layout-footer footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Intro</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/lissy93/dashy" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a></li><li class="footer__item"><a href="https://demo.dashy.to" target="_blank" rel="noopener noreferrer" class="footer__link-item">Live Demo<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a></li><li class="footer__item"><a class="footer__link-item" href="/docs/quick-start">Quick Start</a></li><li class="footer__item"><a class="footer__link-item" href="/docs">Documentation</a></li></ul></div><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Setup Guide</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/docs/deployment">Deploying</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/configuring">Configuring</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/management">Management</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/troubleshooting">Troubleshooting</a></li></ul></div><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Feature Docs Pt 1</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/docs/authentication">Authentication</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/alternate-views">Alternate Views</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/backup-restore">Backup & Restore</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/icons">Icons</a></li></ul></div><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Feature Docs Pt 2</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/docs/multi-language-support">Language Switching</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/status-indicators">Status Indicators</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/searching">Searching & Shortcuts</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/theming">Theming</a></li></ul></div><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/docs/developing">Developing</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/development-guides">Development Guides</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/contributing">Contributing</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/showcase">Showcase</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/credits">Credits</a></li></ul></div><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Misc</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/docs/privacy">Privacy & Security</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/license">License</a></li><li class="footer__item"><a href="https://github.com/Lissy93/dashy/blob/master/.github/LEGAL.md" target="_blank" rel="noopener noreferrer" class="footer__link-item">Legal<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a></li><li class="footer__item"><a href="https://github.com/Lissy93/dashy/blob/master/.github/CODE_OF_CONDUCT.md" target="_blank" rel="noopener noreferrer" class="footer__link-item">Code of Conduct<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a></li><li class="footer__item"><a href="https://github.com/Lissy93/dashy/blob/master/.github/CHANGELOG.md" target="_blank" rel="noopener noreferrer" class="footer__link-item">Changelog<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright"><a href="https://dashy.to">Dashy</a> - The Self-Hosted Dashboard for your Homelab<br>License under <a href="https://github.com/Lissy93/dashy/blob/master/LICENSE">MIT</a>. Copyright © 2026 <a href="https://aliciasykes.com">Alicia Sykes</a></div></div></div></footer></div>
|
||
</body>
|
||
</html> |