/dashdot

A simple, modern server dashboard, primarily used by smaller private servers

Primary LanguageTypeScriptMIT LicenseMIT

dash. - a modern server dashboard



dash. (or dashdot) is a modern server dashboard, developed with a simple, but performant stack and designed with glassmorphism in mind.

It is intended to be used for smaller VPS and private servers.

Live Demo | Docker Image

Content

dash. is a open-source project, so any contribution is highly appreciated. If you are interested in further developing this project, have a look at the Contributing section of this README.

In case you want to financially support this project, you can donate here.

Preview

Darkmode Lightmode
screenshot of the darkmode screenshot of the lightmode

Installation

You can run dashdot from a docker container, or build it yourself.

Docker

Images are hosted on DockerHub, and are available for both AMD64 and ARM devices.

> docker container run -it \
  -p 80:3001 \
  -v /etc/os-release:/etc/os-release:ro \
  --privileged \
  mauricenino/dashdot

Note: The --privileged flag is needed to correctly determine the memory info.

Note: The volume mount on /etc/os-release:/etc/os-release:ro is for the dashboard to show the OS version of the host instead of the OS of the docker container (which is running on Alpine Linux). If you wish to show the docker container OS instead, just remove this line.

You can configure your Docker-installed dashboard via environment variables inside the container. You can pass them by specifying them in your custom Dockerfile, in your docker-compose.yml, or via the --env flag.

> docker container run -it \
  -p 80:3001 \
  -v /etc/os-release:/etc/os-release:ro \
  --privileged \
  --env DASHDOT_DISABLE_TILT "true" \
  --env DASHDOT_OVERRIDE_DISTRO "Ubuntu" \
  --name dashdot \
  mauricenino/dashdot

To read more about configuration options, you can visit the configuration section.

Git

To download the repository and run it yourself, there are a few steps necessary:

If you have not already installed yarn, install it now:

> npm i -g yarn

After that, download and build the project (might take a few minutes)

> git clone https://github.com/MauriceNino/dashdot &&\
  cd dashdot &&\
  yarn &&\
  yarn build

When done, you can run the dashboard by executing:

> sudo yarn start

You can configure your Git-installed dashboard via environment variables.

> export DASHDOT_PORT="8080"
> export DASHDOT_OVERRIDE_DISTRO="Ubuntu"
> yarn start

To read more about configuration options, you can visit the configuration section.

Configuration Options

The following configuration options are available.

If you don't know how to set them, look up the section for your type of installment (Docker or Git).

Variable Description Type Default Value
DASHDOT_PORT The port where the express backend is running (the backend serves the frontend, so it is the same port for both) number 3001
DASHDOT_DISABLE_TILT If you want to disable the tilt effect when hovering over the widgets with your mouse boolean false
DASHDOT_DISABLE_HOST If you want to hide the host part in the server widget (e.g. dash.mauz.io -> dash.) boolean false
DASHDOT_ENABLE_CPU_TEMPS If you want to show the CPU temperature in the graph. This will probably not work on a VPS, so you need to try it on your own if this works. For home servers it might work just fine boolean false
DASHDOT_OS_WIDGET_ENABLE To show/hide the OS widget boolean true
DASHDOT_OS_WIDGET_GROW To adjust the relative size of the OS widget number 1
DASHDOT_CPU_WIDGET_ENABLE To show/hide the Processor widget boolean true
DASHDOT_CPU_WIDGET_GROW To adjust the relative size of the Processor widget number 2
DASHDOT_CPU_DATAPOINTS The amount of datapoints in the Processor graph number 20
DASHDOT_CPU_POLL_INTERVAL Read the Processor load every x milliseconds number 1000
DASHDOT_RAM_WIDGET_ENABLE To show/hide the Memory widget boolean true
DASHDOT_RAM_WIDGET_GROW To adjust the relative size of the Memory widget number 1.5
DASHDOT_RAM_DATAPOINTS The amount of datapoints in the Memory graph number 20
DASHDOT_RAM_POLL_INTERVAL Read the Memory load every x milliseconds number 1000
DASHDOT_STORAGE_WIDGET_ENABLE To show/hide the Storage widget boolean true
DASHDOT_STORAGE_WIDGET_GROW To adjust the relative size of the Storage widget number 1.5
DASHDOT_STORAGE_POLL_INTERVAL Read the Storage load every x milliseconds number 60000
DASHDOT_OVERRIDE_OS string
DASHDOT_OVERRIDE_ARCH string
DASHDOT_OVERRIDE_CPU_BRAND string
DASHDOT_OVERRIDE_CPU_MODEL string
DASHDOT_OVERRIDE_CPU_CORES number
DASHDOT_OVERRIDE_CPU_THREADS number
DASHDOT_OVERRIDE_CPU_FREQUENCY Number needs to be passed in GHz (e.g. 2.8) number
DASHDOT_OVERRIDE_RAM_BRAND string
DASHDOT_OVERRIDE_RAM_SIZE Number needs to be passed in bytes (e.g. 34359738368 for 32 GB, because it is 32 * 1024 * 1024 * 1024) number
DASHDOT_OVERRIDE_RAM_TYPE string
DASHDOT_OVERRIDE_RAM_FREQUENCY number
DASHDOT_OVERRIDE_STORAGE_BRAND_[1-5] Use a suffix of 1, 2, 3, 4 or 5 for the respective drives string
DASHDOT_OVERRIDE_STORAGE_SIZE_[1-5] Use a suffix of 1, 2, 3, 4 or 5 for the respective drives. Number needs to be passed in bytes (e.g. 34359738368 for 32 GB, because it is 32 * 1024 * 1024 * 1024) number
DASHDOT_OVERRIDE_STORAGE_TYPE_[1-5] Use a suffix of 1, 2, 3, 4 or 5 for the respective drives string

Contributing

The simplest way of contributing is to create a new issue using the corresponding templates for feature-requests and bug-reports.

If you are able to, you can also create a pull request to add the wanted features or fix the found bug yourself. Any contribution is highly appreciated!

To start working on this project, run the following series of commands:

> git clone https://github.com/MauriceNino/dashdot &&\
  cd dashdot &&\
  yarn &&\
  yarn build

After that, you might need to restart Visual Studio Code, because otherwise there can be some errors with Typescript.

When you are done with all that, you can start a dev server using docker-compose with:

> yarn run dev

Note: Development is done on the dev branch, so please use that as the base branch in your work.