Skip to content

Installation

For instructions on how to get started with the Community Edition visit the GitHub repository. These instructions applies to the Consuo Commercial Edition.

The Consuo software component consists of two micro services each running as a separate container: Consuo Schedule and Consuo Engine. For a quick guide on how to get started read the Quickstart guide

Install Consuo Schedule Container

The Consuo Schedule service is responsible for managing the channels and the schedule events. A MongoDB database is used to store the channel and schedule information and is pre-packaged in the Consuo Schedule container but it can also connect to an external MongoDB instance. To install and run the Consuo Schedule container using the provided MongoDB server run:

docker run --rm -p 8001:8001 -e KEY=<LICENSEKEY> -v /my/own/datadir:/data/db eyevinntechnology/consuo-schedule:<VERSION>

The -v /my/own/datadir:/data/db part of the command above mounts the /my/own/datadir directory from the underlying host system as /data/db inside the container, where the schedule and channel database is stored.

Using an External MongoDB database

If you instead wish to connect to an external MongoDB database you can provide the DB connection URL as an environment variable. The database name by default is called channel_mgr.

docker run --rm -p 8001:8001 -e KEY=<LICENSEKEY> -e DB=mondogb://{MONGODB_HOST}/channel_mgr eyevinntechnology/consuo-schedule:<VERSION>

The service listens by default on port 8001 and if you want to change this you can specify that also as an environment variable.

docker run --rm -p 3000:3000 -e KEY=<LICENSEKEY> -e PORT=3000 eyevinntechnology/consuo-schedule:<VERSION>

Once Consuo Schedule container is up and running, by answering 200 ok on /, you can continue with downloading and starting the Channel Engine.

Using AWS DynamoDB managed NoSQL database

In Consuo version 1.2.0 support for AWS DynamoDB database was added. To connect to your AWS Dynamo DB you need to have an IAM user with the rights to create tables and perform read and write operations. Obtain the keys for API access (AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY) and start the Consuo Schedule container with the following command. Replace the eu-north-1 in the DB environment variable with the region of your choice.

docker run --rm -p 8001:8001 -e KEY=<LICENSEKEY> -e DB=dynamodb://aws/eu-north-1 -e AWS_ACCESS_KEY_ID<AWS_KEY_ID> -e AWS_SECRET_ACCESS_KEY=<AWS_SECRET> eyevinntechnology/consuo-schedule:<VERSION>

The Consuo Schedule will create the tables automatically if they don't exist with a default provisioned read / write capacity unit of 3 each and auto scaling disabled. These default settings are only set when creating the tables. In AWS console you can change and monitor this and set alarms if needed. You can also change to on-demand mode if that suits your billing better.

Install Consuo Engine Container

The Consuo Engine service is the part that creates a virtual live HLS stream using the VOD to Live technology. It communicates with the Consuo Schedule container to determine what VOD to be played out next. Specify the URL to the Consuo Schedule with the environment variable CHANNELMGRAPI when starting the container.

docker run --rm -p 8000:8000 -e KEY=<LICENSEKEY> -e CHANNELMGRAPI=http://{SCHEDULE_HOST}:8001 eyevinntechnology/consuo-engine:<VERSION>

Replace http://{SCHEDULE_HOST}:8001 with the URI to where the Consule Schedule container is running.

The HLS live linear TV stream is then available at http://{ENGINE_HOST}:8000/live/master.m3u8?channel=<CHANNELID> and API documentation is available on http://{SCHEDULE_HOST}:8001/api/docs/.

Install Consuo UI Container

From version 1.2.0 a basic user interface to manage channels and schedules are available. Details on how to operate this user interface is available in the User Manual.

docker run --rm -p 8080:8080 -e CHANNELMGRAPI=http://{SCHEDULE_HOST}:8001 -e CHANNELENGINE=http://{ENGINE_HOST}:8000 eyevinntechnology/consuo-ui

Create a test channel

When all containers are up and running you can create a test channel with auto-populated content:

curl -X POST "http://{SCHEDULE_HOST}:8001/channels" -H "accept: application/json" -H "Content-Type: application/json" -d "{\"id\":\"test\",\"config\":{\"auto_populate\":true,\"auto_populate_content\":\"http://testcontent.eyevinn.technology/atom/feed-eyevinn.xml\"}}"

Verify that the channel is playing using an HLS capable video player. You find an example to use at http://player.eyevinn.technology. Paste in the following link in the player http://{ENGINE_HOST}:8000/live/master.m3u8?channel=test to play the channel test that you just created.