Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Gitlab CI Dashboard will provide you a global overview of all pipelines, schedules and their status within a single group

License

NotificationsYou must be signed in to change notification settings

larscom/gitlab-ci-dashboard

Repository files navigation

Docker Image VersionworkflowLicense MIT

Preview


Gitlab CI Dashboard will provide you with aglobal overview of all pipelines, schedules, and their statuses within asingle group.The default functionality of Gitlab is limited at the project level. This can become hard to manage when you have a lotofprojects, potentially resulting in undetected failed pipelines.

👉Demo


🚀 Highlights

  • View all pipeline statuses per group (e.g: failed/canceled/success)
  • View all pipeline schedules per group
  • You won't get rate limited by the Gitlab API, due to server-side caching
  • Communication to the Gitlab API happens only server side
  • Only 1read only token is needed to serve a whole team
    • Optionally use aread/write token to perform actions like restarting failed pipelines, create new pipelines orcancel pipelines.

✅ Features (DONE)

  • Overview of all latest pipeline statuses within a group
  • Overview of all pipeline statuses within a group
  • Overview of all schedules within a group
  • Navigate to Gitlab
  • Shows jobs and their status per pipeline
  • Download artifacts from jobs directly
  • Search for projects within a group
  • Filter pipelines by status
  • Filter pipelines by projects and topic
  • Filter pipelines by failed jobs
  • Add projects to favorites
  • Start a new pipeline (requires read/write API token)
  • Restart failed pipelines (requires read/write API token)
  • Cancel pipelines (requires read/write API token)

📒 Features (PLANNED)

  • Overview of all registries (container/package) within a group
  • ... suggestions are welcome

⚡️ Requirements

  • Gitlab server (v4 API)
  • API token (read only or read/write)
  • Docker

💡 Getting started

  1. Generate aread_api orapi access token in Gitlab, depending on your requirements (e.g:https://gitlab.com/-/profile/personal_access_tokens)

Access Token

  1. Run docker with the required environment variables (GITLAB_BASE_URL, GITLAB_API_TOKEN)
docker run \  -p 8080:8080 \  -e GITLAB_BASE_URL=https://gitlab.com \  -e GITLAB_API_TOKEN=my_token \  larscom/gitlab-ci-dashboard:latest

Or you can run it with a TOML configration file

docker run \  -p 8080:8080 \  -v ./config.toml:/app/config.toml \  larscom/gitlab-ci-dashboard:latest
  1. Dashboard should be available at:http://localhost:8080/ showing (by default) all available groups and theirprojects

👉 Create/Cancel/Retry Pipelines

You are able to perform write operations like creating,canceling,retrying pipelines, but you need to set the environmentvariable:API_READ_ONLY tofalse and provide a validread/write access token.

👉 Hide the 'write' operations button

You are able to hide the ellipsis (...) when you just want to useREAD_ONLY mode. Set theUI_HIDE_WRITE_ACTIONS totrue.

⏰ Prometheus

Prometheus metrics are exposed on the following endpoint

http://localhost:8080/metrics/prometheus

🔌 Configration

You have the option to set the configuration via environment variables or a TOML file.A TOML file takes precedence over environment variables, except for theRUST_LOG variable.

Load from TOML file

An example TOML file can be found inside the./api folder.

Mount theconfig.toml inside the container (/app/config.toml)

docker run \  -p 8080:8080 \  -v ./config.toml:/app/config.toml \  larscom/gitlab-ci-dashboard:latest

📜 Custom CA certificate

If you are running a gitlab instance that is using a TLS certificate signed with a private CA you are able to provide that CA as mount (PEM encoded)

This is needed when the dashboard backend is unable to make a connection to the gitlab API over HTTPS.

Mount theca.crt inside the container (/app/certs/ca.crt)

docker run \  -p 8080:8080 \  -e GITLAB_BASE_URL=https://gitlab.com \  -e GITLAB_API_TOKEN=my_token \  -v ./ca.crt:/app/certs/ca.crt \  larscom/gitlab-ci-dashboard:latest

Troubleshooting

If you are still unable to connect with a custom CA cert, be sure that the gitlab server certificate contains a valid SAN (Subject Alternative Name)

If there is a mismatch the HTTP client is still unable to make a proper connection.

🌍 Environment variables

VariableTypeDescriptionRequiredDefault
GITLAB_BASE_URLstringThe base url to the Gitlab server (e.g:https://gitlab.com)yes
GITLAB_API_TOKENstringA readonly or read/write access token generated in Gitlab (see:https://gitlab.com/-/profile/personal_access_tokens)yes
GITLAB_GROUP_ONLY_IDSstringProvide a comma seperated string of group ids which will only be displayed (e.g: 123,789,888)no
GITLAB_GROUP_SKIP_IDSstringProvide a comma seperated string of group ids which will be ignored (e.g: 123,789,888)no
GITLAB_GROUP_ONLY_TOP_LEVELboolShow only top level groups, projects in sub groups will be shown inside the top level groups (see: GITLAB_GROUP_INCLUDE_SUBGROUPS)notrue
GITLAB_GROUP_INCLUDE_SUBGROUPSboolWhether to include subgroup projects whenever projects are fetched for a specific groupnotrue
GITLAB_GROUP_CACHE_TTL_SECONDSintExpire after write time in seconds for groups (cache)no300
GITLAB_PROJECT_SKIP_IDSstringProvide a comma seperated string of project ids which will be ignored (e.g: 123,789,888)no
GITLAB_PROJECT_CACHE_TTL_SECONDSintExpire after write time in seconds for projects (cache)no300
GITLAB_PIPELINE_CACHE_TTL_SECONDSintExpire after write time in seconds for pipelines (cache)no5
GITLAB_PIPELINE_HISTORY_DAYSintHow far back in time (days), it should fetch pipelines from gitlab (pipelines tab only)no5
GITLAB_BRANCH_CACHE_TTL_SECONDSintExpire after write time in seconds for branches (cache)no60
GITLAB_SCHEDULE_CACHE_TTL_SECONDSintExpire after write time in seconds for schedules (cache)no300
GITLAB_JOB_CACHE_TTL_SECONDSintExpire after write time in seconds for jobs (cache)no5
GITLAB_ARTIFACT_CACHE_TTL_SECONDSintExpire after write time in seconds for artifacts (cache)no1800
API_READ_ONLYboolIf true, you are not able to perform 'write' operations like retrying a pipelinenotrue
UI_HIDE_WRITE_ACTIONSboolIf true, the ellipsis action button (...) is hidden, handy if you want to use this application in read-only modenofalse
SERVER_LISTEN_IPstringThe IP address where the web server should listen onno0.0.0.0
SERVER_LISTEN_PORTintThe port where the web server should listen onno8080
SERVER_WORKER_COUNTintThe amount of worker threads the web server should havenoCPU specific
RUST_LOGstringThe log level of the application, set to "debug" to enable debug loggingnoinfo

[8]ページ先頭

©2009-2025 Movatter.jp