How to Install Dashy on a Vultr Cloud Server

Updated on February 11, 2022

Dashy is a free self-hosted dashboard that lets you organize and keep track of your favorite applications or services. It's highly customizable and easy to deploy with extended functionality, including status checks, dynamic widgets, built-in authentication, among others. In this article, you will install Dashy on a Vultr cloud server running Docker.

Prerequisites

Installation

Download the latest Dashy image from Docker Hub.

# docker pull lissy93/dashy:latest

Create a new Dashy configuration file, and sub-directory in the /opt directory.

# mkdir /opt/appdata/dashy
    
# touch /opt/appdata/dashy/dashy-config.yml

Now, create the Dashy Container.

docker run -d -p 8080:80 --name Dashy --restart=always -v /opt/appdata/dashy/dashy-config.yml:/app/public/conf.yml lissy93/dashy:latest

Below is what each command argument does:

  • -d Detached mode, app runs in the background.
  • -p The port Dashy should be mapped to in the format [host machine port]:[container port]
  • --name The Docker ID, can be used to start, check logs, and stop Dashy.
  • --restart Start the container when Docker starts
  • --v Specify a container files volume on the host system (create a link to the actual Docker files).
  • lissy93/dashy:latest Install the latest Dashy release

Start Dashy.

# docker start Dashy

View Docker processes, and verify that Dashy is running.

 # docker ps

Output:

CONTAINER ID   IMAGE                  COMMAND                  CREATED       STATUS                 PORTS                                   NAMES
89db3c6d51cf   lissy93/dashy:latest   "/sbin/tini -- yarn …"   2 hours ago   Up 2 hours (healthy)   0.0.0.0:8080->80/tcp, :::8080->80/tcp   Dashy

Configure Nginx as a Proxy Server

Create a new Nginx configuration file.

# nano /etc/nginx/conf.d/dashy.conf

Paste the following contents:

server {

listen 80;
server_name  dashboard.example.com;

location /{
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://localhost:8080;
}
}

Save and close the file.

Check the Nginx configuration for errors.

# nginx -t

Restart Nginx.

# systemctl restart nginx

Setup Firewall

Allow Nginx to serve files on HTTP Port 80.

# ufw allow 80/tcp

If you plan to install a free let's encrypt certificate, allow HTTPS port 443.

# ufw allow 443/tcp

Restart Firewall.

# ufw reload

Configure Dashy

Open and edit your Dashy configuration file.

# nano /opt/appdata/dashy/dashy-config.yml

Then, paste the following contents to customize your dashboard.

pageInfo:
  title: My Dashboard
  navLinks:
        - title: Home
    path: /
  - title: About
    path: /about
  - title: Source Code
    path: https://github.com/Lissy93/dashy
appConfig:
  theme: dracula
  fontAwesomeKey: 13014ae648
sections:
- name: Productivity
  items:
  - title: ProtonMail
    description: Secure Encrypted Email
    icon: favicon
    url: https://mail.protonmail.com/
  - title: AnonAddy
    description: Mail aliasing and forwarding service
    icon: favicon
    url: https://app.anonaddy.com/
  - title: LessPass
    description: Deterministic password generator
   icon: favicon
   url: https://lesspass.com/
 - title: EteSync
   description: Calendar, contacts and tasks
   icon: favicon
   url: https://client.etesync.com/
  - title: Live Coin Watch
   description: Real-time crypto prices and read-only portfolio
    icon: favicon
    url: https://www.livecoinwatch.com/
  - title: Standard Notes
    description: Encrypted productivity suit
   icon: favicon
   url: https://app.standardnotes.org/
- name: Social
  items:
  - title: Discord
    icon: fab fa-discord
    url: https://discord.com/channels/
   - title: Mastodon
    icon: fab fa-mastodon
    url: https://mastodon.social/
  - title: Reddit
    icon: fab fa-reddit
    url: https://www.reddit.com/
  - title: Twitter
    icon: fab fa-twitter
    url: https://twitter.com/
  - title: YouTube
    icon: fab fa-youtube
    url: https://youtube.com/
  - title: Instagram
    icon: fab fa-instagram
    url: https://www.instagram.com
- name: Coding
  displayData:
    rows: 2
   items:
         - title: Vultr
    description: Affordable, High perfomance cloud services
    url: https://vultr.com/
    icon: https://www.vultr.com/favicon/android-chrome-512x512.png   
  - title: StackOverflow
     icon: fab fa-stack-overflow
     url: https://stackoverflow.com/
  - title: GitHub
    icon: fab fa-github
    url: https://github.com/
  - title: Grep App
    icon: fas fa-slash
    description: Allows you to search the contents of files within GitHub repos, with a RegEx option too
    url: https://grep.app/
  - title: Hoppscotch
    icon: fas fa-dice-d6
    description: API development tool
    url: https://hoppscotch.io/
  - title: Regexr
    icon: fas fa-code
    description: App for creating, testing and understanding regular expressions
    url: https://regexr.com/
   - title: Tmate
    icon: fas fa-terminal
    description: Instant TMUX-based terminal sharing
    url: https://tmate.io/
  - title: Debian Handbook
    icon: fab fa-linux
    url: https://debian-handbook.info/browse/stable/
  - title: Crontab Guru
    description: Editor for cron schedule expressions
    icon: fas fa-pen-square
    url: https://crontab.guru/
  - title: CyberChef
    description: All in one encryption, encoding, hashes etc
    icon: fas fa-user-astronaut
    url: https://gchq.github.io/CyberChef/
  - title: SSL Labs Tester
    description: Check SSL Certificates
    icon: fab fa-expeditedssl
    url: https://www.ssllabs.com/ssltest/
  - title: JSON Formatter
    description: JSON validator, beautifier and convertor
    url: https://jsonformatter.org/
    icon: fas fa-brackets-curly
  - title: JSFiddle
    url: https://jsfiddle.net/
    icon: fab fa-jsfiddle
  - title: HealthChecks.io
    description: Off-site cron job and service monitoring
    icon: fal fa-monitor-heart-rate
    url: https://healthchecks.io/
 - name: Utilities
  displayData:
    itemSize: small
    cols: 2
  items:
  - title: Chroniker Timer
    description: A productivity timer
    url: https://chroniker.co/
  - title: CopyChar
    description: easily search and copy any symbol
    url: https://copychar.cc/
  - title: DeepL
    description: Fast, accurate, secure online multi-language translator
    url: https://www.deepl.com/translator
  - title: Font Generator
    description: Use ASCII characters for different plaintext fonts
   url: https://www.fontgeneratoronline.com/
  - title: JSON Formatter
    description: CSV, JSON, YAML, XML and more formatting tools
    url: https://jsonformatter.org/
  - title: Time.Is
    description: Time.Is
    url: https://time.is/
  - title: Torrent Parts
    description: Inspect and edit what's in your Torrent file or Magnet link
    url: https://torrent.parts/
  - title: Photo College
     url: https://www.befunky.com/create/collage/
  - title: MD5 Hash
    url: http://www.miraclesalad.com/webtools/md5.php
  - title: GitHub Stars Over Time
    url: https://seladb.github.io/StarTrack-js/
  - title: Text & List Tools
    url: https://pinetools.com/c-text-lists/
  - title: Online Text Tools
    description: More text tools, allowing for RegEx actions
    url: https://onlinetexttools.com/
  - title: Conversao
    description: Instantly convert a unit to all others
    url: https://conversao.net/eng/
   - title: Omni Calculators
    description: A collection of thousands of calculators
    url: https://www.omnicalculator.com/
  - title: Dr Meme
    description: Meme Generator
    url: https://www.drmemes.com/
  - title: ASCII Tree Generator
    description: For displaying directory structure
    url: https://ascii-tree-generator.com/
  - title: ASCII Diagram Drawer
    description: For using box characters to draw boxes
    url: For using box characters to draw boxes
  - title: Bullet Converter
    description: Small script I use
    url: https://listed.to/p/LxO8yHsB9E#bc
  - title: Lenny Face Maker
   description: Easily generate ASCII Lenny emojis
   url: https://www.fontspace.com/lenny-face

Save and close the file.

For more customization templates, refer to the Dashy documentation.

Now rebuild the Dashy container using the following command:

# docker exec -it Dashy yarn build

Once complete, Visit your subdomain or Server IP through a web browser.

http://dashboard.example.com

Dashy Dashboard

Your current dashboard options will be displayed. You can fine-tune your dashboard by editing the Dashy configuration file.

In case Dashy throws an error after rebuilding the configuration, stop and start the container with the following commands:

Stop Dashy

# docker stop Dashy

Start Dashy

# docker start Dashy

Conclusion

Congratulations, you have installed Dashy on a Vultr cloud server running Docker and set up a subdomain through Nginx as the reverse proxy server. For more information on configuring your dashboard, visit the Dashy documentation page.