Downloads
Choose a version then platform to download

FileFlows Server

Run standalone or
with additional processing nodes.

FileFlows Node

Additional processing nodes
for a FileFlows Server.

FileFlows Server: Windows

.NET

Download and install .NET SDK 6.0.1 or greater for your platform.

If in doubt, download the x64 one.

FileFlows

Download the FileFlows Windows Installer

FAQ
I get a blank screen after opening FileFlows
Ensure you have the ASP.NET Core Runtime installed if you did not install the .NET SDK

FileFlows Node: Windows

Download and install .NET Desktop Runtime 6.0.1 or greater.

Download the FileFlows Windows Installer

FileFlows Server: Linux

For detailed instructions how to install .NET on linux refer to this guide from Microsoft.

Install .NET 6 (Ubuntu)

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.
Install and run FileFlows
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.
To launch it without a GUI, use 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/

FFMPEG

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.

  1. Open the FileFlows UI on http://localhost:5000/
  2. Navigate to the "Tools" Page
  3. Edit the "FFMPeg" Tool, if not there click "Add" and add it
  4. Enter
    Name Variable Description
    Name FFMpeg The name of the tool, this is case insensitive
    Path /usr/bin/ffmpeg The path to your ffmpeg intance
  5. Click "Save"

FileFlows Node: Linux

For detailed instructions how to install .NET on linux refer to this guide from Microsoft.

Install .NET 6 (Ubuntu)

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.
Install and run FileFlows

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

FileFlows Server: MacOS

Download and install .NET SDK for Intel or ARM

FileFlows Node: MacOS

Download and install .NET Runtime for Intel or ARM

FileFlows Server: Docker

Docker Command Line
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
Docker Template
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 with NVIDIA Hardware Encoding
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
Parameters
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

FileFlows Noded: Docker

Docker Command Line
docker run -d \ -name=FileFlows-Node\ -v ServerUrl:http://server:5000/ \ -v TempPath:/path/to/temp \ --restart unless-stopped \ revenz/fileflows-node
Docker Template
services: fileflows: image: revenz/fileflows-node container_name: fileflows-node environment: - ServerUrl=http://server:5000/ - TempPath=/path/to/temp restart: unless-stopped
Docker with NVIDIA Hardware Encoding
docker run -d \ -name=FileFlows-Node\ -v ServerUrl:http://server:5000/ \ -v TempPath:/path/to/temp \ --runtime=nvidia \ --restart unless-stopped \ revenz/fileflows-node
Parameters
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 Server: Unraid

FileFlows can be found in the unRAID Community Application store.

Configuration
Parameters
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
NVIDIA Hardware Encoding

In order to use an NVIDIA GPU for hardware encoding you must do the follow

Get your GPU ID

Go to Settings > NVIDIA Driver

Here mine is "GPU-7f326d12-d4c8-4011-9db1-36c47710daf6"

Update the FileFlows Docker
  1. Inside editing the Docker container (or when adding)
  2. Switch to Advanced view
  3. Under "Extra Parameters" insert "--runtime=nvidia"
  4. Add a custom variable by clicking "Add another Path, Port, Variable, Label or Device"
  5. Enter the new variable: Config Type: Variable Name: NVIDIA_VISIBLE_DEVICES Key: NVIDIA_VISIBLE_DEVICES Value: [YOUR GPU UID, EG GPU-7f326d12-d4c8-4011-9db1-36c47710daf6]
  6. Click Save and apply the changes.
  7. You should now be able to process videos using your NVIDIA GPU, assuming your GPU supports hardware encoding Add a custom footer

FileFlows Node: Unraid

FileFlows Node can be found in the unRAID Community Application store.

Configuration
Parameters
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 Server: Generic

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 Node: Generic

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 and Run FileFlows

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/

FFMPEG

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.

  1. Open the FileFlows UI on http://localhost:5000/
  2. Navigate to the "Tools" Page
  3. Click "Add"
  4. Enter
    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
  5. Click "Save"

Download FileFlows

Download the FileFlows zip extract it then from the Node directory, run dotnet FileFlows.Node.dll

FFMPEG

In order to use the Video Processing node, you must download FFMPEG for your system.

FileFlows Node Configuration

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.

FileFlows Server Configuration

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