Skip to content

juergenpointinger/status-dashboard

Repository files navigation

Status (GitLab) Dashboard

Docker Cloud Build Status Docker Image Version (latest semver) Docker Pulls Docker Image Size (latest semver) GitHub Twitter Follow

The dashboard is intended to simplify the presentation of the evolution of products and projects for different stakeholders.

It uses GitLab APIs and is based on Python with Plotly Dash.

Tested with:

  • Python 3.10
  • Dash 2.7.0
  • Plotly 5.12
  • GitLab 15+

Routes

Route Description Image
/ or /dashboard Status Dashboard Preview
/monitor Build Monitor Preview

Environment

Key Description Default
GITLAB_TOKEN GitLab token will be used whenever the API is invoked
GITLAB_GROUP_ID GitLab group id
GITLAB_PROJECT_IDS GitLab project id list (Json format) see .env.example for details
DEBUG Debug mode (optional) false
LOGLEVEL Logging level (optional) INFO
LOGFORMAT Logging format output (optional) %(asctime)s - %(levelname)s - %(message)s
APP_NAME Dashboard application name (optional) Status Dashboard
APP_HOST Dashboard host ip adress (optional) 0.0.0.0 (for Docker environment)
APP_PORT Dashboard port (optional) 5000
REDIS_URL Redis url redis://localhost:6379

Rename your .env.example to .env and add the required changes.

Run locally

$ pip install -r requirements.txt
$ python3 index.py

Run via Docker

$ docker run --rm --name redis -p 6379:6379 redis:7.0-alpine
$ docker run --rm --env-file .env --name status-dashboard -p 5000:5000 juergenpointinger/status-dashboard:latest

Build via Docker

$ docker-compose up -d
$ docker build . -t juergenpointinger/status-dashboard:latest
$ docker run --rm --name status-dashboard -p 5000:5000 juergenpointinger/status-dashboard:latest