FLorist is a platform to launch and monitor Federated Learning (FL) training jobs. Its goal is to bridge the gap between state-of-the-art FL algorithm implementations and their applications by providing a system to easily kick off, orchestrate, manage, collect, and summarize the results of FL4Health training jobs.
For a technical deep dive, visit our documentation.
The easiest way to get FLorist up and running is to run the Docker images.
In case you don't have Docker installed, install it with the guide below: https://docs.docker.com/desktop/
The FLorist Docker images are going to be located at floristdocker/florist in Docker Hub.
To start the client container, download the docker-compose-client.yaml file and run the command below:
docker compose -f docker-compose-client.yaml up
That command will start the client's docker image, which will run the service on
port 8001
. The authentication service is configured with a default password admin
.
You will only be able to successfully authenticate to the client if you change the
default password, which you can do at the URL below:
http://localhost:8001/change-password/index.html
Note
If you need to run two clients on the same machine, you will need to
change a few things in the docker-compose-client.yaml
file:
To start the server containers, download the docker-compose-server.yaml file and run the command below:
docker compose -f docker-compose-server.yaml up
That command will start 3 containers:
- A MongoDB container, called
florist-mongodb
at port27017
, which serves as the application database. - A Redis container, called
florist-redis
at port6379
, which serves as the communication layer between FLorist and the federated learning clients and servers. - The FLorist server service itself, at port
3000
.
Upon first access to the URL below, the UI will prompt you to authenticate with
the default password (admin
). Right after it will ask you to change that
password in order to keep using the service.
http://localhost:3000/
Once you access the Jobs page, you will need to fill up a few network addresses. In the Docker configuration, those are the following addresses that will work if they are all being run within the same machine:
- Server Address:
florist-server:8080
(or any other port between 8080-8200) - Redis Address:
florist-redis:6379
- Client Address:
florist-client:8001
Note
If you have more than one client running, you can add another client
using the UI controls and use the service name and port you have started
your client under. For example, if you have used the service name
florist-client-2
and the port 8002
, you should fill up in the client
address as florist-client-2:8002
.
Please also refer to te screenshot below for a sample configuration:

In case you want to run FLorist from the source code, please follow the steps in our CONTRIBUTING.md guide.
If you are interested in contributing to the library, please see CONTRIBUTING.md. This file contains many details around contributing to the code base, including development practices, code checks, tests, and more.