Docker Installation - Storm Streaming Server

Docker is the simplest way to start working with Storm Streaming Server. Please make sure that both Docker and Docker Compose components are installed on your target OS, you can do this by using the following command. If you have no prior experience with Docker, check our Docker Software Installation guide:

Let's check if all Docker components are in place:

                        
docker version
                    
(for Windows please use PowerShell/Command Prompt)
                        
docker-compose version
                    
(for Windows please use PowerShell/Command Prompt)

Pulling the image

Let’s start with downloading the image

                        
docker pull docker.stormstreaming.com/stormstreamingserver/stormstreamingserver:latest
                    

Now we’ll create the main configuration file. Let’s name it storm-docker-compose.yml

                        
version: '3.8'
services:
  StormStreamingServer:
    build: .
    environment:
      - LICENSE_KEY=DEVELOPER
      - SERVER_NAME=Storm
      - ADMIN_PASSWORD=ADMIN
      - JKS_PATH=/app/ssl/wildcard.mydomain.com.jks
      - JKS_PASSWORD=qwerty
      volumes:
      - /etc/ssl/private:/app/ssl
      - /srv/storm/config:/app/config
      - /srv/storm/log:/app/log
      - /srv/storm/recordings:/app/recordings
    ports:
      - "80:80"
      - "443:443"
      - "1935:1935"
                    

Explanation – Environmental variables:

LICENSE_KEYFor testing purposes, you can keep “DEVELOPER”, however server will be limited to 5 concurrent streams and 10 viewer connections. For a paid license use your license key found on “My Products” page.
SERVER_NAMEName of your server, can be anything.
ADMIN_PASSWORDAdmin password for accessing the control panel.
JKS_PATHAbsolute path to JKS (SSL Certificate) file. Please keep in mind that this path is relative to docker and not your host machine. You can leave blank.
JKS_PASSWORDPassword for JKS file. You can leave blank.
Table 1. Environmental variables table

Explanation – Volumes:

Volumes are shared (linked) directories between the host/machine (left side) and a docker container (right side). The right side after a colon should NOT BE MODIFIED

host_machine_path:/app/sslVolume for JKS files required for Storm running in SSL mode.
host_machine_path:/app/configVolume for Storm config files.
host_machine_path:/app/logsVolume for
host_machine_path:/app/ recordingsLinks volume (directory) from host machine to docker container.

This volume is for Storm log files.
Table 2. Volumes table

For Windows based operating system paths should look as in this example:

                        
- /c/Users/USERNAME/Documents/Strom/config:/app/config
                    

Explanation – Port forwarding:

Docker allows to forward ports between host/machine (left side) and a docker container (right side). You can also modify ports used internally by Storm Server by editing Preferences.xml file (Vhost section).

Creating container from YML file

Let’s create the container from our YML file now:

                        
docker-compose -f storm-docker-config.yml up
                    

Docker & Java Memory Allocation

In order to increase memory available to Java application within Docker you can use these optional environmental variables.

JAVA_XMS_VALUE=512mMinimal amount of heap memory available for Java (Strom) application. Sample values:

512m – 512 MiB
2G – 2 GiB
JAVA_XMX_VALUE=2GMinimal amount of heap memory available for Java (Strom) application. Sample values:

512m – 512 MiB
2G – 2 GiB
Table 3. Docker & Java Memory Allocation table