Today we will be installing Dashy dashboard using Portainer and Docker on a Raspberry Pi 4. This is episode 30 in our Raspberry Pi Series.
Difficulty=Easy
Table of Contents
Prerequisites:
If you have not followed our previous episodes we recommend you do so before attempting to follow any of our episodes. Each tutorial follows a custom setup and you may miss some information. However, if you meet all the following prerequisites then you should be fine to proceed.
- A Raspberry Pi with Raspberry Pi OS installed.
- Secured Raspberry Pi.
- Docker and Portainer Installed.
- An AppData folder to be used to store Dashy’s conf.yml configuration file.
- A device to initiate an SSH terminal session.
What is Dashy?.
Dashy is a self-hosted fully customizable dashboard that you can save bookmarks to. You can customize your bookmarks to display in various different ways. Dashy can also integrate with other self-hosted applications so their data can be displayed on the dashboard. You can use Dashy on all your devices by using the IP address as your homepage.

Dashy Quick Resources:
Example Configuration Files For Dashy: https://gist.github.com/Lissy93/000f712a5ce98f212817d20bc16bab10
Free Dashboard Icons: https://github.com/walkxhub/dashboard-icons
Dashy Showcase – https://dashy.to/docs/showcase
How to install Dashy Docker on a Raspberry Pi 4.
Step 1 – Create the folders needed for the Dashy Docker container.
Open up a terminal or Putty application.
Connect to your Raspberry Pi via SSH (secure shell).
ssh -p PORT USERNAME@YOURRASPBERRYPIIP
Navigate to your “Appdata” folder or the place where you store all your container’s persistent configuration data.
cd /srv/YOURUSBDISKUUID/Appdata
Create a folder called “dashy“.
mkdir dashy
Navigate into the “dashy” folder.
cd dashy
You will now need to create a conf.yml file so we can add our configuration data to it. This file is also needed so that you can compile and save configuration changes you make from within the dashboard.
touch conf.yml
In order for the configuration file to be read by the docker container we need to add some example data to the conf.yml file. To edit this file we will use nano.
nano conf.yml
From here you can paste the following text into the nano text editor window.
--- # Page meta info, like heading, footer text and nav links pageInfo: title: Dashy description: Welcome to your new dashboard! navLinks: - title: GitHub path: https://github.com/Lissy93/dashy - title: Documentation path: https://dashy.to/docs # Optional app settings and configuration appConfig: theme: colorful # Main content - An array of sections, each containing an array of items sections: - name: Getting Started icon: fas fa-rocket items: - title: Dashy Live description: Development a project management links for Dashy icon: https://i.ibb.co/qWWpD0v/astro-dab-128.png url: https://live.dashy.to/ target: newtab - title: GitHub description: Source Code, Issues and Pull Requests url: https://github.com/lissy93/dashy icon: favicon - title: Docs description: Configuring & Usage Documentation provider: Dashy.to icon: far fa-book url: https://dashy.to/docs - title: Showcase description: See how others are using Dashy url: https://github.com/Lissy93/dashy/blob/master/docs/showcase.md icon: far fa-grin-hearts - title: Config Guide description: See full list of configuration options url: https://github.com/Lissy93/dashy/blob/master/docs/configuring.md icon: fas fa-wrench - title: Support description: Get help with Dashy, raise a bug, or get in contact url: https://github.com/Lissy93/dashy/blob/master/.github/SUPPORT.md icon: far fa-hands-helping
If you would like to use a different example configuration a list can be found here: https://gist.github.com/Lissy93/000f712a5ce98f212817d20bc16bab10
Press “Ctrl + X” then “y” then “Enter” to save the conf.yml file.
You will now need to get the absolute path for your Dashy folder which contains your conf.yml file.
Type the following command
pwd
Copy the absolute path output from the pwd command and paste it into a text file. You will need this in Step 2.
Step 2 – Create the Dashy Container Using Portainer and a Stack.
Navigate to your Portainer dashboard and log in.

From the left hand menu click on “Stacks“.

Now in the Stacks dashboard click on “Add a stack“.

In the “Name” field enter “dashy“
Dashy Docker Compose Stack
--- version: "2.1" services: dashy: image: lissy93/dashy container_name: Dashy volumes: - /PATHTOAPPDATA/DASHY/conf.yml:/app/public/conf.yml ports: - 4000:80 environment: - NODE_ENV=production - UID=1001 - GID=100 restart: always
Replace the “PATHTOAPPDATA/DASHY” with the absolute path you obtained in Step 1 when using the pwd command. Be sure to leave the “/conf.yml” at the end of the path.
You will also need to change the “PUID“, “PGID” and the left side of the colon “port” number (only required if port 4000 is already in use) to match your setup.
You can find out how to get your PUID and PGID by following our episode 30 YouTube video tutorial.
Once you have completed that you are ready to click “Deploy the stack“.

If you navigate to “Containers” in the left menu

You should now see your “dashy” container in the list “click on the logs icon“.


Give the container a few minutes to fully internalize. You can check its progress in Portainer using the dashy log.
When it has fully started up and compiled the first load of the conf.yml file build. It will state the following in the log “DONE Build complete. Watching for changes…“. You should now be able to access the dashboard from a browser.
Open up your browser of choice and enter the following into the address bar. Change “YOURRASPBERRYPIIP” with the IP address of your Raspberry Pi.
http://YOURRASPBERRYPIIP:4000
You should now see the dashboard interface.

The installation is now complete and you are ready to start configuring Dashy dashboard.
If you would like to know how to configure Dashy. Please follow our YouTube tutorial for this episode as we explain the process in detail there.
We need your support.
We hope you enjoyed this episode and that it was helpful and you got benefit out of it.
If you did, please consider supporting our channel by Subscribing to our YouTube channel, and liking and sharing our content.
You can also make a donation via Paypal or become a Patreon if you wish to do so.
You can also follow us on Facebook or Twitter.
If you have any questions or any requests please ask in the comments below or on YouTube.
I have been trying to get local icons to work but they always give me a broken link. I’ve added the volume for where the icons are going to be stored but the config doesn’t seem to want to take it at all.
So this is my second comment don’t know why my first isn’t there but here we go again. I am trying to get the icons to be pulled locally instead of from a site.
Within docker compose I have added the below line under volumes:
– /mnt/Media/appdata/dashy:/app/public/item-icons
The favicon was converted .png to a .ico.
From within Dashy added portainer.ico to the icon section and saved to disk.
I also did this from within the conf.yml file.
I’ve tried adding the actual path from within dashy and conf.yml as /mnt/Media/appdata/dashy/portainer.ico
No matter what the icon still shows as being broken. Clearly there is something I am missing I just don’t know what at this point.
Try looking at the permissions on your icon directory.
I know I am way late for this one because I had this issue as well but here is for anyone looking for this fix in the future.
My local icons are in the following folder
/mnt/jelly/appdata/dashy/icons/dashboard-icons
My docker compose file has the below line for the local icons.
/mnt/jelly/appdata/dashy/icons:/app/public/item-icons/icons
In order for the icons to load I had to add /icons to the end of sides of the colon.
Just keeps “Running” and never gets to health. Logs show error about a flag. The flag is The interactive-flag is not set. You might not be able to use the console properly. There is no where to enter/modify or make a work around. My Portainer is different to yours – there is no advanced settings, just settings with meaningless bumf in it.