MediNet 2.0.1 InstallationResearcher Hub and hospital Node setup

Install the researcher workspace and hospital data service as separate components. Start with a local development environment, then configure the network and access permissions.

Choose the reviewed version

Reproduce the documented interface and API

This 2.0.1 guide uses the Hub snapshot f09bb753 and the companion Node snapshot 5e52ac5, merged on 7 July 2026. The Node repository has no independently named 2.0.1 tag; these instructions pin the reviewed commits. See the version comparison for scope and sources.

Use Git, a running Docker Engine or Docker Desktop, and Docker Compose. Container images install the Python dependencies. Memory and disk needs depend on datasets, model size and concurrent jobs; the previous fixed hardware estimates were not validated.

1. Start the Hub

Researcher workspace on port 5000

1

Clone the pinned Hub

terminalTerminal
git clone https://github.com/isglobal-brge/MediNetHub.git
cd MediNetHub
git checkout f09bb753d6eab67f889a160a3bc0e5b951d95fe5
2

Configure the training address

In docker-compose.yml, set FLOWER_SERVER_IP to an address reachable from your Nodes before the first start. The supplied 172.25.0.2 is an example, not a portable address. Compose publishes the web interface on 5000 and Flower on 8080, and creates medinet_shared_network.

The entrypoint generates and persists Django secrets, encrypted-credential keys and Flower TLS certificates. Existing certificates are reused; changing the address also requires reviewing certificate subject alternative names.

3

Build and open the workspace

terminalTerminal
docker compose up --build -d
docker compose ps
docker compose logs --tail 50 medinethub

Open http://localhost:5000, register a researcher account and sign in. The optional start-medinet.bat and start-medinet-linux.sh launchers publish only port 5000; use Compose when Nodes need to reach port 8080.

Source: Hub Compose configuration and Hub entrypoint.

2. Start a hospital Node

Local data, permissions and training service on port 5001

1

Clone the companion Node

terminalTerminal
git clone https://github.com/isglobal-brge/MediNetNode.git
cd MediNetNode
git checkout 5e52ac5
2

Join the shared network

For a Hub and Node on the same Docker host, start the Hub first. The Node uses the existing medinet_shared_network. In the Node Compose file, replace the bottom network declaration with the following external-network declaration. An external network is managed by the Hub, so the Node must not also specify its driver or IP allocation.

terminalTerminal
networks:
  medinet-network:
    name: medinet_shared_network
    external: true

For different hosts, configure routable Hub and Node addresses and firewall rules instead of relying on a local Docker bridge.

3

Build and complete initial setup

terminalTerminal
docker compose up --build -d
docker compose ps
docker compose logs --tail 50 medinet-node

Open http://localhost:5001. The first visit redirects to /setup/ when no users or completed configuration exist. Create the first administrator and enter the center name, ID and administrator email. The center ID uses 3–20 lowercase letters, numbers or hyphens and cannot start or end with a hyphen. Completed setup redirects to login and subsequent setup attempts are blocked.

The entrypoint migrates the administrative and dataset databases. Named volumes retain configuration, databases, logs, media and datasets across container restarts.

4

Grant researcher access

As Node ADMIN, create a RESEARCHER user, issue an API key and configure its permitted IPs. Grant access to the required datasets, enable the intended training permissions and review the dataset privacy policy. In the Hub Datasets page, add the Node URL and API key; use the connection test before selecting datasets.

Use a Node URL that the Hub container can reach: localhost inside a container refers to that container. On the shared network, use the Node service or container name with port 5001. On separate hosts, use the hospital's reachable service address.

Source: Node Compose configuration, initial setup implementation and user and API-key management.

3. Verify the connection

Confirm access before starting a study

Local smoke check

Both containers should be running and both web pages should open. A successful Hub connection test should show only datasets the researcher is allowed to use. Select a small test dataset, create a supported model and run a short job; check the global and client dashboards for metrics and errors.

This setup describes the reviewed configuration. It is not evidence that a training run has succeeded on your network.

API v2 compatibility

The Node routes use /api/v2/, including ping, get-data-info and start-client. Production budget helpers use budget-status/, estimate-epsilon/ and min-noise-multiplier/. Do not reuse v1 connection scripts without updating their endpoint paths.

Pinned API routes

Troubleshooting

Inspect configuration and logs

Compose or network error

Check that Compose is installed and the Docker daemon is running. Start the Hub before the Node, and use the external-network declaration above. Check subnet conflicts if another network already uses 172.25.0.0/16.

Connection or TLS error

Check the Node URL from the Hub's network, the API key's allowed IP and expiration, the reachable Flower address, port 8080 and the generated certificate's address. A working browser page does not confirm the Flower transport.

Dataset or budget rejected

Check Node access grants, dataset active/paused state, experiment permission, per-job limits and remaining researcher budget. A budget reset requires Node ADMIN review; it does not happen by restarting the Hub.

Updating an existing installation

Back up databases, dataset files and persistent configuration before changing revisions. Preserve credential-encryption keys and certificates. The reviewed sources do not provide an automated v1-to-v2 rollback or data-migration guarantee.

Deployment configuration

Development defaults need an explicit deployment configuration

The supplied Compose files enable debugging. For deployment, change the Compose overrides themselves: Node DEBUG=False with ALLOWED_HOSTS, and Hub DJANGO_DEBUG=False with DJANGO_ALLOWED_HOSTS. Set Node FLOWER_ALLOW_INSECURE=false. Values under Compose environment override .env.docker.

Configure HTTPS for browser and API traffic, trusted reverse proxies, protected persistent storage and tested backups. Flower TLS is generated by the Hub entrypoint; client-certificate authentication (mTLS) remains separate. Restrict Flower access to approved hospitals. The Hub entrypoint still runs Django's development server, so switching debug off alone is not a complete production server configuration.

Review implemented controls and remaining limitations for this snapshot.