Server

Installation

Since the plugin consists of a client and a PHP component, you'll need a working PHP installation. SQLite must also be working.
These days, I recommend simply asking an AI how to install PHP.
Personally, I use a local XAMPP installation for testing and an Apache2, PHP installation on Debian Linux for production use.

To test your PHP installation, you can create an info.php file with the following content:
<?php
phpinfo();
?>
When you access the file on your server, it should look something like this. Remember to delete the file after the test!

Configuration

Copy the directory containing the PHP scripts to the PHP directory on your web server. You can find the PHP scripts in the Downloads category.

Keep in mind that the directory name will be part of your URL. I recommend customizing it.
The PHP app needs a few settings. Open the settings.php file.

$fileDirectory

Specifies a directory where the files will be stored. Like: $fileDirectory = 'D:/UEFiles/unrealFileManagerPlugin';
Make sure the server has read and write access to this directory. However, the directory must be outside the web directory so that files cannot be downloaded through URL manipulation!

$sqliteDbPath

Directory including a file for the SQLite database. The database is created automatically like:'G:/xampp/sqlite/sql.db';
Make sure the server has read and write access to this directory. However, the directory must be outside the web directory so that files cannot be downloaded through URL manipulation!

$accessTokenAdmi

A token is a kind of password. You need an admin token to manage files and configure settings from the client UI. Example: $accessTokenAdmin ='MxOJ1THK9Vm';

$accessTokenClient

The client token is for your app's users. It ensures that only your app can communicate with your server. Example: $accessTokenClient ='KDInidS234';

$aesKey

This is required if you want to encrypt files. It must be exactly 32 characters long! Example: $aesKey = 'ce0IFucd67kQr4sT7hOvxVMtPvorom4p';

$downloadLiveTimeInMinutes

When a download starts, it is added to the database and deleted when it is finished.
However, it is possible that something goes wrong during the download and the entry is not deleted.
Here you can specify the maximum time in minutes that the entry may remain in the database.