This repository contains the federated learning base code to run Flower deployments with FLIP, plus tutorial Flower applications.
It includes Docker images and runtime wiring for:
- Flower
SuperLink - Flower
SuperNodeworkers - FLIP Flower API (
fl-api) - A shared Flower base image (
flwr-base)
.
├── data/ # Local sample data mounted into supernodes
├── deploy/compose.yml # Main Docker Compose stack for local runtime
├── docs/images/ # Project assets
├── fl_services/
│ ├── fl-base/ # Base Flower image
│ ├── fl-api-flower/ # FastAPI service for run control and status
│ ├── superlink/ # SuperLink image
│ └── supernode/ # SuperNode image
├── tutorials/
│ ├── numpy/ # Minimal NumPy Flower app
│ └── monai/ # MONAI-based Flower app
└── Makefile # Convenience commands (build/up/down/clean)
- Docker Engine with Docker Compose v2
- GNU Make
Optional:
uv(if developing/testing Python services locally outside containers)
From the repository root:
make build
make upThis starts:
superlink(ports9093, health at9097)supernode-1andsupernode-2(health at9098)fl-apionhttp://localhost:8000
To stop:
make downTo remove local images and prune:
make cleanWith containers running:
curl http://localhost:8000/health
curl http://localhost:8000/check_server_status
curl http://localhost:8000/check_client_statusAPI docs are available at:
http://localhost:8000/docs(Swagger)http://localhost:8000/openapi.jsonhttp://localhost:8000/redoc
The compose setup mounts tutorials/ into the FL API container as /app/src, so apps can be submitted by folder name.
Examples:
# Start a NumPy tutorial run
curl -X POST http://localhost:8000/submit_run/numpy
# Start a MONAI tutorial run
curl -X POST http://localhost:8000/submit_run/monai
# List runs
curl http://localhost:8000/list_runs
# Abort a run (replace <run_id>)
curl -X DELETE http://localhost:8000/abort_run/<run_id>Default runtime wiring is defined in:
deploy/compose.yml.env.flwr.development
Important environment variables include:
ALLOWED_JOB_FOLDERS(default:numpy,monai)SUPERLINK_ADDRESSSUPERLINK_HEALTH_ADDRESSSUPERNODE_HEALTH_ADDRESSESFLOWER_HEALTHCHECK_TIMEOUT_SECONDS
See the dedicated service documentation for endpoint behavior and development details:
Contribution guidelines are documented in:
Licensed under the Apache License, Version 2.0. See LICENSE.
