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.
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 Item | Recommended Configuration | Configuration Notes |
|---|---|---|
| CPU | Start with at least 8 cores | For 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. |
| Memory | Start with at least 32 GB | Increase the planned memory capacity when connecting more than 10 docks. |
| Data disk | System 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 bandwidth | Configure according to livestreaming needs | Choose 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 Component | Version Requirement or Configuration Method | Notes |
|---|---|---|
| Operating system | Ubuntu Server 24.04 LTS | The recommended configurations for both AWS and Azure use Ubuntu 24.04. |
| NVIDIA Container Toolkit | Required only when deploying Terra Model Reconstruction | Prepare the dependencies using the deployment helper script. |
| NVIDIA driver | Required only when deploying Terra Model Reconstruction | In standard environments, use sudo ubuntu-drivers devices to check the recommended driver. For Azure vGPU environments, see the dedicated driver configuration steps. |
1.3 Recommended AWS Configurations
- Starting EC2 instance
c5.4xlarge; choosec5d.4xlargefor 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)
- 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)
1.4 Recommended Azure Configurations
- 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)
- 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:
- Obtain the License and installation package download URL: For instructions, see "Downloading the License and Installation Package".
- Obtain the deployment helper script: Download install_helper.sh and upload it to the target cloud server.
- 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.
- 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_datadirectory on the cloud server. - Use the installation package download URL to download it directly into the
/fh_datadirectory 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".