gchq/Bailo là dự án Backend trên GitHub, viết chủ yếu bằng TypeScript, với 97 sao. Managing the lifecycle of machine learning to support scalability, impact, collaboration, compliance and sharing.
Tóm tắt dựng từ metadata GitHub của chính dự án — chưa có bài review TopGit. Trang sẽ tự động cập nhật khi bài review đầy đủ được xuất bản.
VÌ SAO CHƯA CÓ REVIEW
TopGit viết bài đầy đủ cho repo có nhiều sao nhất và được yêu cầu nhiều nhất. Trang này là snapshot trong thời gian chờ — xem README gốc ở tab READ ME.
Making it easy to compliantly manage the machine learning lifecycle
Explore the docs »
Report a Bug
·
Request a Feature
About The Project
Bailo helps you manage the lifecycle of machine learning to support scalability, impact, collaboration, compliance and
sharing.
Getting Started
Running Locally with Docker
Requirements
Follow the instructions below to get a local development environment running. You will need:
Node v26
Docker / Docker Compose
Development Build
To run in development mode (modified files on your host machine will be reloaded into the running application):
[!NOTE]
Ensure Docker and Docker Compose are installed before running these commands.
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.
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:
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:
# 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:
We recommend using our helm charts 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/fixturesminimal_binary.zip and
minimal_code.zip. There are also example forms in the scripts folder
minimal_model_schema.json,
minimal_data_card_schema.json and
minimal_access_request_schema.json.
Logical Project Flow (Overview)
Components
NGINX
UI
API
Docker Registry
Mongo
S3
A user accesses a URL. We use NextJS routing to point it to a file in
frontend/pages. [xxx].tsx files accept any route, xxx.tsx files allow only that specific route.
Data is loaded using SWR. Data loaders are stored in frontend/actions. Each one exposes
variables to specify if it is loading, errored, data, etc.
Requests to the backend get routed through express within backend/src/routes.ts. Each
route is an array with all items being middleware except the last, which is the handler ([...middleware, handler]).
Routes interact with the database via mongoose, which stores models in backend/src/models.
Stroom Integration
Bailo integrated with Stroom, a 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. 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) 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. 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 . Fix: Run
sudo rm -rf .next in the frontend directory. This typically happens because docker compose has modified the
mounted volume owner.
Usage
See our user documentation
Contributing
If you'd like to make a contribution then the details for doing all of that are in
CONTRIBUTING.md.
License
Bailo is released under the Apache 2.0 Licence and is covered by Crown Copyright. See LICENSE.txt for
more information.
gchq/Bailo thuộc nhóm Backend trên TopGit, cùng 4 topic GitHub. Trang Trending và Topics liệt kê các repo cùng số sao và cùng ngôn ngữ để so sánh.
Đọc thêm về gchq/Bailo ở đâu?
Trang TopGit này là một snapshot — tab "Readme" hiển thị nguyên văn README của repo (đã bỏ link, giữ ảnh). Repo GitHub ở github.com/gchq/Bailo là nguồn chính thức.
gchq/Bailo có bao nhiêu sao?
gchq/Bailo có 97 sao GitHub — tải lại trang để xem số mới nhất, hoặc xem trực tiếp github.com/gchq/Bailo. TopGit phản chiếu số sao của GitHub nhưng không cam kết đến từng phút.
gchq/Bailo có những chủ đề gì?
GitHub topics của gchq/Bailo: "ml", "mlops", "nodejs", "typescript". TopGit xếp repo vào nhóm Backend.
gchq/Bailo có phải mã nguồn mở không?
Có — gchq/Bailo phát hành theo license Apache-2.0, nghĩa là mã nguồn mở để đọc, fork và (tùy license) tái sử dụng. Mã: github.com/gchq/Bailo.
gchq/Bailo có website riêng không?
TopGit chưa ghi nhận URL trang chủ cho gchq/Bailo. Phần README ở tab phía trên thường có link demo, hoặc xem mô tả GitHub của repo.
gchq/Bailo còn đang phát triển không?
Commit gần nhất trên gchq/Bailo là 12 ngày trước (theo timestamp GitHub). Repo có 22 fork — một chỉ báo về mức độ quan tâm của cộng đồng.
Đọc đầy đủ README ở tab phía trên.
Vẫn đang phân vân về Bailo?
Một cú bấm sẽ gửi câu hỏi kèm trang này cho AI — xem AI nói gì về Bailo.