Home
Softono
g

gchq

Professional software vendor delivering innovative solutions on the Softono platform. Specialized in both open-source and proprietary software development.

Total Products
2

Software by gchq

CyberChef
Open Source

CyberChef

# CyberChef [![](https://github.com/gchq/CyberChef/workflows/Master%20Build,%20Test%20&%20Deploy/badge.svg)](https://github.com/gchq/CyberChef/actions?query=workflow%3A%22Master+Build%2C+Test+%26+Deploy%22) [![npm](https://img.shields.io/npm/v/cyberchef.svg)](https://www.npmjs.com/package/cyberchef) [![](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/gchq/CyberChef/blob/master/LICENSE) [![Gitter](https://badges.gitter.im/gchq/CyberChef.svg)](https://gitter.im/gchq/CyberChef?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) #### *The Cyber Swiss Army Knife* CyberChef is a simple, intuitive web app for carrying out all manner of "cyber" operations within a web browser. These operations include simple encoding like XOR and Base64, more complex encryption like AES, DES and Blowfish, creating binary and hexdumps, compression and decompression of data, calculating hashes and checksums, IPv6 and X.509 parsing, changing character encodings, and much more. The tool is designed to enable both technical and non-technical analysts to manipulate data in complex ways without having to deal with complex tools or algorithms. It was conceived, designed, built and incrementally improved by an analyst in their 10% innovation time over several years. ## Live demo CyberChef is still under active development. As a result, it shouldn't be considered a finished product. There is still testing and bug fixing to do, new features to be added and additional documentation to write. Please contribute! Cryptographic operations in CyberChef should not be relied upon to provide security in any situation. No guarantee is offered for their correctness. [A live demo can be found here][1] - have fun! ## Running Locally with Docker **Prerequisites** - [Docker](https://www.docker.com/products/docker-desktop/) - Docker Desktop must be open and running on your machine #### Option 1: Build the Docker Image Yourself 1. Build the docker image ```bash docker build --tag cyberchef --ulimit nofile=10000 . ``` 2. Run the docker container ```bash docker run -it -p 8080:8080 cyberchef ``` 3. Navigate to `http://localhost:8080` in your browser #### Option 2: Use the pre-built Docker Image If you prefer to skip the build process, you can use the pre-built image ```bash docker run -it -p 8080:8080 ghcr.io/gchq/cyberchef:latest ``` Just like before, navigate to `http://localhost:8080` in your browser. This image is built and published through our [GitHub Workflows](.github/workflows/releases.yml) ## How it works There are four main areas in CyberChef: 1. The **input** box in the top right, where you can paste, type or drag the text or file you want to operate on. 2. The **output** box in the bottom right, where the outcome of your processing will be displayed. 3. The **operations** list on the far left, where you can find all the operations that CyberChef is capable of in categorised lists, or by searching. 4. The **recipe** area in the middle, where you can drag the operations that you want to use and specify arguments and options. You can use as many operations as you like in simple or complex ways. Some examples are as follows: - [Decode a Base64-encoded string][2] - [Convert a date and time to a different time zone][3] - [Parse a Teredo IPv6 address][4] - [Convert data from a hexdump, then decompress][5] - [Decrypt and disassemble shellcode][6] - [Display multiple timestamps as full dates][7] - [Carry out different operations on data of different types][8] - [Use parts of the input as arguments to operations][9] - [Perform AES decryption, extracting the IV from the beginning of the cipher stream][10] - [A simpler way to perform the same AES Decryption][13] - [Automagically detect several layers of nested encoding][12] ## Features - Drag and drop - Operations can be dragged in and out of the recipe list, or reorganised. - Files up to 2GB can be dragged over the input box to load them directly into the browser. - Auto Bake - Whenever you modify the input or the recipe, CyberChef will automatically "bake" for you and produce the output immediately. - This can be turned off and operated manually if it is affecting performance (if the input is very large, for instance). - Automated encoding detection - CyberChef uses [a number of techniques](https://github.com/gchq/CyberChef/wiki/Automatic-detection-of-encoded-data-using-CyberChef-Magic) to attempt to automatically detect which encodings your data is under. If it finds a suitable operation that make sense of your data, it displays the 'magic' icon in the Output field which you can click to decode your data. - Breakpoints - You can set breakpoints on any operation in your recipe to pause execution before running it. - You can also step through the recipe one operation at a time to see what the data looks like at each stage. - Save and load recipes - If you come up with an awesome recipe that you know you’ll want to use again, just click "Save recipe" and add it to your local storage. It'll be waiting for you next time you visit CyberChef. - You can also copy the URL, which includes your recipe and input, to easily share it with others. - Search - If you know the name of the operation you want or a word associated with it, start typing it into the search field and any matching operations will immediately be shown. - Highlighting - When you highlight text in the input or output, the offset and length values will be displayed and, if possible, the corresponding data will be highlighted in the output or input respectively (example: [highlight the word 'question' in the input to see where it appears in the output][11]). - Save to file and load from file - You can save the output to a file at any time or load a file by dragging and dropping it into the input field. Files up to around 2GB are supported (depending on your browser), however, some operations may take a very long time to run over this much data. - CyberChef is entirely client-side - It should be noted that none of your recipe configuration or input (either text or files) is ever sent to the CyberChef web server - all processing is carried out within your browser, on your own computer. - Due to this feature, CyberChef can be downloaded and run locally. You can use the link in the top left corner of the app to download a full copy of CyberChef and drop it into a virtual machine, share it with other people, or host it in a closed network. ## Deep linking By manipulating CyberChef's URL hash, you can change the initial settings with which the page opens. The format is `https://gchq.github.io/CyberChef/#recipe=Operation()&input=...` Supported arguments are `recipe`, `input` (encoded in Base64), and `theme`. ## Browser support CyberChef is built to support - Google Chrome 50+ - Mozilla Firefox 38+ ## Node.js support CyberChef is built to fully support Node.js `v24`. For more information, see the ["Node API" wiki page](https://github.com/gchq/CyberChef/wiki/Node-API) ## Contributing Contributing a new operation to CyberChef is super easy! The quickstart script will walk you through the process. If you can write basic JavaScript, you can write a CyberChef operation. An installation walkthrough, how-to guides for adding new operations and themes, descriptions of the repository structure, available data types and coding conventions can all be found in the ["Contributing" wiki page](https://github.com/gchq/CyberChef/wiki/Contributing). - Push your changes to your fork. - Submit a pull request. If you are doing this for the first time, you will be prompted to sign the [GCHQ Contributor Licence Agreement](https://cla-assistant.io/gchq/CyberChef) via the CLA assistant on the pull request. This will also ask whether you are happy for GCHQ to contact you about a token of thanks for your contribution, or about job opportunities at GCHQ. ## Licencing CyberChef is released under the [Apache 2.0 Licence](https://www.apache.org/licenses/LICENSE-2.0) and is covered by [Crown Copyright](https://www.nationalarchives.gov.uk/information-management/re-using-public-sector-information/uk-government-licensing-framework/crown-copyright/). [1]: https://gchq.github.io/CyberChef [2]: https://gchq.github.io/CyberChef/#recipe=From_Base64('A-Za-z0-9%2B/%3D',true)&input=VTI4Z2JHOXVaeUJoYm1RZ2RHaGhibXR6SUdadmNpQmhiR3dnZEdobElHWnBjMmd1 [3]: https://gchq.github.io/CyberChef/#recipe=Translate_DateTime_Format('Standard%20date%20and%20time','DD/MM/YYYY%20HH:mm:ss','UTC','dddd%20Do%20MMMM%20YYYY%20HH:mm:ss%20Z%20z','Australia/Queensland')&input=MTUvMDYvMjAxNSAyMDo0NTowMA [4]: https://gchq.github.io/CyberChef/#recipe=Parse_IPv6_address()&input=MjAwMTowMDAwOjQxMzY6ZTM3ODo4MDAwOjYzYmY6M2ZmZjpmZGQy [5]: https://gchq.github.io/CyberChef/#recipe=From_Hexdump()Gunzip()&input=MDAwMDAwMDAgIDFmIDhiIDA4IDAwIDEyIGJjIGYzIDU3IDAwIGZmIDBkIGM3IGMxIDA5IDAwIDIwICB8Li4uLi6881cu/y7HwS4uIHwKMDAwMDAwMTAgIDA4IDA1IGQwIDU1IGZlIDA0IDJkIGQzIDA0IDFmIGNhIDhjIDQ0IDIxIDViIGZmICB8Li7QVf4uLdMuLsouRCFb/3wKMDAwMDAwMjAgIDYwIGM3IGQ3IDAzIDE2IGJlIDQwIDFmIDc4IDRhIDNmIDA5IDg5IDBiIDlhIDdkICB8YMfXLi6%2BQC54Sj8uLi4ufXwKMDAwMDAwMzAgIDRlIGM4IDRlIDZkIDA1IDFlIDAxIDhiIDRjIDI0IDAwIDAwIDAwICAgICAgICAgICB8TshObS4uLi5MJC4uLnw [6]: https://gchq.github.io/CyberChef/#recipe=RC4(%7B'option':'UTF8','string':'secret'%7D,'Hex','Hex')Disassemble_x86('64','Full%20x86%20architecture',16,0,true,true)&input=MjFkZGQyNTQwMTYwZWU2NWZlMDc3NzEwM2YyYTM5ZmJlNWJjYjZhYTBhYWJkNDE0ZjkwYzZjYWY1MzEyNzU0YWY3NzRiNzZiM2JiY2QxOTNjYjNkZGZkYmM1YTI2NTMzYTY4NmI1OWI4ZmVkNGQzODBkNDc0NDIwMWFlYzIwNDA1MDcxMzhlMmZlMmIzOTUwNDQ2ZGIzMWQyYmM2MjliZTRkM2YyZWIwMDQzYzI5M2Q3YTVkMjk2MmMwMGZlNmRhMzAwNzJkOGM1YTZiNGZlN2Q4NTlhMDQwZWVhZjI5OTczMzYzMDJmNWEwZWMxOQ [7]: https://gchq.github.io/CyberChef/#recipe=Fork('%5C%5Cn','%5C%5Cn',false)From_UNIX_Timestamp('Seconds%20(s)')&input=OTc4MzQ2ODAwCjEwMTI2NTEyMDAKMTA0NjY5NjQwMAoxMDgxMDg3MjAwCjExMTUzMDUyMDAKMTE0OTYwOTYwMA [8]: https://gchq.github.io/CyberChef/#recipe=Fork('%5C%5Cn','%5C%5Cn',false)Conditional_Jump('1',false,'base64',10)To_Hex('Space')Return()Label('base64')To_Base64('A-Za-z0-9%2B/%3D')&input=U29tZSBkYXRhIHdpdGggYSAxIGluIGl0ClNvbWUgZGF0YSB3aXRoIGEgMiBpbiBpdA [9]: https://gchq.github.io/CyberChef/#recipe=Register('key%3D(%5B%5C%5Cda-f%5D*)',true,false)Find_/_Replace(%7B'option':'Regex','string':'.*data%3D(.*)'%7D,'$1',true,false,true)RC4(%7B'option':'Hex','string':'$R0'%7D,'Hex','Latin1')&input=aHR0cDovL21hbHdhcmV6LmJpei9iZWFjb24ucGhwP2tleT0wZTkzMmE1YyZkYXRhPThkYjdkNWViZTM4NjYzYTU0ZWNiYjMzNGUzZGIxMQ [10]: https://gchq.github.io/CyberChef/#recipe=Register('(.%7B32%7D)',true,false,false)Drop_bytes(0,32,false)AES_Decrypt(%7B'option':'Hex','string':'1748e7179bd56570d51fa4ba287cc3e5'%7D,%7B'option':'Hex','string':'$R0'%7D,16,'CTR','Hex','Raw',%7B'option':'Hex','string':''%7D,%7B'option':'Hex','string':''%7D,'Off')&input=NTFlMjAxZDQ2MzY5OGVmNWY3MTdmNzFmNWI0NzEyYWYyMGJlNjc0YjNiZmY1M2QzODU0NjM5NmVlNjFkYWFjNDkwOGUzMTljYTNmY2Y3MDg5YmZiNmIzOGVhOTllNzgxZDI2ZTU3N2JhOWRkNmYzMTFhMzk0MjBiODk3OGU5MzAxNGIwNDJkNDQ3MjZjYWVkZjU0MzZlYWY2NTI0MjljMGRmOTRiNTIxNjc2YzdjMmNlODEyMDk3YzI3NzI3M2M3YzcyY2Q4OWFlYzhkOWZiNGEyNzU4NmNjZjZhYTBhZWUyMjRjMzRiYTNiZmRmN2FlYjFkZGQ0Nzc2MjJiOTFlNzJjOWU3MDlhYjYwZjhkYWY3MzFlYzBjYzg1Y2UwZjc0NmZmMTU1NGE1YTNlYzI5MWNhNDBmOWU2MjlhODcyNTkyZDk4OGZkZDgzNDUzNGFiYTc5YzFhZDE2NzY3NjlhN2MwMTBiZjA0NzM5ZWNkYjY1ZDk1MzAyMzcxZDYyOWQ5ZTM3ZTdiNGEzNjFkYTQ2OGYxZWQ1MzU4OTIyZDJlYTc1MmRkMTFjMzY2ZjMwMTdiMTRhYTAxMWQyYWYwM2M0NGY5NTU3OTA5OGExNWUzY2Y5YjQ0ODZmOGZmZTljMjM5ZjM0ZGU3MTUxZjZjYTY1MDBmZTRiODUwYzNmMWMwMmU4MDFjYWYzYTI0NDY0NjE0ZTQyODAxNjE1YjhmZmFhMDdhYzgyNTE0OTNmZmRhN2RlNWRkZjMzNjg4ODBjMmI5NWIwMzBmNDFmOGYxNTA2NmFkZDA3MWE2NmNmNjBlNWY0NmYzYTIzMGQzOTdiNjUyOTYzYTIxYTUzZg [11]: https://gchq.github.io/CyberChef/#recipe=XOR(%7B'option':'Hex','string':'3a'%7D,'Standard',false)To_Hexdump(16,false,false)&input=VGhlIGFuc3dlciB0byB0aGUgdWx0aW1hdGUgcXVlc3Rpb24gb2YgbGlmZSwgdGhlIFVuaXZlcnNlLCBhbmQgZXZlcnl0aGluZyBpcyA0Mi4 [12]: https://gchq.github.io/CyberChef/#recipe=Magic(3,false,false)&input=V1VhZ3dzaWFlNm1QOGdOdENDTFVGcENwQ0IyNlJtQkRvREQ4UGFjZEFtekF6QlZqa0syUXN0RlhhS2hwQzZpVVM3UkhxWHJKdEZpc29SU2dvSjR3aGptMWFybTg2NHFhTnE0UmNmVW1MSHJjc0FhWmM1VFhDWWlmTmRnUzgzZ0RlZWpHWDQ2Z2FpTXl1QlY2RXNrSHQxc2NnSjg4eDJ0TlNvdFFEd2JHWTFtbUNvYjJBUkdGdkNLWU5xaU45aXBNcTFaVTFtZ2tkYk51R2NiNzZhUnRZV2hDR1VjOGc5M1VKdWRoYjhodHNoZVpud1RwZ3FoeDgzU1ZKU1pYTVhVakpUMnptcEM3dVhXdHVtcW9rYmRTaTg4WXRrV0RBYzFUb291aDJvSDRENGRkbU5LSldVRHBNd21uZ1VtSzE0eHdtb21jY1BRRTloTTE3MkFQblNxd3hkS1ExNzJSa2NBc3lzbm1qNWdHdFJtVk5OaDJzMzU5d3I2bVMyUVJQ [13]: https://gchq.github.io/CyberChef/#recipe=AES_Decrypt(%7B'option':'Hex','string':'1748e7179bd56570d51fa4ba287cc3e5'%7D,%7B'option':'Hex','string':'$R0'%7D,16,'CTR','Hex','Raw',%7B'option':'Hex','string':''%7D,%7B'option':'Hex','string':''%7D,'From%20start')&input=NTFlMjAxZDQ2MzY5OGVmNWY3MTdmNzFmNWI0NzEyYWYyMGJlNjc0YjNiZmY1M2QzODU0NjM5NmVlNjFkYWFjNDkwOGUzMTljYTNmY2Y3MDg5YmZiNmIzOGVhOTllNzgxZDI2ZTU3N2JhOWRkNmYzMTFhMzk0MjBiODk3OGU5MzAxNGIwNDJkNDQ3MjZjYWVkZjU0MzZlYWY2NTI0MjljMGRmOTRiNTIxNjc2YzdjMmNlODEyMDk3YzI3NzI3M2M3YzcyY2Q4OWFlYzhkOWZiNGEyNzU4NmNjZjZhYTBhZWUyMjRjMzRiYTNiZmRmN2FlYjFkZGQ0Nzc2MjJiOTFlNzJjOWU3MDlhYjYwZjhkYWY3MzFlYzBjYzg1Y2UwZjc0NmZmMTU1NGE1YTNlYzI5MWNhNDBmOWU2MjlhODcyNTkyZDk4OGZkZDgzNDUzNGFiYTc5YzFhZDE2NzY3NjlhN2MwMTBiZjA0NzM5ZWNkYjY1ZDk1MzAyMzcxZDYyOWQ5ZTM3ZTdiNGEzNjFkYTQ2OGYxZWQ1MzU4OTIyZDJlYTc1MmRkMTFjMzY2ZjMwMTdiMTRhYTAxMWQyYWYwM2M0NGY5NTU3OTA5OGExNWUzY2Y5YjQ0ODZmOGZmZTljMjM5ZjM0ZGU3MTUxZjZjYTY1MDBmZTRiODUwYzNmMWMwMmU4MDFjYWYzYTI0NDY0NjE0ZTQyODAxNjE1YjhmZmFhMDdhYzgyNTE0OTNmZmRhN2RlNWRkZjMzNjg4ODBjMmI5NWIwMzBmNDFmOGYxNTA2NmFkZDA3MWE2NmNmNjBlNWY0NmYzYTIzMGQzOTdiNjUyOTYzYTIxYTUzZg

Terminal & CLI Tools Privacy & Anonymity
35K Github Stars
Bailo
Open Source

Bailo

[![Contributors][contributors-shield]][contributors-url] [![Forks][forks-shield]][forks-url] [![Stargazers][stars-shield]][stars-url] [![Issues][issues-shield]][issues-url] [![License][license-shield]][license-url] [![Contributor Covenant][code-of-conduct-shield]][code-of-conduct-url] <!-- PROJECT LOGO --> <br /> <div align="center"> <a href="https://github.com/gchq/Bailo"> <h1> <!-- TODO: Fix #gh-dark-mode-only --> <img src="frontend/public/logo-vertical-dark-transparent.png" alt="Logo" width="170"> </h1> </a> <p align="center"> Making it easy to compliantly manage the machine learning lifecycle <br /> <a href="https://gchq.github.io/Bailo/docs"><strong>Explore the docs »</strong></a> <br /> <br /> <a href="https://github.com/gchq/Bailo/issues">Report a Bug</a> · <a href="https://github.com/gchq/Bailo/issues">Request a Feature</a> </p> </div> <!-- ABOUT THE PROJECT --> ## About The Project [![Product Screen Shot][product-screenshot]](https://github.com/gchq/Bailo) Bailo helps you manage the lifecycle of machine learning to support scalability, impact, collaboration, compliance and sharing. <br /> <!-- GETTING STARTED --> ## Getting Started ### Running Locally with Docker #### Requirements - Node v24 - Docker / Docker Compose #### Development Build To run in development mode (modified files on your host machine will be reloaded into the running application): ```bash git clone https://github.com/gchq/Bailo.git && cd Bailo npm install npm run certs # This builds all the Bailo images, rerun it when you update dependencies. docker compose build --parallel # Then run the development instance of Bailo. docker compose up -d ``` On first run, it may take a while (up to 30 seconds) to start up. It needs to build several hundred TypeScript modules. These are cached however, so future starts only require a few seconds. You should access the site via [localhost:8080](http://localhost:8080). The registry requires a JWKS file for the token authentication with the backend application. For development, a JWKS file is generated by running `npm run certs`. For production, the script `generateJWKS.ts` can be used to generate a JWKS file for the public key referenced in the backend application configuration. To stop the running services: ```bash docker compose down ``` #### Production Build The above `docker compose` commands can, alternatively, be run with `-f compose.prod.yml` to have a more static version of the application running which mimics a production environment. Volumes are not dynamically mounted, the build time is slower as the frontend is pre-compiled, and environment variables & users are more production ready. This build is also more reliable for our cypress tests: ```bash # Build and run the productionised instance of Bailo. docker compose -f compose.yaml -f compose.prod.yaml --env-file prod.env up --force-recreate --build -d # Stop the service and destroy the volumes docker compose -f compose.yaml -f compose.prod.yaml down -v ``` The above `docker compose` approaches are preferred, however we also provide a monolithic `Dockerfile.standalone`. To run in standalone mode, not development mode (http://localhost:8080). Not for production use: ```bash docker build -t "bailo:standalone" -f ./Dockerfile.standalone . docker run --name bailo -p 8080:8080 -d bailo:standalone ``` ### Kubernetes Deployment We recommend using our [helm charts](https://github.com/gchq/Bailo/blob/main/infrastructure/helm/README.md) to deploy Bailo to Kubernetes. We expect the administrator to provide their own forms of authentication. By default all users authenticate as 'user'. ### Testing a New Deployment You can test out your new deployment using the example models which can be found in `frontend/cypress/fixtures` [`minimal_binary.zip`](frontend/cypress/fixtures/minimal_binary.zip) and [`minimal_code.zip`](frontend/cypress/fixtures/minimal_code.zip). There are also example forms in the `scripts` folder [`minimal_model_schema.json`](backend/src/scripts/example_schemas/minimal_model_schema.json), [`minimal_data_card_schema.json`](backend/src/scripts/example_schemas/minimal_data_card_schema.json) and [`minimal_access_request_schema.json`](backend/src/scripts/example_schemas/minimal_access_request_schema.json). <br /> ## Logical Project Flow (Overview) ![bailo diagram](frontend/public/mm-diagram.png) ### Components | | | | --------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | NGINX | [![nginx][NGINX]](https://nginx.org/) | | UI | [![TypeScript][Typescript]](https://www.typescriptlang.org/) [![Next.js][Next.js]](https://nextjs.org/) [![React][React]](https://react.dev/) [![Cypress][Cypress]](https://www.cypress.io/) | | API | [![TypeScript][Typescript]](https://www.typescriptlang.org/) [![Next.js][Next.js]](https://nextjs.org/) [![Express.js][Express]](https://expressjs.com/) [![Vitest][Vitest]](#) | | Docker Registry | [![Docker][Docker]](https://www.docker.com/) | | Mongo | [![MongoDB][Mongo]](https://www.mongodb.com/) | | S3 | [![MinIO][Minio]](https://www.min.io/) | 1. A user accesses a URL. We use [NextJS routing](https://nextjs.org/docs/routing/introduction) to point it to a file in `frontend/pages`. `[xxx].tsx` files accept any route, `xxx.tsx` files allow only that specific route. 2. Data is loaded using [SWR](https://swr.vercel.app/). Data loaders are stored in `frontend/actions`. Each one exposes variables to specify if it is loading, errored, data, etc. 3. Requests to the backend get routed through [express](https://expressjs.com/) within `backend/src/routes.ts`. Each route is an array with all items being middleware except the last, which is the handler (`[...middleware, handler]`). 4. Routes interact with the database via `mongoose`, which stores models in `backend/src/models`. <br /> ## Stroom Integration Bailo integrated with [Stroom](https://github.com/gchq/stroom), a [GCHQ](https://github.com/gchq)-developed data storage, processing and analysis platform. This integration enables Bailo to create and send event logging to Stroom for ingestion and later analysis, creating an audit trail and ensuring health within a given Bailo deployment. The integration is optional. ## Known Issues - _Issue: Sometimes Docker struggles when you add a new dependency._ <br /> Fix: Run `docker compose down --rmi all` followed by `docker compose up --build`. - _Issue: Sometimes SWR fails to install its own binary and the project will refuse to start up (development only)_ <br /> Fix: Run `npm uninstall next && npm install next`. Some users report still having issues. If so, run: `rm -rf node_modules && rm -rf package-lock.json && npm cache clean -f && npm i`. - _Issue: Unable to authenticate to the Docker registry / compile binaries._ <br /> Fix: Make sure that your authentication proxy is setup to allow the 'Authorisation' header. Make sure that your application is able to access the Docker registry internally as it will not provide user authentication. - _Issue: `npm run build` fails in the `frontend` directory with `Error: EACCES: permission denied .`_ <br /> Fix: Run `sudo rm -rf .next` in the `frontend` directory. This typically happens because `docker compose` has modified the mounted volume owner. <br /> ## Usage See [our user documentation](https://gchq.github.io/Bailo/docs) <br /> <!-- CONTRIBUTING --> ## Contributing If you'd like to make a contribution then the details for doing all of that are in [CONTRIBUTING.md](https://github.com/gchq/Bailo/blob/main/CONTRIBUTING.md). <br /> <!-- LICENSE --> ## License Bailo is released under the Apache 2.0 Licence and is covered by Crown Copyright. See [LICENSE.txt][license-url] for more information. <br /> <!-- ACKNOWLEDGMENTS --> ## Acknowledgments - [Othneils's README Template](https://github.com/othneildrew/Best-README-Template) - [Stroom's Code Contribution Guidelines](https://github.com/gchq/stroom/blob/master/CONTRIBUTING.md) <!-- MARKDOWN LINKS & IMAGES --> <!-- https://www.markdownguide.org/basic-syntax/#reference-style-links --> [contributors-shield]: https://img.shields.io/github/contributors/gchq/bailo.svg?style=for-the-badge [contributors-url]: https://github.com/gchq/Bailo/graphs/contributors [forks-shield]: https://img.shields.io/github/forks/gchq/bailo.svg?style=for-the-badge [forks-url]: https://github.com/gchq/Bailo/network/members [stars-shield]: https://img.shields.io/github/stars/gchq/bailo.svg?style=for-the-badge [stars-url]: https://github.com/gchq/Bailo/stargazers [issues-shield]: https://img.shields.io/github/issues/gchq/bailo.svg?style=for-the-badge [issues-url]: https://github.com/gchq/Bailo/issues [license-shield]: https://img.shields.io/github/license/gchq/bailo.svg?style=for-the-badge [license-url]: https://github.com/gchq/Bailo/blob/main/LICENSE.txt [code-of-conduct-shield]: https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg?style=for-the-badge [code-of-conduct-url]: https://github.com/gchq/Bailo/blob/main/CODE_OF_CONDUCT.md [product-screenshot]: frontend/public/images/bailo-marketplace.png [Next.js]: https://img.shields.io/badge/Next.js-black?logo=next.js&logoColor=white [React]: https://img.shields.io/badge/React-%2320232a.svg?logo=react&logoColor=%2361DAFB [Express]: https://img.shields.io/badge/Express.js-%23404d59.svg?logo=express&logoColor=%2361DAFB [Docker]: https://img.shields.io/badge/Docker-2496ED?logo=docker&logoColor=fff [Mongo]: https://img.shields.io/badge/MongoDB-%234ea94b.svg?logo=mongodb&logoColor=white [Minio]: https://img.shields.io/badge/MinIO-C72E49?logo=minio&logoColor=fff [NGINX]: https://img.shields.io/badge/nginx-009639?logo=nginx&logoColor=fff [Vitest]: https://img.shields.io/badge/Vitest-6E9F18?logo=vitest&logoColor=fff [Typescript]: https://img.shields.io/badge/TypeScript-3178C6?logo=typescript&logoColor=fff [Cypress]: https://img.shields.io/badge/Cypress-69D3A7?logo=cypress&logoColor=fff [MUI]: https://img.shields.io/badge/Material%20UI-007FFF?style=for-the-badge&logo=mui&logoColor=white

AI & Machine Learning ML Frameworks
93 Github Stars