|
3 | 3 | [](https://hub.docker.com/r/larscom/gitlab-ci-dashboard) |
4 | 4 | [](https://hub.docker.com/r/larscom/gitlab-ci-dashboard) |
5 | 5 | [](https://opensource.org/licenses/MIT) |
6 | | -[](https://github.com/larscom/gitlab-ci-dashboard/actions/workflows/master-build.yml) |
| 6 | +[](https://github.com/larscom/gitlab-ci-dashboard) |
7 | 7 | [](https://hub.docker.com/r/larscom/gitlab-ci-dashboard/tags?page=1&name=master) |
8 | 8 |
|
9 | | -> Gitlab CI Dashboard will provide information about all pipeline statuses in Gitlab in one overview. |
| 9 | +## :fire: Notice |
| 10 | + |
| 11 | +This app is under heavy development, not all features might be fully implemented yet :wink: |
| 12 | + |
| 13 | +> Gitlab CI Dashboard will provide you information about all pipeline statuses in Gitlab. |
| 14 | +
|
| 15 | +### ✨ [Demo Dashboard](https://gitlab-ci-dashboard-g2yczvalwa-ez.a.run.app) |
10 | 16 |
|
11 | 17 | ## Highlights |
12 | 18 |
|
13 | | -- View Gitlab CI pipeline statuses |
14 | | -- Communication to the Gitlab API happens server side (so only one API token needed) |
15 | | -- Read only (write actions needs to be done in Gitlab) |
| 19 | +- View Gitlab CI pipeline statuses (maybe more functionality will be added later) uses the default branch by default |
| 20 | +- Communication to the Gitlab API happens server side (only 1 `read only` token is needed for you or your team) |
16 | 21 | - Easy navigation to Gitlab from within the dashboard |
17 | | -- Small in size, low memory usage |
18 | | -- Shows all groups within Gitlab by default (configurable) |
| 22 | +- Configurable caching (to handle rate limit or reduce load) |
19 | 23 |
|
20 | 24 | ## Requirements |
21 | 25 |
|
22 | | -- Gitlab server (self hosted or https://gitlab.com) |
23 | | -- Supports `v4` only of the Gitlab API |
| 26 | +- Gitlab server (can be self hosted) |
| 27 | +- Supports only `v4` of the Gitlab API |
24 | 28 | - Docker |
25 | 29 |
|
| 30 | +## Versioning |
| 31 | + |
| 32 | +- larscom/gitlab-ci-dashboard:x.x.x `specific release version, e.g: 1.1.0` |
| 33 | +- larscom/gitlab-ci-dashboard:latest `latest release` |
| 34 | +- larscom/gitlab-ci-dashboard:master `latest master build` |
| 35 | + |
26 | 36 | ## Getting started |
27 | 37 |
|
28 | 38 | 1. Generate a `read_api` access token in Gitlab (e.g: https://gitlab.com/-/profile/personal_access_tokens) |
29 | 39 |
|
30 | 40 |  |
31 | 41 |
|
32 | | -2. Run docker command with the required environment variables (GITLAB_BASE_URL, GITLAB_API_TOKEN) |
| 42 | +2. Run docker with the required environment variables (GITLAB_BASE_URL, GITLAB_API_TOKEN) |
33 | 43 |
|
34 | 44 | ```bash |
35 | | -docker run -p 8080:8080 -e GITLAB_BASE_URL=https://gitlab.com -e GITLAB_API_TOKEN=my_token larscom/gitlab-ci-dashboard:latest |
| 45 | +docker run -p 8080:8080 -e GITLAB_BASE_URL=https://example.gitlab.com -e GITLAB_API_TOKEN=my_token larscom/gitlab-ci-dashboard |
36 | 46 | ``` |
37 | 47 |
|
38 | 48 | 3. Dashboard should be available at: http://localhost:8080/#/ showing (by default) all available groups and their projects |
39 | 49 |
|
40 | | -## Environment variables |
| 50 | +## Gitlab specific env variables |
| 51 | + |
| 52 | +| Variable | Type | Description | Required | Default | |
| 53 | +| --------------------------- | ------- | ------------------------------------------------------------------------------------------------------ | -------- | ------- | |
| 54 | +| GITLAB_BASE_URL | string | The base url to the Gitlab server (e.g: https://gitlab.com) | yes | | |
| 55 | +| GITLAB_API_TOKEN | string | A readonly access token generated in Gitlab (see: https://gitlab.com/-/profile/personal_access_tokens) | yes | | |
| 56 | +| GITLAB_GROUP_ONLY_IDS | string | Provide a comma seperated string of group ids which will only be displayed (e.g: 123,789,888) | no | | |
| 57 | +| GITLAB_GROUP_SKIP_IDS | string | Provide a comma seperated string of group ids which will be ignored (e.g: 123,789,888) | no | | |
| 58 | +| GITLAB_GROUP_ONLY_TOP_LEVEL | boolean | Show only top level groups | no | false | |
| 59 | + |
| 60 | +## Server specific env variables |
41 | 61 |
|
42 | | -| Variable | Type | Description | Required | |
43 | | -| --------------------------- | ------- | ------------------------------------------------------------------------------------------------------ | -------- | |
44 | | -| GITLAB_BASE_URL | string | The base url to the Gitlab server (e.g: https://gitlab.com) | yes | |
45 | | -| GITLAB_API_TOKEN | string | A readonly access token generated in Gitlab (see: https://gitlab.com/-/profile/personal_access_tokens) | yes | |
46 | | -| GITLAB_GROUP_ONLY_IDS | string | Provide a comma seperated string of group ids which will only be visibile (e.g: 123,789,888) | no | |
47 | | -| GITLAB_GROUP_SKIP_IDS | string | Provide a comma seperated string of group ids which will be ignored (e.g: 123,789,888) | no | |
48 | | -| GITLAB_GROUP_ONLY_TOP_LEVEL | boolean | Show only top level groups (no child groups) | no | |
| 62 | +| Variable | Type | Description | Default | |
| 63 | +| ----------------------------- | ------- | ------------------------------------------------------- | ------- | |
| 64 | +| SERVER_REST_CACHE_TTL_SECONDS | integer | Time to Live (in seconds) for projects/groups/pipelines | 10 | |
| 65 | +| SERVER_DEBUG | boolean | Gives you more logging to see what is happening | false | |
49 | 66 |
|
50 | 67 | ## Why? |
51 | 68 |
|
52 | 69 | At the moment there is no overview of all pipeline statuses within Gitlab, so you might not be aware of a failed pipeline somewhere in Gitlab. |
53 | 70 |
|
54 | | -This dashboard is not a replacement for Gitlab, it is supposed to give you a `readonly` overview of all pipelines (configurable) within a Gitlab server. |
| 71 | +This dashboard is `not` a replacement for Gitlab, it is supposed to give you a `readonly` overview of all pipelines (configurable) within a Gitlab server. Maybe more functionality is there to come later. |
55 | 72 |
|
56 | | -## :fire: Notice |
| 73 | +## Run without docker (development) |
57 | 74 |
|
58 | | -This app is under heavy development, not all features might be fully implemented yet :wink: |
| 75 | +Be sure you have the following dependencies installed |
| 76 | +- Node 14+ |
| 77 | +- Go 1.19+ |
| 78 | + |
| 79 | +1. Run: `mv ./api/.local.example.env ./api/.local.env` <-- fill in the required env variables |
| 80 | +2. Run: `npm ci` <-- install frontend packages |
| 81 | +3. Run: `npm run api` <-- starts backend |
| 82 | +4. Run: `npm start` <-- starts frontend |
| 83 | +5. Open browser and goto: http://localhost:4200 |
0 commit comments