Download and install .NET SDK 6.0.1 or greater for your platform.
If in doubt, download the x64 one.Download the FileFlows Windows Installer
Download and install .NET Desktop Runtime 6.0.1 or greater.
Download the FileFlows Windows Installer
For detailed instructions how to install .NET on linux refer to this guide from Microsoft.
Add Microsoft package signing key to your list of trusted keys
wget https://packages.microsoft.com/config/ubuntu/16.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb
Install dotnet
sudo apt-get update; \
sudo apt-get install -y apt-transport-https && \
sudo apt-get update && \
sudo apt-get install -y aspnetcore-runtime-6.0
Test dotnet is installed by running dotnet and confirming
> dotnet
Usage: dotnet [options]
Usage: dotnet [path-to-application]
Options:
-h|--help Display help.
--info Display .NET information.
--list-sdks Display the installed SDKs.
--list-runtimes Display the installed runtimes.
path-to-application:
The path to an application .dll file to execute.
wget -O FileFlows.zip https://fileflows.com/downloads/zip
unzip FileFlows.zip -d FileFlows
cd FileFlows/
chmod +x run-server.sh
sudo ./run-server.sh
This will launch the server with a GUI. cd Server
sudo dotnet FileFlows.Server.dll --no-gui true
You should now be able to view FileFlows in the browser on http://localhost:5000/
If you wish to use the Video Nodes to process videos, you must download FFMPEG for your system.
apt-get install ffmpeg
In order for plugins to find the FFMPEG tool, it must be added under the Tools Page.
Name | Variable | Description |
---|---|---|
Name | FFMpeg | The name of the tool, this is case insensitive |
Path | /usr/bin/ffmpeg | The path to your ffmpeg intance |
For detailed instructions how to install .NET on linux refer to this guide from Microsoft.
Add Microsoft package signing key to your list of trusted keys
wget https://packages.microsoft.com/config/ubuntu/16.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb
Install dotnet
sudo apt-get update; \
sudo apt-get install -y apt-transport-https && \
sudo apt-get update && \
sudo apt-get install -y aspnetcore-runtime-6.0
Test dotnet is installed by running dotnet and confirming
> dotnet
Usage: dotnet [options]
Usage: dotnet [path-to-application]
Options:
-h|--help Display help.
--info Display .NET information.
--list-sdks Display the installed SDKs.
--list-runtimes Display the installed runtimes.
path-to-application:
The path to an application .dll file to execute.
NOTE: Replace [SERVER_ADDRESS] with the FileFlows Server address you are connecting to. For example http://tower:5000/
wget -O FileFlows.zip https://fileflows.com/downloads/zip
unzip FileFlows.zip -d FileFlows
cd FileFlows
chmod +x run-node.sh
sudo ./run-node.sh
This will launch the FileFlows node GUI.
You can optionally specify the server address
cd Node
sudo dotnet FileFlows.Node.dll --server [SERVER_ADDRESS] --no-gui
If you omit the --server variable, FileFlows.Node will look for fileflow.config file and read the server information from there.
If that file is missing, a new one will be created and the process will exit, or if no server is defined in that file the process will exit.
With the fileflows.config file correctly configured, there is no need to specify the server via the --server switch
docker run -d \
-name=FileFlows\
-p 5000:5000 \
-v /path/to/data:/app/Data\
-v /path/to/logging:/app/Logs \
-v /path/to/temp:/temp \
-v /path/to/media:/media \
--restart unless-stopped \
revenz/fileflows
services:
fileflows:
image: revenz/fileflows
container_name: fileflows
environment:
- TZ=Pacific/Auckland
volumes:
- /path/to/data:/app/Data
- /path/to/logs:/app/Logs
- /path/to/media:/media #optional
ports:
- 5000:5000
restart: unless-stopped
docker run -d \
-name=FileFlows\
-p 5000:5000 \
-v /path/to/data:/app/Data\
-v /path/to/logging:/app/Logs \
-v /path/to/temp:/temp \
-v /path/to/media:/media`#optional` \
-v GPU_UID:NVIDIA_VISIBLE_DEVICES \
--runtime=nvidia \
--restart unless-stopped \
revenz/fileflows
Name | Variable |
---|---|
-p 5000 | The port of the FileFlows interface |
-v /app/Data | The data directory of FileFlows. Where the database and configuration will be saved |
-v /app/Logs | Where logs will be saved |
-v /temp | The temp directory for the internal processing node. |
-v /media | Optional mapped path. You can map as many as you want |
-v NVIDIA_VISIBLE_DEVICES | The Nvidia GPU UID that identifies your GPU, eg GPU-0d5bb4da-23e4-9e65-15b2-8c6d30 |
docker run -d \
-name=FileFlows-Node\
-v ServerUrl:http://server:5000/ \
-v TempPath:/path/to/temp \
--restart unless-stopped \
revenz/fileflows-node
services:
fileflows:
image: revenz/fileflows-node
container_name: fileflows-node
environment:
- ServerUrl=http://server:5000/
- TempPath=/path/to/temp
restart: unless-stopped
docker run -d \
-name=FileFlows-Node\
-v ServerUrl:http://server:5000/ \
-v TempPath:/path/to/temp \
--runtime=nvidia \
--restart unless-stopped \
revenz/fileflows-node
Name | Variable |
---|---|
-v ServerUrl:http://server:5000 | The URL of the FileFlows Server |
-v TempPath:/path/to/temp | The temp directory for temporary files created. |
-v NVIDIA_VISIBLE_DEVICES | The Nvidia GPU UID that identifies your GPU, eg GPU-0d5bb4da-23e4-9e65-15b2-8c6d30 |
FileFlows can be found in the unRAID Community Application store.
Name | Variable | Description |
---|---|---|
Temp Directory | /mnt/cache/temp/fileflows | The directory where temporary files will be created. Recommend to put this on a cache drive for improved performance |
/media/ | /mnt/user/media | Maps a directory into the docker application. You can add multiple paths using this as a template to expose more folders |
In order to use an NVIDIA GPU for hardware encoding you must do the follow
Go to Settings > NVIDIA Driver
Here mine is "GPU-7f326d12-d4c8-4011-9db1-36c47710daf6"
Config Type: Variable
Name: NVIDIA_VISIBLE_DEVICES
Key: NVIDIA_VISIBLE_DEVICES
Value: [YOUR GPU UID, EG GPU-7f326d12-d4c8-4011-9db1-36c47710daf6]
FileFlows Node can be found in the unRAID Community Application store.
Name | Variable | Description |
---|---|---|
Server URL | http://tower:5000/ | The URL of the FileFlows Server |
NodeName | DockerNode | A unique name to identify the node |
Temp Directory | /mnt/cache/temp/fileflows | The directory where temporary files will be created. Recommend to put this on a cache drive for improved performance |
FileFlows can run on any system supported by the .NET 6 SDK, this includes Windows, Linux and MacOS operating systems and x64, x86 and ARM architectures.
Download and install .NET 6.0 SDK or greater.
FileFlows can run on any system supported by the .NET 6 Runtime, this includes Windows, Linux and MacOS operating systems and x64, x86 and ARM architectures.
Download and install .NET Desktop Runtime 6.0.1 or greater.
Download the FileFlows zip extract it then inside the "Server" directory, run dotnet FileFlows.Server.dll
FileFlows should now be accessible from http://localhost:5000/ or http://[host]:5000/
If you wish to use the Video Nodes to process videos, you must download FFMPEG for your system.
In order for plugins to find the FFMPEG tool, it must be added under the Tools Page.
Name | Variable | Description |
---|---|---|
Name | FFMpeg | The name of the tool, this is case insensitive |
Path | /usr/local/bin/ffmpeg | The path to your ffmpeg intance |
Download the FileFlows zip extract it then from the Node directory, run dotnet FileFlows.Node.dll
In order to use the Video Processing node, you must download FFMPEG for your system.
In order for the FileFlows Node to communicate with the FileFlows Server, it must be told where the Server is.
Download and Run FileFlows Node to generate a sample configuration file "fileflows.config".
dotnet FileFlows.Node.dll
FileFlowsNode will exit as you need to set the configuration.
Open the newly created "fileflows.config" file. Which is a JSON configuration file.
{
"ServerUrl": "",
"TempPath": "C:\\Users\\john\\AppData\\Local\\Temp\\FileFlows",
"Runners": 0,
"Enabled": false
}
Name | Variable |
---|---|
ServerUrl | The URL of the FileFlows Server. For example http://tower:5000/ |
TempPath | The temporary path when files will be saved on the Node. Any \ need to be escaped which means you enter \\ eg c:\\fileflows\\temp |
Runners | The amount of execution runners this node has. This can be set in the main FileFlows UI on the server |
Enabled | If this node is enabled and will process files. This can be set in the main FileFlows UI on the server |
Save the configuration file and start FileFlows Node again using dotnet FileFlows.Node.dll
The node will now be running and can be stopped pressing the Escape key.
Now that the FileFlows Node is up and running you need to configure some mappings in FileFlows Server.
These mappings let FileFlows map from a Server path/application to one local to the Node.
Open FileFlows server application UI, go to "Nodes" and edit the node.
Server | Node | Description |
---|---|---|
C:\Users\john\AppData\Roaming\FileFlows\Server\Tools\ffmpeg.exe | C:\Users\john\AppData\Roaming\FileFlows\Node\Tools\ffmpeg.exe | The FFMPEG instance on the Server and the Node |
c:\media/movies | \\server\movies | This is an example mapping for a library |
Server | Node | Description |
---|---|---|
/usr/local/bin/ffmpeg | /usr/local/bin/ffmpeg | The FFMPEG instance on the Server and the Node, this example demostrates a docker setup. |
/media/movies | \\server\movies | This is an example mapping for a library |