Gitlab CI Dashboard will provide you a global overview of all pipelines, schedules and their status
50K+

Gitlab CI Dashboard will provide you with a global overview of all pipelines, schedules, and their statuses within a single group. The default functionality of Gitlab is limited at the project level. This can become hard to manage when you have a lot of projects, potentially resulting in undetected failed pipelines.
read only token is needed to serve a whole team
read/write token to perform actions like restarting failed pipelines, create new pipelines or
cancel pipelines.read_api or api access token in Gitlab, depending on your requirements (
e.g: https://gitlab.com/-/profile/personal_access_tokens)
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
You are able to perform write operations like creating,canceling,retrying pipelines, but you need to set the environment
variable: API_READ_ONLY to false and provide a valid read/write access token.
You are able to hide the ellipsis (...) when you just want to use READ_ONLY mode. Set the UI_HIDE_WRITE_ACTIONS to
true.
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 the RUST_LOG variable.
An example TOML file can be found inside the
./apifolder.
Mount the config.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 the ca.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.
Below is a working config for a Caddy reverse proxy server to serve the dashboard on a different path.
:80 {
handle_path /my-custom-path* {
reverse_proxy gitlab-ci-dashboard:8080
}
}
The dashboard should now be available at: https://example.com/my-custom-path
| 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 |
| UI_PAGE_SIZE_OPTIONS | string | Provide a comma seperated string of page sizes. This is the dropdown of available page sizes inside the paginator of the tables | no | 10,20,30,40,50 |
| UI_DEFAULT_PAGE_SIZE | int | The default page size which should be selected for the paginator | no | 10 |
| 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 |
Content type
Image
Digest
sha256:630a1b3c0…
Size
17.4 MB
Last updated
5 months ago
docker pull larscom/gitlab-ci-dashboard:renovatedocker-setup-buildx-action-4.x