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.
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 |
---|---|
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.