Linux/Unix Installation - Storm Streaming Server

Storm Streaming Server includes a user-friendly script-based installer for Unix/Linux systems, which works in both GUI and console environments. Additionally, DEB and RPM package installers are available from the download page.

If you don't have the installer yet, please visit our Download page.

Installer Steps (GUI Mode)

The installer will now guide you through the following steps:

Installer Steps (Console Mode)

If you manage your server via SSH or simply don't have a GUI, the console mode might come in handy. Just add -c as an additional parameter to the installer script.

                        
./storm_streaming_server_unix_aarch64_3_0_0.sh -c
                    

The rest is identical to the GUI counterpart.

Basic Configuration

Now that the Storm Streaming Server application is installed, go to the installation folder you specified in step 3. There are a few things to configure here:

  1. JVM Configuration

    In the file Storm storm-streaming-server.vmoptions, you'll find JVM options that define, among other things, how much RAM should be allocated to the application. The default file content is:

                            
    -server
    -Xmx16g
    -Xms4g
    -XX:+UseG1GC
    -XX:MaxGCPauseMillis=100
                        

    The -Xms and -Xmx parameters define the minimum and maximum amount of RAM available to the application. You should adjust these values to match your hardware resources. For example, to allocate a maximum of 128 GB and a minimum of 32 GB, change the values to:

                            
    -Xmx128g
    -Xms32g
                        
  2. VHost Configuration

    The socket configuration for Storm Streaming Server is located in the file config/preferences.xml. By default, it includes the following block:

                            
    <VHosts>
    	<VHost host="127.0.0.1" isSSL="false" port="1935">
    		<Protocols>RTMP</Protocols>
    	</VHost>
    	<VHost host="127.0.0.1" isSSL="false" port="8080">
    		<Protocols>HTTP, WEBSOCKETS</Protocols>
    	</VHost>
    </VHosts>
                        

    This defines two sockets listening on 127.0.0.1 (localhost). Port 8080 handles HTTP and WebSocksts connections, and port 1935 handles RTMP. For more information about VHost configuration, including how to enable SSL support, please refer to our VHosts guide.

In order to apply these changes, please restart the server. The following section explains how to stop and start the Storm Streaming Server service.

Managing the Service

You can access the web-based control panel of the application using the 'Strom Control Panel' shortcut. Alternatively, you can open it directly in any web browser at: http://127.0.0.1/cpanel (the IP address and port may vary depending on your VHosts configuration).

Since the application operated as a service, it’ll be started automatically with the system. Below you’ll find basic commands:

  • To check the Storm Streaming Server (service) status:
                            
    systemctl status storm-streaming-server
                                

  • To stop the Storm Streaming Server:
                            
    systemctl stop storm-streaming-server
                                

  • To start the Storm Streaming Server:
                            
    systemctl start storm-streaming-server
                                

  • To restart the Storm Streaming Server:
                            
    systemctl restart storm-streaming-server
                                

At this point, a simple control panel is also available by default at (unless you modified VHOost): http://127.0.0.1:8080/cpanel

FFMPEG Installation (optional)

If the console shows a message about missing FFMPEG (required for stream transcoding), you can specify its path in the config/preferences.xml file. The configuration is found in the <Transcoder> block, like this:

        
<Transcoder>
	<FFMPEG>
		<Path>/opt/homebrew/bin/ffmpeg</Path> <!-- optional -->
		<Command>-re -nostdin -i {SOURCE_INPUT} -vsync 1 -vcodec libx264 -preset:v {CPU_USAGE_PRESET} -vf scale={OUTPUT_WIDTH}:{OUTPUT_HEIGHT} -tune {TUNE} -g 30 -fflags nobuffer -probesize 32 -analyzeduration 0 -b:v {VIDEO_BITRATE} -acodec aac -b:a {AUDIO_BITRATE} -async 1 -f flv {STREAM_OUTPUT}</Command>
	</FFMPEG>
	<TranscodeTaskLimit>5</TranscodeTaskLimit>
    <!-- remaining block -->
</Transcoder>
    

If FFMPEG has been added to the environment variables, you can leave the Path field empty — unless you want to explicitly specify which binaries should be used.

Depending on your operating system, you can use the following command to install FFMPEG via your default package manager.

  • Debian / Ubuntu (apt)
                    
    sudo apt update
    sudo apt install ffmpeg
                

  • Arch Linux / Manjaro (pacman)
                    
    sudo pacman -Sy ffmpeg
                

  • macOS (Homebrew)
                    
    brew install ffmpeg
                

  • FreeBSD (pkg)
                    
    sudo pkg install ffmpeg
                

Next Step

We encourage you to explore our Storm Streaming Server documentation. It covers individual server configuration elements and provides information about popular protocols such as RTMP, HLS, and more. The samples directory also contains several example video players preconfigured to work with your Storm Streaming Server instance.

For the next step we advise our Quick Start Guide

Support Needed?

Create a free ticket and our support team will provide you necessary assistance.