# Docker Install
This version of the FlowForge platform is intended for running in the Docker Container management system. Typically suited for small/medium on premise deployments.
# Docker Compose
FlowForge uses Docker Compose to install and manager the required components. Instructions on how to install Docker Compose on your system can be found here:
These instructions assume you are running Docker on a Linux or MacOS host system.
The orchestration uses an instance of Nginx to route requests to each Node-RED Project. To do this it needs each instance to have a unique hostname, to generate this the project name is prepended to a supplied domain.
To make this work you will need to configure a DNS server to map a wildcard domain entry to the IP address of the host running Docker. e.g
The FlowForge Application will be hosted on
Note When testing locally you can add entries for each project to your
/etc/hosts file but you must use the external IP address of the host machine, not the loopback address (
# Installing FlowForge
Download the latest release tar.gz from the docker-compose project:
Unpack this and cd into the created directory.
tar zxf v0.x.0.tar.gz cd docker-compose-0.x.0
# Building Containers
To build the 2 required containers run
This will build and tag both
This container holds the FlowForge App and the Docker Driver
This is a basic Node-RED image with the FlowForge Launcher and the required Node-RED plugins to talk to the FlowForge Platform. This is the basis for the initial Stack.
This is the container you can customise for your deployment.
# Configuring FlowForge
Configuration details are stored in the
etc/flowforge.yml file which is mapped into the
flowforge/forge-docker container. You will need to edit this file to update the
base_url entries to match the DNS settings. Please note that once set, the
base_url values should not be changed as these values are used as part of the configuration stored in the database of each project. The ability to migrate
domains is on the feature backlog.
You also need to update the
VIRTUAL_HOST entry in the
docker-compose.yml file to use the same domain as in the
For more details on the options available, see the configuration guide.
# MQTT Broker
The only configuration needed will be to edit the
VIRTUAL_HOST line in the
flowforge-broker section of
set the correct domain name and make the same change to the
public_url entry in the
... flowforge-broker: image: "iegomez/mosquitto-go-auth" networks: - flowforge restart: always ulimits: nofile: 2048 environment: - "VIRTUAL_HOST=mqtt.example.com" - "VIRTUAL_PORT=1884" volumes: - "./broker/mosquitto.conf:/etc/mosquitto/mosquitto.conf" ...
... broker: url: mqtt://forge:1883 public_url: ws://forge.example.com
# SSL (optional)
If you want to serve the forge app and projects via SSL you will need to obtain wildcard SSL certs for the domain you are using eg
Create a folder in the
docker-compose-0.x.0 directory named
certs, place your .crt and .key files in there, they should be named for the domain without the
You also need to create a copy of the .crt and .key files named
default.key in the same folder. This is used for serving unknown hosts.
- uncomment the line
- Add this line to the
volumessection of the nginx proxy
If you wish to redirect all traffic to use HTTPS then add the following section to the nginx service on docker-compose.yml
environment: - "HTTPS_METHOD=redirect"
If you are running with the MQTT broker then you should adjust the
public_url to start with
wss:// rather than
# Running FlowForge
Once the containers have been built you can start FlowForge by running:
docker-compose up -d
This will also create a directory called
db to hold the database files used to store project instance and user information.
# First Run Setup
The first time you access the platform in your browser, it will take you through creating an administrator for the platform and other configuration options.
For more information, follow this guide.