- Notifications
You must be signed in to change notification settings - Fork8
Gitlab CI Dashboard will provide you a global overview of all pipelines, schedules and their status within a single group
License
larscom/gitlab-ci-dashboard
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
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
- 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 1
read onlytoken is needed to serve a whole team- Optionally use a
read/writetoken to perform actions like restarting failed pipelines, create new pipelines orcancel pipelines.
- Optionally use a
- 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)
- Overview of all registries (container/package) within a group
- ... suggestions are welcome
- Gitlab server (v4 API)
- API token (read only or read/write)
- Docker
- Generate a
read_apiorapiaccess token in Gitlab, depending on your requirements (e.g:https://gitlab.com/-/profile/personal_access_tokens)
- 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
- Dashboard should be available at:http://localhost:8080/ showing (by default) all available groups and theirprojects
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.
You are able to hide the ellipsis (...) when you just want to useREAD_ONLY mode. Set theUI_HIDE_WRITE_ACTIONS totrue.
Prometheus metrics are exposed on the following endpoint
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.
An example TOML file can be found inside the
./apifolder.
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
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
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.
| Variable | Type | Description | Required | Default |
|---|---|---|---|---|
| GITLAB_BASE_URL | string | The base url to the Gitlab server (e.g:https://gitlab.com) | yes | |
| GITLAB_API_TOKEN | string | A readonly or read/write access token generated in Gitlab (see:https://gitlab.com/-/profile/personal_access_tokens) | yes | |
| GITLAB_GROUP_ONLY_IDS | string | Provide a comma seperated string of group ids which will only be displayed (e.g: 123,789,888) | no | |
| GITLAB_GROUP_SKIP_IDS | string | Provide a comma seperated string of group ids which will be ignored (e.g: 123,789,888) | no | |
| GITLAB_GROUP_ONLY_TOP_LEVEL | bool | Show only top level groups, projects in sub groups will be shown inside the top level groups (see: GITLAB_GROUP_INCLUDE_SUBGROUPS) | no | true |
| GITLAB_GROUP_INCLUDE_SUBGROUPS | bool | Whether to include subgroup projects whenever projects are fetched for a specific group | no | true |
| GITLAB_GROUP_CACHE_TTL_SECONDS | int | Expire after write time in seconds for groups (cache) | no | 300 |
| GITLAB_PROJECT_SKIP_IDS | string | Provide a comma seperated string of project ids which will be ignored (e.g: 123,789,888) | no | |
| GITLAB_PROJECT_CACHE_TTL_SECONDS | int | Expire after write time in seconds for projects (cache) | no | 300 |
| GITLAB_PIPELINE_CACHE_TTL_SECONDS | int | Expire after write time in seconds for pipelines (cache) | no | 5 |
| GITLAB_PIPELINE_HISTORY_DAYS | int | How far back in time (days), it should fetch pipelines from gitlab (pipelines tab only) | no | 5 |
| GITLAB_BRANCH_CACHE_TTL_SECONDS | int | Expire after write time in seconds for branches (cache) | no | 60 |
| GITLAB_SCHEDULE_CACHE_TTL_SECONDS | int | Expire after write time in seconds for schedules (cache) | no | 300 |
| GITLAB_JOB_CACHE_TTL_SECONDS | int | Expire after write time in seconds for jobs (cache) | no | 5 |
| GITLAB_ARTIFACT_CACHE_TTL_SECONDS | int | Expire after write time in seconds for artifacts (cache) | no | 1800 |
| API_READ_ONLY | bool | If true, you are not able to perform 'write' operations like retrying a pipeline | no | true |
| UI_HIDE_WRITE_ACTIONS | bool | If true, the ellipsis action button (...) is hidden, handy if you want to use this application in read-only mode | no | false |
| SERVER_LISTEN_IP | string | The IP address where the web server should listen on | no | 0.0.0.0 |
| SERVER_LISTEN_PORT | int | The port where the web server should listen on | no | 8080 |
| SERVER_WORKER_COUNT | int | The amount of worker threads the web server should have | no | CPU specific |
| RUST_LOG | string | The log level of the application, set to "debug" to enable debug logging | no | info |
About
Gitlab CI Dashboard will provide you a global overview of all pipelines, schedules and their status within a single group
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Uh oh!
There was an error while loading.Please reload this page.
Contributors3
Uh oh!
There was an error while loading.Please reload this page.

