---
# System prepended metadata

title: Nvflare 安裝說明

---

# Nvflare 安裝說明

## Simulator

### 1. 安裝 Anaconda
https://www.anaconda.com/products/distribution

### 2. 創建一個conda環境並安裝nvflare套件 (python版本: 3.8)
```shell=
conda create --name <env_name> python=3.8
conda activate <env_name>
python3 -m pip install nvflare
```

### 3. 使用指令直接啟動訓練

範例:
```shell=
nvflare simulator NVFlare/examples/hello-numpy-sag/app -w /tmp/nvflare/workspace_folder/ -n 8 -t 1
```

相關參數用法可以參考官網的介紹


## Provision


### 1. 安裝 Anaconda
https://www.anaconda.com/products/distribution

### 2. 創建一個conda環境並安裝nvflare套件 (python版本: 3.8)
```shell=
conda create --name <env_name> python=3.8
conda activate <env_name>
python3 -m pip install nvflare
mkdir workspace
cd workspace
```

### 3. 創建和設定 project.yml
```yml=
api_version: 3
name: example_project
description: NVIDIA FLARE sample project yaml file

participants:
  # change example.com to the FQDN of the server
  - name: server1
    type: server
    org: nvidia
    fed_learn_port: 8002
    admin_port: 8003
  - name: site-1
    type: client
    org: nvidia
  - name: site-2
    type: client
    org: nvidia
  - name: admin@nvidia.com
    type: admin
    org: nvidia
    role: project_admin

# The same methods in all builders are called in their order defined in builders section
builders:
  - path: nvflare.lighter.impl.workspace.WorkspaceBuilder
    args:
      template_file: master_template.yml
  - path: nvflare.lighter.impl.template.TemplateBuilder
  - path: nvflare.lighter.impl.static_file.StaticFileBuilder
    args:
      # config_folder can be set to inform NVIDIA FLARE where to get configuration
      config_folder: config

      # app_validator is used to verify if uploaded app has proper structures
      # if not set, no app_validator is included in fed_server.json
      # app_validator: PATH_TO_YOUR_OWN_APP_VALIDATOR

      # when docker_image is set to a docker image name, docker.sh will be generated on server/client/admin
      # docker_image:

      # download_job_url is set to http://download.server.com/ as default in fed_server.json.  You can override this
      # to different url.
      # download_job_url: http://download.server.com/

      overseer_agent:
        path: nvflare.ha.dummy_overseer_agent.DummyOverseerAgent
        # if overseer_exists is true, args here are ignored.  Provisioning
        #   tool will fill role, name and other local parameters automatically.
        # if overseer_exists is false, args in this section will be used and the sp_end_point
        # must match the server defined above in the format of SERVER_NAME:FL_PORT:ADMIN_PORT
        # 
        overseer_exists: false
        args:
          sp_end_point: server1:8002:8003

  - path: nvflare.lighter.impl.cert.CertBuilder
  - path: nvflare.lighter.impl.signature.SignatureBuilder
```

### 4. 使用指令產生工作區
```shell=
nvflare provision
```
底下即可看到產生出的存放的server和client的資料夾


## Reference
https://nvflare.readthedocs.io/en/2.2.1/index.html
