Skip to content

Latest commit

 

History

3,623 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FLIP

Federated Learning Interoperability Platform

License Python 3.12+ Documentation Status Coverage

FLIP is an open-source platform for federated training and evaluation of medical-imaging AI models across healthcare institutions. Models travel to the data held inside each institution; patient data remains within the institution's security boundary.

The platform combines a Central Hub for project orchestration with independently operated Trust nodes. It supports both NVIDIA FLARE and Flower as federated-learning backends. FLIP is developed by the London AI Centre with Guy's and St Thomas' NHS Foundation Trust and King's College London.

For the platform architecture, workflows, deployment guides, and user documentation, start with the FLIP documentation.

Quickstart: Central Hub with two example Trusts

This developer quickstart starts the Central Hub and the shipped GSTT and KCH example Trust nodes on one Linux host. It uses the development AWS resources and XNAT artifacts maintained for authorised FLIP developers. If you do not have access to those resources, begin with the Central Hub deployment guide to create your own environment.

Prerequisites

  • Docker Engine with Compose and Swarm mode, plus the NVIDIA Container Toolkit on GPU hosts
  • GNU Make, jq, the AWS CLI, and uv
  • An AWS SSO profile with access to the development Cognito, S3, and SES resources
  • GitHub Container Registry access for the published FLIP images

The complete tool list and environment-variable checklist are in CONTRIBUTING.md.

Start the platform

cp .env.development.example .env.development
# Fill the required AWS, Cognito, SES, database, encryption, and S3 values.

aws sso login --profile <your-profile>
docker login ghcr.io

# Required once per Docker host.
docker swarm init

# Provision the two local NVFLARE networks used by the example Trusts. `make up` does not do
# this for you, and the FL containers cannot start without it.
make -C fl-services/nvflare provision-2-nets

# Pull the published service images, start the hub, register GSTT and KCH,
# then start both Trust and XNAT stacks.
make up

If Swarm is already active, docker swarm init reports that and can be skipped. Open https://localhost for the UI and http://localhost:8080/docs for the Central Hub API documentation.

To run the scripted project lifecycle against the running stack:

make e2e_smoke

This creates a project, submits a cohort query, waits for imaging import, runs federated training, and downloads the result. It is intentionally not part of CI and can take several minutes.

Stop the local platform with:

make down

The default backend is NVFLARE. To run the same topology with Flower, provision its per-net credentials instead — once per network, and again before make up:

make -C fl-services/flower provision NET_NUMBER=1
make -C fl-services/flower provision NET_NUMBER=2
make up FL_BACKEND=flower

See the Flower service guide for the full workflow. Use make up BUILD=true when dependency or Dockerfile changes require locally rebuilt images; ordinary source edits are bind-mounted for live reload. More detail is in Running the stack.

Where to go next

Goal Guide
Understand the platform and its security model ReadTheDocs
Set up a development environment or contribute CONTRIBUTING.md
Run or adapt a federated-learning example FL tutorials
Build a FLIP application Working with FLIP apps
Deploy the Central Hub on AWS Central Hub deployment
Deploy a Trust on premises Local provider
Deploy a Trust on Kubernetes Kubernetes provider
Operate Trust-side services Trust services
Debug a service in VS Code DEBUG.md
Debug or test a particular service That service's README and Makefile

Repository layout

FLIP is maintained as one monorepo. Each major area owns its detailed setup and operational documentation.

Directory Responsibility
flip-api/ Central Hub FastAPI service, database, scheduling, and project lifecycle
flip-ui/ Vue 3 web application
trust/ Trust gateway, data and imaging APIs, and local OMOP/PACS/XNAT services
flip-utils/ Shared, pip-installable flip Python library
fl-services/ NVFLARE and Flower network services, images, and provisioning
fl-apps/ Backend-specific application templates bundled by the Central Hub
fl-tutorials/ Worked federated-learning applications and local runners
deploy/ Compose configuration and AWS, on-premises, and Kubernetes providers
docs/ Sphinx source published on ReadTheDocs
scripts/ Repository-wide development and deployment helpers

Contributing and support

Contributions are welcome. Please read CONTRIBUTING.md before opening a pull request; commits must include a DCO sign-off. Use GitHub Issues for bugs, feature proposals, and documentation gaps.

For security concerns, follow SECURITY.md rather than opening a public issue.

FLIP is licensed under the Apache License 2.0.

Releases

Packages

Used by

Contributors

Languages