DJI FlightHub 2 Public Cloud Deployment Guide

This guide describes recommended methods for deploying FlightHub 2 On-Premises on Amazon Web Services (AWS) and Microsoft Azure cloud servers, including server configuration requirements, pre-installation preparation, dependency installation, and Azure vGPU driver configuration.

AWS / Microsoft AzureUbuntu Server 24.04 LTSTerra configured as needed

1Server Configuration Requirements

Choose a cloud server configuration based on the number of connected docks, whether Terra is required, and your actual storage and livestreaming needs.

1.1 Basic Hardware Requirements

Recommended hardware configurations and capacities:

Configuration ItemRecommended ConfigurationConfiguration Notes
CPUStart with at least 8 coresFor 5 connected docks, start with 8 cores; if Terra is required, configure at least 12 cores.
For 10 or more connected docks, at least 16 cores are recommended; if Terra is required, configure at least 20 cores.
MemoryStart with at least 32 GBIncrease the planned memory capacity when connecting more than 10 docks.
Data diskSystem disk: 512 GB or more
Data disk: 2,048 GB or more
Size the data disk according to your actual media storage needs, starting with at least 2,048 GB.
Network bandwidthConfigure according to livestreaming needsChoose bandwidth based on concurrent livestreaming needs. Reserve 5 Mbps for each concurrent livestream, plus approximately 10% additional channel bandwidth overall.

1.2 Basic Software Requirements

Operating system, container environment, and GPU-related components:

Software ComponentVersion Requirement or Configuration MethodNotes
Operating systemUbuntu Server 24.04 LTSThe recommended configurations for both AWS and Azure use Ubuntu 24.04.
NVIDIA Container ToolkitRequired only when deploying Terra Model ReconstructionPrepare the dependencies using the deployment helper script.
NVIDIA driverRequired only when deploying Terra Model ReconstructionIn standard environments, use sudo ubuntu-drivers devices to check the recommended driver. For Azure vGPU environments, see the dedicated driver configuration steps.
CPU-only deployment (Terra Model Reconstruction not required)
Starting EC2 instance
c5.4xlarge; choose c5d.4xlarge for higher media storage requirements
Storage requirements
Start with io1; consider io2 for frequent media file reads, writes, and operations
Disk size
System disk: at least 500 GB; data disk: start with 2,048 GB. Increase capacity further if large amounts of flight media must be stored
Operating system
Linux (Ubuntu 24.04)
CPU + GPU deployment (Terra Model Reconstruction required)
Starting EC2 instance
g5.8xlarge
Storage requirements
Start with io1; consider io2 for frequent media file reads, writes, and operations
Disk size
System disk: at least 500 GB; data disk: start with 2,048 GB. Increase capacity further if large amounts of flight media must be stored
Operating system
Linux (Ubuntu 24.04)
CPU-only deployment (Terra Model Reconstruction not required)
Starting VM
Standard_D16s_v6
Storage requirements
Start with Premium SSD; consider Premium SSD v2 for frequent media file reads, writes, and operations
Disk size
System disk: at least 500 GB; data disk: start with 2,048 GB. Increase capacity further if large amounts of flight media must be stored
Operating system
Linux (Ubuntu 24.04)
CPU + GPU deployment (Terra Model Reconstruction required)
Starting VM
Standard NV36ads A10 v5
Storage requirements
Start with Premium SSD; consider Premium SSD v2 for frequent media file reads, writes, and operations
Disk size
System disk: at least 500 GB; data disk: start with 2,048 GB. Increase capacity further if large amounts of flight media must be stored
Operating system
Linux (Ubuntu 24.04)

2Pre-installation Preparation

Complete the following preparations before starting installation:

  1. Obtain the License and installation package download URL: For instructions, see "Downloading the License and Installation Package".
  2. Obtain the deployment helper script: Download install_helper.shopen in new window and upload it to the target cloud server.
  3. Prepare the network environment: Ensure that the cloud server can access the required software repositories and download URLs during installation so that tools such as APT can obtain dependency packages and necessary files.
  4. Check port availability: Ensure that the ports required for deployment are not occupied by other services. For port requirements, see "Network Requirements".

Command Execution Environment

Log in to the target cloud server through SSH and run the subsequent script commands from the directory containing the deployment helper script. Use an account with sudo privileges to run commands that configure the system or install software.


3Checking the Environment and Installing Dependencies

3.1 Granting Execute Permission to the Script

After uploading the deployment helper script, run the following command:

chmod +x install_helper.sh

3.2 Running Pre-installation Checks

Run the check command to verify that the operating system and current environment meet the installation requirements:

sudo ./install_helper.sh check

An example of the check output is shown below. The actual output may vary depending on the server environment.

Starting pre-install read-only checks.
Platform check passed: Ubuntu 24.04.4 LTS (x86_64)

[Check] Ubuntu apt candidate versions
chrony detected, skipping systemd-timesyncd candidate check.
Pass: resolvable install candidates exist for curl, aria2 and verification tools (read-only).

[Check] apt install transaction
Pass: current apt state can resolve installation dependencies (dry-run).

[Check] Time synchronization service
chrony detected, skipping systemd-timesyncd.
...

Handling Failed Checks

If any checks fail (typically shown in red), follow the prompts to troubleshoot and resolve the issues, then run the checks again. Resolve these issues before continuing installation to avoid affecting subsequent deployment.

3.3 Installing Dependencies

After the checks pass, run the following command to install dependency packages:

sudo ./install_helper.sh pre_install

During installation, the script asks whether to install Terra-related components:

是否需要安装 Terra(含 Nvidia driver 和 toolkit)?
Install Terra (including Nvidia driver and toolkit)? [y/n]:
  • If Terra is required: enter y, then press Enter.
  • If Terra is not required: enter n, then press Enter.

Installing Terra-related dependencies may require downloading the NVIDIA driver and compiling it locally. This can take some time; wait for installation to complete.

Azure vGPU Environments

If you use Azure vGPU, manually install a compatible NVIDIA driver. Complete the dedicated driver configuration in the "Driver Configuration" section, then verify the GPU status.

The following is an excerpt of the output when Terra-related dependencies are selected for installation. The driver name and version depend on the actual server environment.

[安装 / Install] nvidia-driver-595-open
...
完成 / Done: nvidia-driver-595-open.

Terra 安装完成 / Terra installation completed.

pre_install 完成 / pre_install completed.

3.4 Verifying GPU Status (When Using Terra)

In a standard GPU environment, run the following command after installing the driver:

nvidia-smi -L > /dev/null && echo "success"

If the output is success, the GPU query command ran successfully. If this message is not displayed, check the driver installation status and any errors returned by the command.

Skip this verification if Terra was not selected for deployment. If you use an external data disk, first complete the "Mounting an External Data Disk" section; otherwise, proceed to the "Obtaining and Extracting the Installation Package" section to obtain the installation package. For Azure vGPU environments, complete the next section first.


4Azure vGPU Driver Configuration

This section applies to Azure vGPU instances that require NVIDIA driver configuration. For other environments, proceed to the "Mounting an External Data Disk" section if you use an external data disk, or to the "Obtaining and Extracting the Installation Package" section if you do not.

Choose an Azure GRID driver that is compatible with your vGPU model. For driver selection and installation requirements, see the official Microsoft documentation: "Install NVIDIA GPU Drivers on N-Series VMs Running Linux".

Impact of These Operations

The following operations include uninstalling the existing NVIDIA driver and restarting the server. Perform them when GPU service interruption is acceptable, and reconnect through SSH after the server restarts.

4.1 Uninstalling the Existing NVIDIA Driver

sudo apt-get purge -y 'nvidia-*' 'libnvidia-*'
sudo apt-get autoremove -y

4.2 Installing Build Tools

sudo apt update && sudo apt install -y build-essential

4.3 Downloading a Compatible Azure GRID Driver

After confirming the driver download URL for the current instance, run the following command. Replace <azure_grid_driver_url> with the actual download URL and keep the surrounding quotation marks.

wget -O NVIDIA-grid-azure.run "<azure_grid_driver_url>"

Example download URL: NVIDIA-Linux-x86_64-595.91.07-grid-azure.run. This URL is provided only as an example. Before using it, refer to the official Microsoft documentation to confirm compatibility with the current instance.

4.4 Installing the Driver and Restarting the Server

sudo chmod +x NVIDIA-grid-azure.run
sudo ./NVIDIA-grid-azure.run --silent

After confirming that the driver was installed successfully, run the restart command:

sudo reboot

4.5 Verifying the Driver Installation

After the server restarts, log in again through SSH and run the following command:

nvidia-smi -L > /dev/null && echo "success"

If the output is success, the GPU query command ran successfully. If verification fails, check the driver's compatibility with the instance and review the installation logs.


5Mounting an External Data Disk

If your public cloud instance uses a newly attached, blank external data disk, partition, format, and mount it before continuing with the download and installation. Afterward, download, upload, extract, and install the DJI FlightHub 2 installation package under /fh_data, and use this directory for subsequent operation.

Risk of Data Loss

This section applies only to new, blank data disks. Creating a partition table and formatting will erase all data on the target disk. Before running the commands, replace the device placeholders according to your actual environment and double-check that the target device is not the system disk. If the disk already contains data, do not run the partitioning and formatting commands in this section.

5.1 Identifying the External Data Disk

First, inspect the disks, partitions, file systems, and mount points. Identify the new data disk by comparing its capacity with the disk capacity configured in the cloud console, and record its full device name.

lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS
sudo fdisk -l

Device names on AWS and Azure may include /dev/nvme1n1, /dev/xvdb, or /dev/sdc. Use the actual output as your reference. In the following commands, /dev/<data_disk> refers to the entire data disk, not the system disk or an existing partition.

5.2 Creating a Partition with fdisk

Replace /dev/<data_disk> with the whole-disk device name confirmed in the previous step, then start fdisk:

sudo fdisk /dev/<data_disk>

In the interactive interface, enter the following options in order. Each of the three Enter entries accepts the default value, creating a partition that occupies all available space:

g
n
Enter
Enter
Enter
w
  • g: Create a new GPT partition table.
  • n: Create a new partition and accept the default partition number, first sector, and last sector.
  • w: Write the partition table and exit.

Run lsblk again to confirm the new partition name. NVMe disk partitions typically have names such as /dev/nvme1n1p1, while other disks may use names such as /dev/xvdb1 or /dev/sdc1. In all subsequent commands, /dev/<data_partition> refers to this new partition.

lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS

5.3 Formatting and Mounting for the First Time

After confirming that the partition name is correct, format the new partition as ext4 and mount it at /fh_data:

sudo mkfs.ext4 /dev/<data_partition>
sudo mkdir -p /fh_data
sudo mount /dev/<data_partition> /fh_data

5.4 Configuring Automatic Mounting at Boot

Query the UUID of the new partition and copy the value of UUID="..." from the output:

sudo blkid /dev/<data_partition>

Edit /etc/fstab:

sudoedit /etc/fstab

Add the following line at the end of the file, replacing <uuid> with the UUID value you just obtained, without quotation marks or angle brackets:

UUID=<uuid> /fh_data ext4 defaults,nofail 0 2

5.5 Verifying the Mount and Setting Directory Permissions

Unmount the current mount, then remount according to /etc/fstab to verify that the configuration is correct:

sudo umount /fh_data
sudo mount -a
findmnt /fh_data

If findmnt shows /fh_data and the corresponding data disk partition, the mount configuration is working. Then assign ownership of the directory to the current deployment account:

sudo chown "$USER:$USER" /fh_data

Working Directory for Subsequent Steps

From the next section onward, always download, upload, extract, and install the installation package in /fh_data. Data generated during subsequent use of DJI FlightHub 2 should also be stored on the data disk associated with this directory.


6Obtaining and Extracting the Installation Package

After preparing the environment, enter /fh_data and use either of the following methods to place the DJI FlightHub 2 installation package in this directory:

cd /fh_data
  • Download the installation package to your local computer, then upload it to the /fh_data directory on the cloud server.
  • Use the installation package download URL to download it directly into the /fh_data directory on the cloud server.

6.1 Downloading with the Helper Script (Optional)

The deployment helper script supports multithreaded downloads. To use it, ensure that the helper script is located in /fh_data, then run the following commands from that directory:

cd /fh_data
./install_helper.sh download "<package_url>" "<save_filename>"
  • <package_url>: The actual installation package download URL.
  • <save_filename>: The filename used to save the installation package on the server.

Replace each entire placeholder with its actual value, without angle brackets. Keep the quotation marks to prevent special characters in the URL or spaces in the filename from affecting command execution.

6.2 Extracting the Installation Package

After the download or upload completes, run the following commands in the /fh_data directory, replacing the placeholder with the actual filename:

cd /fh_data
tar xf "<save_filename>"

7Installing DJI FlightHub 2

Different versions of DJI FlightHub 2 may use different installation procedures. Start installation from the extracted installation package directory under /fh_data and follow the user manual for the version of the installation package you are using to complete installation. Data generated during subsequent use should also be stored on the data disk associated with /fh_data.

For the current online installation instructions, see "Starting the Installation Wizard".