1
0
mirror of https://github.com/Luzifer/mondash.git synced 2024-09-19 08:52:58 +00:00
Public dashboard service without hazzle
Go to file
Knut Ahlers 7d99bb4e38
Replace old vendoring with go modules, npm audit fix
Squashed commit of the following:

commit cb9373983dde31eb56c45e78c17c44ae2e38ee00
Author: Knut Ahlers <knut@ahlers.me>
Date:   Sun Oct 18 03:31:25 2020 +0200

    Update Dockerfile for readonly mod

    Signed-off-by: Knut Ahlers <knut@ahlers.me>

commit b21597f19808c79ad63b30033100e383d1d80034
Author: Knut Ahlers <knut@ahlers.me>
Date:   Sun Oct 18 03:28:52 2020 +0200

    Re-generate assets file

    Signed-off-by: Knut Ahlers <knut@ahlers.me>

commit 6e06ee024afb60b5c374c3935b02c1a1b6e5fefb
Author: Knut Ahlers <knut@ahlers.me>
Date:   Sun Oct 18 03:27:33 2020 +0200

    Execute `npm audit fix`

    Signed-off-by: Knut Ahlers <knut@ahlers.me>

commit d83316da0fb3103c92a47d58833a784ebe3b28a8
Author: Knut Ahlers <knut@ahlers.me>
Date:   Sun Oct 18 03:26:05 2020 +0200

    Add go modules file for client

    Signed-off-by: Knut Ahlers <knut@ahlers.me>

commit 05dcacf2bcda834a7ff9c370ea0cb838d352734e
Author: Knut Ahlers <knut@ahlers.me>
Date:   Sun Oct 18 03:25:00 2020 +0200

    Update import paths, add go modules files

    Signed-off-by: Knut Ahlers <knut@ahlers.me>

commit 7c38dff66575475c8e1f973228db3d9b269984db
Author: Knut Ahlers <knut@ahlers.me>
Date:   Sun Oct 18 03:23:35 2020 +0200

    Delete old vendoring / dep management

    Signed-off-by: Knut Ahlers <knut@ahlers.me>

Signed-off-by: Knut Ahlers <knut@ahlers.me>
2020-10-18 03:34:10 +02:00
client Replace old vendoring with go modules, npm audit fix 2020-10-18 03:34:10 +02:00
cmd/mondash-nagios Update vendors 2019-05-25 13:27:00 +02:00
frontend Update FontAwesome 2019-08-16 23:27:26 +02:00
src Replace old vendoring with go modules, npm audit fix 2020-10-18 03:34:10 +02:00
storage Prevent write-collisions on frequent writes 2020-02-18 16:06:06 +01:00
.gitignore Major: Rework frontend, API and improve code quality (#5) 2019-05-25 00:03:06 +02:00
.repo-runner.yaml Update repo-runner image 2018-09-16 14:48:43 +02:00
apiary.apib Introduce DetailURL 2019-08-16 23:29:01 +02:00
assets.go Replace old vendoring with go modules, npm audit fix 2020-10-18 03:34:10 +02:00
Dockerfile Replace old vendoring with go modules, npm audit fix 2020-10-18 03:34:10 +02:00
go.mod Replace old vendoring with go modules, npm audit fix 2020-10-18 03:34:10 +02:00
go.sum Replace old vendoring with go modules, npm audit fix 2020-10-18 03:34:10 +02:00
History.md prepare release v2.2.3 2020-08-02 02:13:31 +02:00
LICENSE Replace license stub with full license text 2017-11-22 22:22:08 +01:00
main.go Replace old vendoring with go modules, npm audit fix 2020-10-18 03:34:10 +02:00
Makefile Major: Rework frontend, API and improve code quality (#5) 2019-05-25 00:03:06 +02:00
math.go Major: Rework frontend, API and improve code quality (#5) 2019-05-25 00:03:06 +02:00
README.md Add project status badge 2019-08-16 23:55:27 +02:00
structs.go Replace old vendoring with go modules, npm audit fix 2020-10-18 03:34:10 +02:00
web_handlers.go Introduce DetailURL 2019-08-16 23:29:01 +02:00
welcome_runner.go Major: Rework frontend, API and improve code quality (#5) 2019-05-25 00:03:06 +02:00

Go Report Card

Luzifer / mondash

MonDash is a service for everyone having to display monitoring results to people who have not the time or knowledge to get familar with Nagios / Icinga or similar monitoring systems. Therefore MonDash provides a simple API to submit monitoring results and a simple dashboard to view those results.

Hosted

There is an instance of MonDash running on mondash.org you can use for free. This means you can just head over there, create your own dashboard with one click and start to push your own metrics to your dashboard within 5 minutes. No registration, no fees, just your dashboard and you.

Installation

However maybe you want to use MonDash for data you don't like to have public visible on the internet. As it is open source you also can host your own instance: The most simple way to install your own instance is to download a binary distribution from the releases page.

Additionally you will need a template for your dashboard to be displayed correctly. You can get the template from this repository in the templates folder. The template will be searched in a folder called templates inside the current working directory.

To start MonDash you will need to make sure you configured your instance correctly:

# mondash -h
Usage of mondash:
      --api-token string      API Token used for the /welcome dashboard (you can choose your own)
      --baseurl string        The Base-URL the application is running on for example https://mondash.org
      --frontend-dir string   Directory to serve frontend assets from (default "./frontend")
      --listen string         Address to listen on (default ":3000")
      --log-level string      Set log level (debug, info, warning, error) (default "info")
      --storage string        Storage engine to use (default "file:///data")
      --version               Prints current version and exits
  1. If you want to store the data in S3:
  • Set AWS environment variables (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_REGION)
  • Specify --storage=s3://<yourbucket>/[optional prefix]
  1. If you want to store the data in local file system:
  • Ensure the data directory is writable
  • Specify --storage=file:///absolute/path/to/directory

In all cases you need to specify --api-token with a token containing more than 10 characters and --baseurl with the base-URL of your instance.

Docker

To launch it, just replace the variables in following command and start the container:

docker run \
         -e AWS_ACCESS_KEY_ID=myaccesskeyid \
         -e AWS_SECRET_ACCESS_KEY=mysecretaccesskey \
         -e AWS_REGION=eu-west-1 \
         -e STORAGE=s3://mybucketname/ \
         -e BASE_URL=http://mondash.org \
         -e API_TOKEN=yourownrandomtoken \
         -p 80:3000 \
         luzifer/mondash

Security

Just some words regarding security: MonDash was designed to be an open platform for creating dashboards without any hazzle. You just open a dashboard, send some data to it and you're already done. No need to think about OAuth or other authentication mechanisms.

The downpath of that concept is of course everyone can access every dashboard and see every data placed on it. So please don't use the public instances for private and/or secret data. You can just set up your own instance within 5 minutes (okay maybe 10 minutes if you want to do it right) and you can ensure that this instance is hidden from the internet.