{"id":46145590,"url":"https://github.com/incidentbot/console","last_synced_at":"2026-03-02T07:16:31.988Z","repository":{"id":270634296,"uuid":"864982373","full_name":"incidentbot/console","owner":"incidentbot","description":"A web interface for Incident Bot.","archived":false,"fork":false,"pushed_at":"2025-09-03T03:03:26.000Z","size":3297,"stargazers_count":2,"open_issues_count":5,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-03T05:20:17.473Z","etag":null,"topics":["chakra-ui","incident-management","incidentbot","react","tanstack-query","tanstack-router","typescript","vitejs"],"latest_commit_sha":null,"homepage":"https://docs.incidentbot.io","language":"TypeScript","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/incidentbot.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-09-29T17:21:12.000Z","updated_at":"2025-09-03T03:02:12.000Z","dependencies_parsed_at":null,"dependency_job_id":"1173bc76-3298-4807-acf8-8192fcd6f4d1","html_url":"https://github.com/incidentbot/console","commit_stats":null,"previous_names":["incidentbot/console"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/incidentbot/console","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/incidentbot%2Fconsole","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/incidentbot%2Fconsole/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/incidentbot%2Fconsole/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/incidentbot%2Fconsole/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/incidentbot","download_url":"https://codeload.github.com/incidentbot/console/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/incidentbot%2Fconsole/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29994763,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-02T01:47:34.672Z","status":"online","status_checked_at":"2026-03-02T02:00:07.342Z","response_time":60,"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":["chakra-ui","incident-management","incidentbot","react","tanstack-query","tanstack-router","typescript","vitejs"],"created_at":"2026-03-02T07:16:31.388Z","updated_at":"2026-03-02T07:16:31.979Z","avatar_url":"https://github.com/incidentbot.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Incident Bot Console\n\n\u003cimg src=\"./assets/logo.png\" width=\"250\" height=\"250\"/\u003e\n\nA web interface for [Incident Bot](https://github.com/incidentbot/incidentbot).\n\nBuilt with [Vite](https://vitejs.dev/), [React](https://reactjs.org/), [TypeScript](https://www.typescriptlang.org/), [TanStack Query](https://tanstack.com/query), [TanStack Router](https://tanstack.com/router) and [Chakra UI](https://chakra-ui.com/).\n\n## Usage\n\nSince the console depends on connectivity to the Incident Bot API, your setup should meet the following requirements:\n\n* The API must be enabled for your Incident Bot deployment. See the documentation [here](https://docs.incidentbot.io/configuration/#api).\n* All API routes within the backend application are only meant to serve the console application. As such, they are secured using JWT auth. They will not work otherwise.\n* It is your responsibility to determine how best to expose Incident Bot's API, but the API endpoint must be reachable from the client application in order for it to work.\n\n## Building and Deploying\n\nYou will need to build your own image using the Dockerfile in this repository, passing in the following args:\n\n* `VITE_API_URL` - The URL where the API for Incident Bot is made available.\n* `NODE_ENV` - example: `production`\n\nOnce the image has been built, you can deploy it using the Helm chart.\n\nThere is a default base image you may reference that adds the repository contents but does not run `npm run build`, allowing you to reference this base image, provide this argument, and build downsteam without having to clone this repository.\n\nExample:\n\n```dockerfile\nFROM eb129/incidentbot-console:v0.1.4 AS build\nWORKDIR /app\nARG VITE_API_URL=${VITE_API_URL}\nRUN npm run build\nFROM nginx:1\nCOPY --from=build /app/dist/ /usr/share/nginx/html\nCOPY ./nginx.conf /etc/nginx/conf.d/default.conf\nCOPY ./nginx-backend-not-found.conf /etc/nginx/extra-conf.d/backend-not-found.conf\n```\n\n## Development\n\nInstall the required version of Node.js:\n\n```bash\n# If using fnm\nfnm install\n\n# If using nvm\nnvm install\n```\n\nOnce the installation is complete, switch to the installed version:\n\n```bash\n# If using fnm\nfnm use \n\n# If using nvm\nnvm use\n```\n\nInstall required packages:\n\n```bash\nnpm install\n```\n\nStart development server:\n\n```bash\nnpm run dev\n```\n\nInterface is available at  http://localhost:5173/ by default.\n\nThis is purely for local development and doesn't build any files. For production purposes, reference the Dockerfile or check out the contents of `package.json` to see the recommended method for compiling.\n\n## Code Structure\n\n* `src` - The main UI code.\n* `src/assets` - Static assets.\n* `src/client` - The generated OpenAPI client.\n* `src/components` - UI components.\n* `src/hooks` - Custom hooks.\n* `src/routes` - Routes.\n* `src/theme.tsx` - The Chakra UI custom theme.\n* `tests` - Any configured tests.\n\n## End-to-End Testing with Playwright\n\nThe UI includes initial end-to-end tests using Playwright. To run the tests, you need to have the Docker Compose stack running. Start the stack with the following command:\n\n```bash\ndocker compose up -d\n```\n\nThen, you can run the tests with the following command:\n\n```bash\nnpx playwright test\n```\n\nYou can also run your tests in UI mode to see the browser and interact with it running:\n\n```bash\nnpx playwright test --ui\n```\n\nTo stop and remove the Docker Compose stack and clean the data created in tests, use the following command:\n\n```bash\ndocker compose down -v\n```\n\nTo update the tests, navigate to the tests directory and modify the existing test files or add new ones as needed.\n\nFor more information on writing and running Playwright tests, refer to the official [Playwright documentation](https://playwright.dev/docs/intro).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fincidentbot%2Fconsole","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fincidentbot%2Fconsole","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fincidentbot%2Fconsole/lists"}