{"id":25895529,"url":"https://github.com/diamondlightsource/developer-portal","last_synced_at":"2025-08-10T08:10:24.829Z","repository":{"id":128224879,"uuid":"595226249","full_name":"DiamondLightSource/developer-portal","owner":"DiamondLightSource","description":"A deployment of backstage for use at Diamond Light Source","archived":false,"fork":false,"pushed_at":"2025-06-18T11:08:58.000Z","size":24980,"stargazers_count":2,"open_issues_count":26,"forks_count":4,"subscribers_count":21,"default_branch":"main","last_synced_at":"2025-06-18T11:36:38.186Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DiamondLightSource.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"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}},"created_at":"2023-01-30T16:50:50.000Z","updated_at":"2025-03-26T15:10:21.000Z","dependencies_parsed_at":"2024-01-26T14:47:01.058Z","dependency_job_id":"8829540d-8ea8-4755-b1f0-4273cb76d604","html_url":"https://github.com/DiamondLightSource/developer-portal","commit_stats":null,"previous_names":[],"tags_count":26,"template":false,"template_full_name":null,"purl":"pkg:github/DiamondLightSource/developer-portal","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DiamondLightSource%2Fdeveloper-portal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DiamondLightSource%2Fdeveloper-portal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DiamondLightSource%2Fdeveloper-portal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DiamondLightSource%2Fdeveloper-portal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DiamondLightSource","download_url":"https://codeload.github.com/DiamondLightSource/developer-portal/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DiamondLightSource%2Fdeveloper-portal/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269693593,"owners_count":24460248,"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","status":"online","status_checked_at":"2025-08-10T02:00:08.965Z","response_time":71,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2025-03-02T22:31:49.230Z","updated_at":"2025-08-10T08:10:24.801Z","avatar_url":"https://github.com/DiamondLightSource.png","language":"TypeScript","readme":"# Developer Portal\n\nThe Diamond Light Source developer portal, built with backstage for deployment on kubernetes.\n\n|                |                                                                    |\n| -------------- | ------------------------------------------------------------------ |\n| Source Code    | \u003chttps://github.com/DiamondLightSource/developer-portal\u003e           |\n| User Docs      | \u003chttps://diamondlightsource.github.io/developer-portal/user/\u003e      |\n| Developer Docs | \u003chttps://diamondlightsource.github.io/developer-portal/developer/\u003e |\n| Releases       | \u003chttps://github.com/DiamondLightSource/developer-portal/releases\u003e  |\n\n## Developing Locally (VSCode)\n\n- Load the `docker-compose` `module`, or:\n  - [Install docker-compose](https://docs.docker.com/compose/install/other/),\n  - Start the podman socket with `systemctl --user start podman.socket`\n  - Use the podman socket as the compose host by adding `export DOCKER_HOST=unix:///run/user/$UID/podman/podman.sock` to your `~/.bashrc`\n- Install `ms-vscode-remote.remote-containers`\n- Set `remote.containers.dockerPath` to `podman`\n- Set `remote.containers.dockerComposePath` to your `docker-compose`\n- Disable buildkit by adding `export DOCKER_BUILDKIT=0` to your `~/.bashrc`\n- Open Development Container\n- Create a `.env` file in the `.devcontainer` directory containing the [necessary secrets](#necessary-secrets)\n- Install package dependencies with `yarn --cwd backstage install`\n- Start the app, with `yarn --cwd backstage dev`\n\n## Deploying on Kubernetes (Diamond Light Source)\n\n- Access the cluster with `module load argus`\n- Adjust configuration in `app.yaml` and `charts/apps/values.yaml` as appropriate\n- If deploying to non `dev-portal` namespace, create a secret containing the [necessary secrets](#necessary-secrets) with `backend.auth.existingSecret` (recommended)\n- Deploy the portal, with:\n\n  ```sh\n  kubectl apply -f app.yaml\n  ```\n\n## Necessary secrets\n\nIn order to deploy this application, the following secrets are required\n\n- `GITHUB_TOKEN` - a GitHub personal access token used to retrieve organisation \u0026 repository data, with:\n  - `read:org`\n  - `read:user`\n  - `user:email`\n- `GITLAB_TOKEN` - a GitLab personal access token used to retrieve organisation \u0026 repository data, with:\n  - `api`\n  - `read_repository`\n  - `write_repository`\n- `GITHUB_APP_CLIENT_ID` - a GitHub OAuth App client ID used to provide user authentication\n- `GITHUB_APP_SECRET` - the corresponding GitHub OAuth App secret\n- `AWS_ACCESS_KEY_ID` - a AWS S3 bucket access key ID used to retrieve techdocs from the object store, with:\n  - `s3:ListBucket`\n  - `s3:GetObject`\n- `AWS_SECRET_ACCESS_KEY` - the corresponding AWS S3 bucket access key secret\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdiamondlightsource%2Fdeveloper-portal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdiamondlightsource%2Fdeveloper-portal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdiamondlightsource%2Fdeveloper-portal/lists"}