-
-
Notifications
You must be signed in to change notification settings - Fork 1.9k
deployment
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.
If you want to skip the fuss, and get straight down to it, then you can spin up a new instance of Dashy by running:
docker run -p 8080:8080 lissy93/dashySee Management Docs for info about securing, monitoring, updating, health checks, auto starting, web server configuration, etc
Once you've got Dashy up and running, you'll want to configure it with your own content, for this you can reference the configuring docs.
- Deployment
Dashy has a prebuilt container image hosted on Docker Hub. You will need Docker installed on your system.
docker run -d \
-p 8080:8080 \
-v /path/to/your/user-data:/app/user-data \
--name my-dashboard \
--restart=always \
lissy93/dashy:latestThe user-data directory you mount must contain a conf.yml 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 /<filename> in the browser.
Explanation of the above options:
-
-dDetached mode (not running in the foreground of your terminal) -
-pThe port that should be exposed, and the port it should be mapped to in your host system[host-port]:[container-port], leave the container port as8080 -
-vMounts the host directory containing yourconf.yml(and any other assets) into the container at/app/user-data -
--nameGive your container a human-readable name -
--restart=alwaysSpin up the container when the daemon starts, or after it has been stopped -
lissy93/dashy:latestThe image to run. Replace:latestwith a specific version from the tags if needed
For all available options, and to learn more, see the Docker Run Docs
Dashy is also available through GHCR: docker pull ghcr.io/lissy93/dashy:latest
The latest 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.
The image defaults to :latest, but you can instead specify a specific version, e.g. docker pull lissy93/dashy:4.0.0
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 docker compose up -d (optionally use the -f flag to specify file location, if it isn't located at ./docker-compose.yml), -d 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.
The following is a complete example of a docker-compose.yml for Dashy. Run it as is, or uncomment the additional options you need.
services:
dashy:
# The image to pull + version. Can use `ghcr.io/lissy93/dashy` instead
image: lissy93/dashy:latest
# Optional container name
container_name: dashy
# Port to serve on (keep container port (second one) as 8080)
ports:
- 8080:8080
# Mount a directory containing your conf.yml and any other assets
volumes:
- ./user-data:/app/user-data
# Add any env vars for server here, if needed
environment:
- NODE_ENV=production
# Auto-start the container on boot
restart: unless-stopped
# Healthcheck to determine when container healthy
healthcheck:
test: ['CMD', 'node', '/app/services/healthcheck.js']
interval: 1m30s
timeout: 10s
retries: 3
start_period: 30sTo pull from GHCR instead of Docker Hub, set image: ghcr.io/lissy93/dashy:latest.
Podman 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.
podman run -d \
-p 8080:8080 \
-v /path/to/your/user-data:/app/user-data:Z \
--name dashy \
--restart=always \
docker.io/lissy93/dashy:latestThe :Z 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.
Podman also supports podman-compose or podman compose (with the compose plugin) using the same docker-compose.yml file shown above.
If you manage your Docker host through Portainer, you can deploy Dashy from its UI:
- Go to Stacks > Add stack
- Paste the docker-compose.yml contents, or point to the URL
- Adjust the port and volume mappings as needed
- Deploy the stack
Alternatively, go to Containers > Add container and use the image lissy93/dashy:latest with port 8080 mapped.
Coolify is a self-hostable PaaS (a Heroku/Netlify alternative). Dashy is available as a one-click service template: under + New Resource > Service, search "Dashy" and deploy. It runs the full Docker image, so all features work. (template source)
1Panel is a web-based Linux server management panel. Dashy is in its official App Store: open App Store, search "Dashy", click Install, and set the port. (app page)
@vyrtualsynthese has written a Helm Chart for deploying with Kubernetes, available here.
Note
This is a community chart and may lag behind the latest Dashy release — check the image tag before deploying.
Dashy is available through the Community Applications 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.
If you'd prefer to set it up manually, go to Docker > Add Container and use lissy93/dashy:latest as the repository. Map port 8080, and add a path mapping for the host directory containing your conf.yml to /app/user-data.
The community-maintained Proxmox VE Helper-Scripts project has a script that spins up Dashy in its own LXC container. Run this in the Proxmox host shell:
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/dashy.sh)"See the script page for options. These scripts are community-run (not affiliated with Proxmox or Dashy), so give it a read before running.
Dashy is in the TrueNAS community apps catalog. Go to Apps > Discover Apps, search "Dashy", click Install, then set the web port and a host-path storage volume for /app/user-data. (catalog entry)
Older setups may instead find Dashy via TrueCharts, though TrueCharts is no longer integrated with TrueNAS and its chart may be outdated.
Several self-hosting platforms let you install Dashy from an app store, with a management UI on top:
- Runtipi - In the official Runtipi App Store
- Cosmos Cloud - In the official Cosmos marketplace
- CasaOS - Via the community BigBear app store (not the built-in IceWhale store)
- Umbrel - Via a community app store (not the official Umbrel store)
These all run Dashy as a Docker container under the hood, so configuration works the same way. You'll find your conf.yml in whichever directory the platform maps to /app/user-data/.
On DSM 7.2 and later, Docker is provided by the Container Manager package:
- Install Container Manager from the Package Center.
- In File Station, create a folder for Dashy's config (e.g.
docker/dashy) and put yourconf.yml(plus any icons/assets) inside it. - In Container Manager, open Registry, search for
lissy93/dashy, and download thelatesttag. - Under Container > Create, pick the image, enable auto-restart, map a host port (e.g.
4000) to container port8080, and mount yourdocker/dashyfolder to/app/user-data.
Alternatively, use Container Manager's Project feature with the docker-compose.yml above, or run it over SSH:
docker run -d \
-p 4000:8080 \
-v /volume1/docker/dashy:/app/user-data \
--name dashy \
--restart=always \
lissy93/dashy:latestDashy should be reachable on your chosen port within a minute or two.
Saltbox (an Ansible-based server automation project) includes Dashy as a sandbox app. Once Saltbox is set up, install it with:
sb install sandbox-dashySee the Saltbox Dashy docs for details.
If you do not want to use Docker, you can run Dashy directly on your host system. For this, you will need both git and Node.js (v20 or newer) installed, and optionally yarn
- Get Code:
git clone https://github.com/Lissy93/dashy.gitandcd dashy - Configuration: Fill in your settings in
./user-data/conf.yml - Install dependencies:
yarn - Build:
yarn build - Run:
yarn start
Dashy is packaged in nixpkgs as dashy-ui, and NixOS ships a services.dashy module. Enable it in your configuration:
services.dashy.enable = true;See the module options for setting the port and your config. Or run it ad-hoc with nix run nixpkgs#dashy-ui. Note the packaged version can lag behind the latest Dashy release.
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.
Note
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.
Dashy includes a netlify.toml so deployment works out of the box. Netlify is free for personal use, supports custom domains, and deploys automatically from your Git repo.
Deploy link: https://app.netlify.com/start/deploy?repository=https://github.com/lissy93/dashy
Vercel hosts static frontends with a generous free tier, custom domains, and built-in analytics.
Deploy link: https://vercel.com/new/project?template=https://github.com/lissy93/dashy
Render runs the full Docker image, so status checks and config writing work. It builds from the render.yaml blueprint at the repo root.
Deploy link: https://render.com/deploy?repo=https://github.com/lissy93/dashy
Railway deploys the Dashy container from a template, with a free starter tier.
Template: https://railway.app/template/MtdjAQ
Cloud Run runs the container serverlessly. The button opens Google Cloud Shell and builds from the repo's Dockerfile.
Deploy link: https://deploy.cloud.run/?git_repo=https://github.com/lissy93/dashy.git
Easypanel 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.
Template: https://easypanel.io/docs/templates/dashy
Note
The Easypanel template currently pins an older Dashy version. After deploying, change the image tag to lissy93/dashy:latest (or a recent version) to get the newest release.
EdgeOne Pages is Tencent's edge hosting platform. Static deploy from your Git repo.
Deploy link: https://edgeone.ai/pages/new?repository-url=https://github.com/lissy93/dashy
Warning
Play-with-Docker is being retired and now shows a deprecation notice, so it may stop working. Treat it as a throwaway demo only, and use another method for anything real.
Play with Docker gives you a free, temporary Docker environment in the browser. Good for trying Dashy without installing anything. Sessions last 4 hours.
URL: https://labs.play-with-docker.com/?stack=https://raw.githubusercontent.com/Lissy93/dashy/master/docker-compose.yml
If you'd rather not self-host, a couple of providers will run a Dashy instance for you (paid):
- Elestio - Fully managed Dashy, or bring your own VM
- PikaPods - Managed Dashy hosting from a few dollars per month
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 ./dist directory within Dashy's root, and this is the build application which is ready to be served up.
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.
The pre-built Docker image runs on amd64, arm64 and armv7 (armv6 is not supported).
- CPU: any single core, x86-64 or ARM
- RAM: Node server idles around ~80–120 MB; 256 MB is comfortable, works in less
- Disk: ~250 MB for the image + whatever your config/icons need
- Runs fine on a Pi 3 and up
Requires Node.js (20+) and Yarn
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.
JavaScript is required. Dashy targets browsers with >1% global usage and the last 2 versions of each (via browserslist). In practice, any modern browser works fine. Internet Explorer is not supported.
| Browser | Minimum Version | Status |
|---|---|---|
| Chrome / Chromium | 90+ | Fully supported |
| Firefox | 90+ | Fully supported |
| Edge | 90+ | Fully supported |
| Safari | 14+ | Mostly Supported |
| Opera | 76+ | Supported |
| Samsung Internet | 15+ | Supported |
| Firefox ESR | Latest | Supported |
| Internet Explorer | - | Not supported |