{"id":19390847,"url":"https://github.com/tecnickcom/web-cctray","last_synced_at":"2025-04-24T00:31:38.654Z","repository":{"id":66250109,"uuid":"101575449","full_name":"tecnickcom/web-cctray","owner":"tecnickcom","description":"Web-based dashboard for CI/CD cctray.xml files","archived":false,"fork":false,"pushed_at":"2020-01-02T13:00:21.000Z","size":79,"stargazers_count":7,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-02T22:51:13.592Z","etag":null,"topics":["build","build-status","cctray","ci","dashdoard","gocd","jenkins","pipeline","travis-ci","web-cctray"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tecnickcom.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"custom":["https://www.paypal.com/cgi-bin/webscr?cmd=_donations\u0026currency_code=GBP\u0026business=paypal@tecnick.com\u0026item_name=donation%20for%20web-cctray%20project"]}},"created_at":"2017-08-27T19:32:59.000Z","updated_at":"2023-07-05T08:45:31.000Z","dependencies_parsed_at":null,"dependency_job_id":"3dc345ba-4999-4594-a561-9bb61f40e11f","html_url":"https://github.com/tecnickcom/web-cctray","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tecnickcom%2Fweb-cctray","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tecnickcom%2Fweb-cctray/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tecnickcom%2Fweb-cctray/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tecnickcom%2Fweb-cctray/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tecnickcom","download_url":"https://codeload.github.com/tecnickcom/web-cctray/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250539444,"owners_count":21447310,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["build","build-status","cctray","ci","dashdoard","gocd","jenkins","pipeline","travis-ci","web-cctray"],"created_at":"2024-11-10T10:23:35.062Z","updated_at":"2025-04-24T00:31:38.639Z","avatar_url":"https://github.com/tecnickcom.png","language":"JavaScript","funding_links":["https://www.paypal.com/cgi-bin/webscr?cmd=_donations\u0026currency_code=GBP\u0026business=paypal@tecnick.com\u0026item_name=donation%20for%20web-cctray%20project"],"categories":[],"sub_categories":[],"readme":"# web-cctray\n\n*Web-based dashboard for cctray.xml files*\n\n[![Master Build Status](https://secure.travis-ci.org/tecnickcom/web-cctray.png?branch=master)](https://travis-ci.org/tecnickcom/web-cctray?branch=master)\n\n[![Donate via PayPal](https://img.shields.io/badge/donate-paypal-87ceeb.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_donations\u0026currency_code=GBP\u0026business=paypal@tecnick.com\u0026item_name=donation%20for%20web-cctray%20project)\n*Please consider supporting this project by making a donation via [PayPal](https://www.paypal.com/cgi-bin/webscr?cmd=_donations\u0026currency_code=GBP\u0026business=paypal@tecnick.com\u0026item_name=donation%20for%20web-cctray%20project)*\n\n* **category**    Web Application\n* **author**      Nicola Asuni \u003cinfo@tecnick.com\u003e\n* **copyright**   2013-2020 Nicola Asuni - Tecnick.com LTD\n* **license**     MIT (see LICENSE)\n* **link**        https://github.com/tecnickcom/web-cctray\n\n## Description\n\nThis web application displays the build status of projects on a continuous integration server by parsing the `cctray.xml` file.\n\nThis project can be used directly by opening the `index.html` file in the *src* directory, or it can be packaged and minimized using the tools described below.\n\n![web-cctray screenshot](resources/screenshot.png \"web-cctray screenshot\")\n\n\n### Otional query parameters:\n\n* **c** : can be used to specify an alternative configuration file name, excluding the \".json\" extension.\n* **d** : can be used to specify the configured dashboard to display, otherwise all the dashboards will be displayed in turn.\n* **a** : comma-separated list of activities to filter. Valid values are: Sleeping, Building, CheckingModifications, Pending.\n* **s** : comma-separated list of statuses to filter. Valid values are: Success, Failure, Exception, Unknown.\n* **x** : comma-separated list of substrings to remove from the the pipeline name.\n* **l** : flag to enable lexicographical order.\n\n#### Examples:\n\n* `http://example.com/web-cctray/index.html?c=alternative_config\u0026d=DashboardName\u0026t=1\u0026l=1`\n* `http://example.com/web-cctray/index.html?c=config-all\u0026s=Failure`\n* `http://example.com/web-cctray/index.html?c=config-all\u0026a=Building\u0026s=Failure\u0026x=%20::%20Default`\n\n\n## Configuration\n\nCopy, rename and edit the `src/config/config.example.json` to `src/config/config.json` file.\n\n### Configuration fields:\n\n* **refresh**   : Number of seconds to wait before refreshing the page.\n* **blank**     : URL of the resource to display in case of blank dashboard (no pipelines to display)\n* **dashboard** : Array of dashboards. It is possible to define multiple dashboards.\n    * **name**      : Generic name.\n    * **url**       : URL of the cctray.xml file, for example: http://username:password@example.com/cctray.xml\n    * **access**    : String containing \"user:password\" for Basic HTTP Authentication.\n    * **boxration** : Default width/height ratio for a pipeline box.\n    * **pipeline**  : List of the CI/CD pipeline names as reported by cctray.xml, or the word \"all\" to import all pipelines specified in cctray.xml.\n    * **exclude**   : List of the CI/CD pipeline names to exclude.\n    * **activity**  : List of activities to filter. Valid values are: Sleeping, Building, CheckingModifications, Pending.\n    * **status**    : List of statuses to filter. Valid values are: Success, Failure, Exception, Unknown.\n    * **stripname** : List of substrings to remove from the the pipeline name.\n    * **sort**      : Sort the pipelines in lexicographical order when set to true.\n    \n\n### Configuration example\n\n```\n{\n  \"refresh\": 5,\n  \"blank\": \"https://www.example.com/page_to_display_in_case_of_blank_dashboard.html\",\n  \"dashboard\": [\n    {\n      \"name\": \"demo1\",\n      \"url\": \"http://localhost/cctray.example.xml\",\n      \"access\": \"user:password\",\n      \"boxratio\": 2,\n      \"pipeline\": [\n        \"build-linux :: build-non-server\",\n        \"build-linux :: build-non-server :: agent\",\n        \"build-linux :: build-non-server :: agent-bootstrapper\"\n      ]\n    },\n    {\n      \"name\": \"demo2\",\n      \"url\": \"http://localhost/cctray.example.xml\",\n      \"access\": \"\",\n      \"boxratio\": 2,\n      \"pipeline\": [\n        \"build-linux :: build-non-server :: util\",\n        \"plugins :: build\",\n        \"gocd-docs.go.cd-release-16.6.0 :: Build :: build_job\",\n        \"UploadInstallers :: UploadInstallers\",\n        \"github-oauth-authorization-plugin-PR :: build\",\n        \"gocd-docs.go.cd-release-16.9.0 :: PushToGHPages :: pushtoghpages_job\",\n        \"gocd-docs.go.cd-release-16.5.0 :: PushToGHPages\",\n        \"docs.go.cd-release-17.7.0 :: PushToGHPages\"\n      ]\n    },\n    {\n      \"name\": \"demo3\",\n      \"url\": \"http://localhost/cctray.example.xml\",\n      \"access\": \"\",\n      \"boxratio\": 2,\n      \"activity\": [\"Sleeping\", \"Building\", \"CheckingModifications\", \"Pending\"],\n      \"status\": [\"Success\", \"Failure\", \"Exception\", \"Unknown\"],\n      \"stripname\": [\" :: \", \"build\"],\n      \"sort\": true,\n      \"separator\": \" :: \",\n      \"level\": 3,\n      \"pipeline\": [\n        \"all\"\n      ],\n      \"exclude\": [\n        \"gocd-docs.go.cd-release-16.5.0 :: PushToGHPages\",\n        \"docs.go.cd-release-17.7.0 :: PushToGHPages\"\n      ]\n    },\n    {\n      \"name\": \"demo4\",\n      \"url\": \"http://localhost/cctray.example.xml\",\n      \"access\": \"\",\n      \"boxratio\": 2,\n      \"pipeline\": [\n        \"*http://www.example.com/external_page.html\"\n      ]\n    }\n  ]\n}\n```\n\n## Supported CI/CD systems\n\nThe following is a list of CI/CD systems that provides a cctray.xml file:\n\n* [Buddybuild](https://www.buddybuild.com)\n* [CircleCI](https://circleci.com)\n* [CruiseControl](http://cruisecontrol.sourceforge.net)\n* [CruiseControl.NET](http://www.cruisecontrolnet.org)\n* [CruiseControl.rb](http://cruisecontrolrb.thoughtworks.com)\n* [GoCD](http://www.go.cd)\n* [GreenhouseCI](http://greenhouseci.com)\n* [Hudson](http://hudson-ci.org)\n* [Jenkins](http://jenkins-ci.org)\n* [Semaphore](https://semaphoreapp.com)\n* [Snap CI](https://snap-ci.com)\n* [TeamCity](https://www.jetbrains.com/teamcity)\n* [Travis](https://travis-ci.org)\n\n\n## Packages\n\nPre-built packages are available at:\n\n* DEB : https://bintray.com/tecnickcom/deb/web-cctray\n* RPM : https://bintray.com/tecnickcom/rpm/web-cctray\n\nThe application is installed by default in /usr/share/web-cctray\n\n\n## Getting started (for developers)\n\nThis project include a Makefile that allows you to automate common operations in a Debian/Ubuntu enviromnent.\n\nTo see all available options:\n```\nmake help\n```\nTo build the project (requires node):\n```\nmake deps build\n```\n\n## Notes\n\n### Example of nginx configuration as TLS termination proxy for the CI/CD system.\n\nIn this example *web-cctray* and CI/CD system (GoCD) are installed in the same server.\nThe CORS (*cross-origin resource sharing*) settings are there in case you want install *web-cctray* in a diffrent server.\nYou should replace ```\u003cYOUR_SERVER_NAME\u003e``` with your own server name (e.g. \"example.com\"), set the correct URL to the CI/CD system\n(in this example: ```http://localhost:8153/```) and the *cctray.xml* full URL (in this example: ```http://localhost:8153/go/cctray.xml```).\n\n```\nserver {\n\tlisten 443;\n\tssl on;\n\tssl_certificate /etc/letsencrypt/live/\u003cYOUR_SERVER_NAME\u003e/cert.pem;\n\tssl_certificate_key /etc/letsencrypt/live/\u003cYOUR_SERVER_NAME\u003e/privkey.pem;\n\tserver_name \u003cYOUR_SERVER_NAME\u003e;\n\tserver_tokens off;\n\tlocation /web-cctray {\n\t\troot /usr/share;\n\t\tindex index.html;\n\t\taccess_log off;\n\t\texpires 0;\n\t\tadd_header Cache-Control private;\n\t\tsendfile  off;\n\t\ttry_files $uri $uri/ =404;\n\t}\n\tlocation / {\n\t\tproxy_pass http://localhost:8153/;\n\t}\n\tlocation = /go/cctray.xml {\n\t\t# CORS settings\n\t\tmore_set_headers 'Access-Control-Allow-Origin: $http_origin';\n\t\tmore_set_headers 'Access-Control-Allow-Methods: GET, OPTIONS';\n\t\tmore_set_headers 'Access-Control-Allow-Credentials: true';\n\t\tmore_set_headers 'Access-Control-Allow-Headers: Origin,Authorization,Cache-Control,X-Requested-With,Content-Type,Accept,Credentials';\n\t\tif ($request_method = OPTIONS) {\n\t\t\treturn 200;\n\t\t}\n\t\tproxy_pass http://localhost:8153/go/cctray.xml;\n\t}\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftecnickcom%2Fweb-cctray","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftecnickcom%2Fweb-cctray","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftecnickcom%2Fweb-cctray/lists"}