Skip to main content
Skip table of contents

Installation Guide

This page describes the installation of the ROAD backend.

Prerequisites

MongoDB

The ROAD Service is using the MongoDB database service, which must be available for the ROAD installation. It can be installed on any machine which is accessible via network from the host the ROAD Service is running on.

Download "MongoDB Community Server" from https://www.mongodb.com/download-center/community. Minimal required version for ROAD is 4.4.

Start the installer and follow all installation steps as proposed. If you install MongoDB Compass (version 4.4.x), it may cause high CPU load, if there is no hardware-accelerated graphics. Additionally no UI may be visible on a clean Windows Server 2019 computer, because of a mismatch of installation path of libglesv2.dll (after installation) which is not present inside the swiftshader subfolder. You can also install another MongoDB client (e.g. Robo 3T).

By default the MongoDB service will be accessed via IP port 27017. This port must be open in the firewall if access via network should occur. Currently this port is not configurable on ROAD Service side.

Adjust Network Binding

In order to access MongoDB other than via mongodb://localhost you have to adjust the bindings in the mongod.cfg file (example path: "C:\Program Files\MongoDB\Server\4.0\bin").

Open this cfg file with elevated (admin) rights in a text editor and search for: "bindIp: 127.0.0.1" and change the binding to "bindIp: 0.0.0.0" or to make it accessible via IPv4 address or the computer name. It’s also possible to support ipv4 and ipv6 by "bindIp: ::,0.0.0.0".

Hint: Stop the MongoDB service before and afterwards start the service again.

For further installation instructions (e.g. MongoDB on Linux or in a Docker container) please refer to: https://www.mongodb.com/docs/manual/administration/install-community/

MongoDB unattended setup

For easy installation on e.g. a notebook, where only local access is needed, you can just use a batch script for installing MongoDB.

Below a simple example for installing MongoDB as a Windows service without the Compass client.

CODE
msiexec.exe /l*v mdbinstall.log  /qb /i mongodb-windows-x86_64-6.0.7-signed.msi ^
            ADDLOCAL="ServerService" ^
            SHOULD_INSTALL_COMPASS="0"

 For further instructions please refer to: https://www.mongodb.com/docs/manual/tutorial/install-mongodb-on-windows-unattended/

MongoDB Cluster (Replica Sets)

The ROAD Service works well together with a MongoDB Cluster for failover purposes (Replica Sets). We’ve tested successful a three nodes installation, as recommended by MongoDB.

For installation instructions please refer to: https://www.mongodb.com/basics/clusters/mongodb-cluster-setup

ROAD Service Installation Steps

Backend Installation

See ROAD Setup

Setting Up Job Types in Database

Every job template should be assigned to a job type, which will later be used for selection of a template in the scheduling client.

Job types are customizable, so they need to be set up once in the ROAD database (so only once in a ROAD cluster). This can be done by customizing the PowerShell script "CreateCategories.ps1", which is in the "doc" folder of the ROAD backend release package. You can edit it by use of a text editor. Advises are there as comments inside the script.

In most cases the provided default job types "Playout", "Recording" and "Stream recording" are sufficient, so no editing of the script is required.

To create these job types the script has to be executed with PowerShell (be aware the script needs Windows administrator rights).

Later extending can be done at any time by extending the script and running it again.

External Control Support

For support of external control via Ember+ or GPIO see Install External Control (Ember+, GPIO)

Firewall Settings for ROAD Web Service

See Firewall Settings for ROAD Web Service. Note that Windows Firewall is configured by the ROAD Setup and you will only have to configure the firewall if you are using a non-standard configuration.

ROAD Service Configuration

You can manually edit RoadService.exe.config and change parameters as needed (also the ones which were set by the prior ROAD setup). Note that you have to restart the ROAD Service to set changes parameters in effect. See configure Parameters of ROAD Service.

Some parameters of special interest:

  • WorkerLogFilesArchivePath: set empty to remove log archive folder
  • WorkerLogFilesPurgeByDays: after this period Worker log files are deleted (or moved to the archive folder)
  • WorkerLogFilesPurgeByNumber: after this amount of Worker log files, oldest are deleted (or moved to the archive folder)
  • DBConnection: Set MongoDB host name in syntax like "mongodb://mymongohost"
  • DnsName: Publicly accessible network name of the host machine (like road-dpe.davidsystems.com).
  • WebServerPort: Web server port used for incoming REST and web socket connections.
  • WebServerSecure: Defines if providing secure incoming connections.

Basic Testing ROAD Service

After first installation you might want to verify it's running and accessible for HTTP/HTTPS requests. A simple REST call can be sent from any browser to verify this:

http://hostname:11003/api/versions

https://hostname:11005/api/versions

will answer with the current versions of ROAD Service and Worker. If this succeeds the ROAD Service is running, accessible via HTTP/HTTPS and it has successfully accessed RoadWorker.exe to request its version.

ROAD Clients

ROAD Clients here mean web pages containing javascript code to communicate with the ROAD Service.

IIS Hosting of the ROAD Client Pages

If ROAD client pages should be accessible from several computers in the network or if EAO components are being used within them, the client web pages need to be hosted on a web server.

For installation see IIS Hosting of the ROAD example page

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.